Внимание! К написанному стоит отнестись с осторожностью, дабы потом не рыдать над пепелищем ранее рабочей системы. Т.к., имеется ряд спорных моментов.
Вводные данные. При установке на один раздел, Ubiquity создаёт два подтома:
@
и @home
.К сожалению, пользователю не предоставлена возможность самостоятельно задавать названия подтомов, отсюда - нет возможности штатно установить две и более ОС. Поэтому, нам придётся клонировать подтома первой ОС. Я добавлял к названиям
lmc
, вы вольны придумать что-то своё.Для примера я использовал LinuxMint 18.3 Cinnamon - первая ОС, и LinuxMint 18.3 Mate - вторая ОС.
Так-же, эта статья актуальна при установке Ubuntu и других дистрибутивов, использующих установщик Ubiquity. С другими установщиками не проверял.
В этом примере рассматривается рассматривается установка в режиме Legacy BIOS. Пример с EFI сделаю чуть позже.
Поехали.
Создание загрузочных флешек или дисков рассматривать не буду, будем считать, что они готовы.
Приступаем к установке ОС1.
Выбираем Другой вариант
Создаём новый раздел. Использовать как -
btrfs
Точка монтирования - /
Раздел swap
не рассматривал, но ни кто вам не запрещает его создать.Должно получится так:
Дальнейшие шаги рассматривать не имеет смысла. Всё происходит штатно.
Система установлена и запущена. Можем взглянуть, что получилось:
Код: Выделить всё
lsblk
sudo btrfs subvolume list /
Теперь нужно исправить
/etc/fstab
Как писал выше, я к названию подтомов добавлял постфикс lmc
. Т.е., @
приводим к виду @lmc
, а @home
к @home-lmc
Далее, нужно заменить
@
на @lmc
в /boot/grub/grub.cfg
. Это легко можно выполнить, нажав Ctrl + H
Примонтируем
sda1
Код: Выделить всё
sudo mount /dev/sda1 /mnt
Теперь сделаем клоны существующих подтомов.
Код: Выделить всё
sudo btrfs subvolume snapshot /mnt/@ /mnt/@lmc
sudo btrfs subvolume snapshot /mnt/@home /mnt/@home-lmc
Код: Выделить всё
sudo btrfs subvolume list /mnt
Грузимся с флешки со второй ОС.
Монтируем
sda1
Код: Выделить всё
sudo mount /dev/sda1 /mnt
Код: Выделить всё
sudo btrfs subvolume delete /mnt/@
sudo btrfs subvolume delete /mnt/@home
После установки загрузится вторая ОС. И вот тут нас ждёт приятный сюрприз: GRUB не подцепил первую систему. Сделаем это сами. Сделать это можно тремя двумя способами.
Сначала, независимо от способа, монтируем
sda1
Код: Выделить всё
sudo mount /dev/sda1 /mnt
Откроем
/mnt/@lmc/boot/grub/grub.cfg
, найдём и скопируем блок начинающийся с menuentry 'Linux Mint 18.3 Cinnamon 64-bit'
Возможно, в вашем случае, он будет начинаться иначе.
Теперь добавим скопированный текст в конце файла /etc/grub.d/40_custom
В этом примере, для каждого пункта меню будет создан отдельный файл в папке
/etc/grub.d
В моёт случае это: 11_lmc
для Linux Mint 18.3 Cinnamon и 12_lmm
для Linux Mint 18.3 MateСкопируем файл
40_custom
Код: Выделить всё
sudo cp /etc/grub.d/40_custom /etc/grub.d/11_lmc
menuentry 'Linux Mint 18.3 Cinnamon 64-bit'
из /mnt/@lmc/boot/grub/grub.cfg
.
Сделаем файл исполняемым
Код: Выделить всё
sudo chmod +x /etc/grub.d/11_lmc
12_lmm
только пункт меню копировать будем из /mnt/@/boot/grub/grub.cfg
Чтобы отключить дефолтные пункты меню, нужно запретить запуск
10_linux
и 30_os-prober
Код: Выделить всё
sudo chmod -x /etc/grub.d/10_linux
sudo chmod -x /etc/grub.d/30_os-prober
Включим меню GRUB в
/etc/default/grub
закомментировав строку GRUB_HIDDEN_TIMEOUT=0
Не забываем применить изменения:
Код: Выделить всё
sudo update-grub