我有一台装有两台存储设备的计算机。我想在其中安装两个 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。 - run
grub-install --efi-directory /boot/efi/
也作用于设备 A。 - 重新启动并告诉 BIOS/UEFI 启动设备 A。
我认为现在它应该可以工作了。