如何将 Linux 系统转变为双启动系统

如何将 Linux 系统转变为双启动系统

我有一台装有两台存储设备的计算机。我想在其中安装两个 Linux 系统,并且希望它们基于相同的安装。一个将位于 ext4 文件系统中,另一个将位于 btrfs 文件系统中。一旦我开始使用它们,它们当然会开始出现分歧。

我目前所做的:

  • 在设备 B 上的卷(分区)中安装 Linux(Ubuntu 21.04)。安装我需要的其他东西。
  • 在设备 A 上的卷(分区)中创建 btrfs 文件系统。
  • 在设备 A 上挂载文件系统。
  • 使用 将设备 B 上的所有内容复制到设备rsync -avP --numeric-ids --exclude='/dev' --exclude='/proc' --exclude='/sys'A。
  • 在每个系统的桌面上创建一个不同的文件,这样一旦我重新启动,我就知道启动到哪个系统。
  • 编辑/etc/fstab设备 A 上的系统,以便它在启动时安装正确的文件系统。
  • 以 root 身份运行update-grub
  • 重新启动并在启动菜单中选择系统A。

重新启动后,我注意到启动的系统是原始系统。设备 B 上的 Ext4。

我在 fstab 中尝试了两种样式:UUID 和 /dev/sdXX

我确信我漏掉了一两步,但我不知道是什么/哪个步骤。我漏掉了什么或做错了什么?为什么 fstab 不受尊重?

答案1

我终于把它修好了。

步骤几乎一样。

  • 重新创建分区表。
  • 在文件系统 A 上为 UEFI 创建一个小型 512MB fat32 卷 /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/。这将在设备 B 上的 UEFI 分区上安装启动选项。
  • 重新启动系统。
  • 选择显示 的启动项/dev/sda2
  • 确保启动了正确的系统。例如,查找特定文件、运行 mount 等等。
  • 再次运行update-grub,这次它作用于设备 A。
  • rungrub-install --efi-directory /boot/efi/也作用于设备 A。
  • 重新启动并告诉 BIOS/UEFI 启动设备 A。

我认为现在它应该可以工作了。

相关内容