Как превратить систему Linux в двойную загрузку

У меня есть компьютер с двумя запоминающими устройствами. Я хочу иметь в нем две системы 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 ответ
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 секунд назад

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *