У меня есть компьютер с двумя запоминающими устройствами. Я хочу иметь в нем две системы 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, сэкономьте вам все--exclude
s, особенно удобно, если вы используете один раздел / файловую систему для установки (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 секунд назад