У меня есть компьютер с двумя запоминающими устройствами. Я хочу иметь в нем две системы Linux, и я хочу, чтобы они основывались на одной и той же установке. Один будет жить в файловой системе ext4, а другой — в файловой системе btrfs. Как только я начну их использовать, они, конечно, начнут расходиться.
Что я сделал до сих пор:
- Установите Linux (Ubuntu 21.04) в том (раздел) на устройстве B. Установите другие необходимые мне вещи.
- Создайте файловую систему btrfs в томе (разделе) на устройстве A.
- Смонтируйте файловую систему на устройстве A.
- Скопируйте все с устройства B на устройство A, используя
rsync -avP --numeric-ids --exclude="/dev" --exclude="/proc" --exclude="/sys". - Создайте отдельный файл на рабочем столе каждой системы, чтобы после перезагрузки я знал, в какую систему загружается.
- Редактировать
/etc/fstabсистемы на устройстве A, чтобы оно монтировало правильную файловую систему при загрузке. - Запустить
update-grubкак корень. - Перезагрузитесь и выберите систему A в меню загрузки.
После перезагрузки я замечаю, что загруженная система является исходной. Ext4 на устройстве B.
Я пробовал оба стиля в fstab: UUID и / dev / sdXX
Я уверен, что пропускаю шаг или два, но я не могу понять, что / что. Что я упускаю или делаю не так? Почему не соблюдается fstab?
1 ответ
Наконец-то мне удалось это исправить.
Шаги были почти такими же.
- снова создать таблицу разделов.
- создайте небольшой том fat32 размером 512 МБ в файловой системе A для UEFI, / dev / sda1, установите правильные флаги.
- создать системную файловую систему как btrfs / dev / sda2.
- смонтировать файловую систему / dev / sda2 на
/mntвместо/media/... - снова вызовите rsync, добавив
--exclude="/mnt"параметр. Это важно, чтобы избежать многократного рекурсивного копирования одного и того же содержимого. - вызов
blkidи отметил UUID двух новых разделов. - редактировать
/mnt/etc/fstabчтобы поставить правильные UUID и, конечно, изменить параметры монтирования для btrfs. - вызов
update-grub. Это изменяет параметры загрузки на устройстве B, добавляя систему на устройстве A в качестве пункта меню. - вызов
grub-install --efi-directory /boot/efi/. Это устанавливает параметры загрузки в раздел UEFI на устройстве B. - Перезагрузите систему.
- Выберите загрузочную запись, которая показывает
/dev/sda2. - Убедитесь, что загружена правильная система. Например, найдите конкретный файл, запустите mount, что угодно.
- запустить
update-grubопять же, на этот раз он действует на устройство A. - запустить
grub-install --efi-directory /boot/efi/также действует на устройство А. - Перезагрузитесь и сообщите BIOS / UEFI о загрузке устройства A.
Думаю, теперь должно работать.

На самом деле есть переключатель
-xв rsync, сэкономьте вам все--excludes, особенно удобно, если вы используете один раздел / файловую систему для установки (ESP не входит в комплект).— Том Ян
6 минут назад
Ваши шаги кажутся бессмысленными. Переустановка grub на исходный ESP не делает волшебным образом записи grub для копии. (И это было сделано даже после
update-grub.) Что вам нужно сделать, так это установить grub на новый ESP иupdate-grubпосле перехода на/mnt(с участием/mnt/boot/efiустановлен).— Том Ян
1 мин. Назад
grub-installможет выполняться как внутри, так и снаружи chroot. Если бы снаружи, команда была быgrub-install --efi-directory /mnt/boot/efi --boot-directory /mnt/boot.update-grubно должно быть сделано внутри chroot.— Том Ян
45 секунд назад