Множественная установка дистрибутивов на раздел с btrfs

  • alexal9alexal9 15.12.2020
    Эта файловая система всё шире используется в Linux. Сам я тоже уже порядочно времени использую её.
    Сравнительно недавно узнал об интересном способе установки множества дистрибутивов на устройство, размеченное под GPT и отформатированное под BTRFS. Встретил описание этого метода здесь: https://www.kubuntuforums.net/showthread.php/60321-More-BTRFS-fun-Multibooting-to-subvolumes-on-the-same-partition

    Там, правда, описывается система под BIOS, но с EFI это ещё легче - нет необходимости в создании массы мелких отдельных партиций под /boot для каждого дистрибутива.

    Суть метода в следующем. Берём, к примеру, SSD на 250 Гиг (ну, или какой-либо другой).
    Форматируем его в BTRFS, но создаём вначале мелкий раздел для EFI fat32, мегабайт эдак на 300-500, но здесь по желанию. В стандартном режиме устанавливаем желаемый дистрибутив не создавая отдельных /boot и /home партиций. Предположим Ubuntu. Заходим в систему, проверяем
    btrfs subvol l /
    , видим там подтома @, @home и переименовываем их в @u и @u_home согласно ОС (Ubuntu). Соответственно, вносим изменения в fstab, заменяя subvol=@ на subvol=@u, а subvol=@home на subvol=@u_home.
    Идём в grub.cfg и меняем там все упоминания @ на @u. Понятно дело, только в 1-м Menuentry, сохраняем, чтоб войти в ОС после перезагрузки. Перезагружаемся.
    В первый раз войти вновь в ОС не получается, на экране - grub rescue, но тут всё просто: поскольку у нас на диске всего две партиции (efi и всё остальное, т.е. /dev/sda1 и /dev/sda2), то входим через
    set prefix=(hd0,2)/boot/grub
    ,
    set root=(hd0,2)
    ,
    insmod btrfs
    ,
    insmod normal
    ,
    normal
    , входим, далее
    update-grub
    и
    grub-install
    .

    После этого устанавливаем другой дистрибутив, выбирая под efi /dev/sda1 и под рут /dev/sda2 без форматирования. При необходимости установки следующего дистро повторяем все предыдущие шаги, переименовывая подтома на свой манер. И так до бесконечности, насколько позволит ёмкость диска.

    Всё это я проверил на виртуалке и всё это работает. За некоторым исключением. Некоторые дистрибутивы ни в какую не хотят устанавливаться на раздел без его форматирования. Так, не удалось поставить Fedora, MXLinux и ещё что-то, уже забыл. Grub некоторых дистро не хочет подхватывать чужие ОСи. В этом смысле лучше всего последними ставить Arch или Manjaro, короче, арчеподобные ОС.

    То есть, плюсы этого метода налицо: нет необходимости в множественной разметке диска. Те, кто любит скакать по дистрибутивам, может попробовать их на реальном железе без виртуалок. И убрать легко - удалил подтома и всё.

    Однако, остаются вопросы. В частности, балансировка. Я с этим столкнулся в своё время, диск переполняется данными. В файловом менеджере показывает полно места, а сообщения выскакивают о том, что его нет. Опять же, по тому же поводу, дедупликация.

    Я, понятно дело, затеял эту тему из чистого любопытства: свои системы переустанавливать подобным образом я не собираюсь, всё у меня устоялось и прекрасно работает. Но, может, в будущем, при приобретении нового SSD поступить так?

    Кто что думает по поводу всего изложенного? Может, это уже обсуждалось?
  • OldRunnerOldRunner 15.12.2020
    Я таким образом установил Fedora на Garuda, хотя сам того не желал :))
    В GRUB есть возможность во время установки установить ее на уже занятый диск паралелльно с уже установленой ОСью. В GRUB светятся обе оси, но запускаются с разных - у меня GRUB есть на sda и sdb. При чем, Fedora видит "квартиранта", но в GRUB его нет и приходится запускать с другого диска. Пока мне не хотелось залазить в grub.cfg, но может со времем и прийдется.
  • alexal9alexal9 15.12.2020
    А я, чё-то, крутил, вертел эту Федору и так и эдак, только что из коммандной строки не устанавливал, но она всё порывалась отформатировать весь диск. Может я сослепу не увидел опции?