克隆分区后选择默认启动分区(Ubuntu 20.04)

克隆分区后选择默认启动分区(Ubuntu 20.04)

我有两个磁盘,每个磁盘都有两个分区,一个 SSD(/dev/sdb)具有主启动分区,另一个 HDD(/dev/sda)用于备份。

然后我在 USB 实时环境中使用将 SSD 的主分区(具有启动功能)克隆dd到备份 HDD 中的分区:

dd if=/dev/sdb2 of=/dev/sda2

现在,我重新启动后,系统将从克隆的分区启动/引导/dev/sda2

如何设置系统应启动/引导哪个分区?我想使用/dev/sdb2和 而不是来启动/dev/sda2,因为 SSD 比 HDD 快得多。

更多信息:

fdisk -l两个磁盘的相关输出:

Disk /dev/sda: 1,84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZAZ-00L
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 350C6598-6531-43D3-9303-26B80124EDDA

Device          Start        End    Sectors   Size Type
/dev/sda1        2048 1953128447 1953126400 931,3G Linux filesystem
/dev/sda2  1953128448 3907028991 1953900544 931,7G Linux filesystem


Disk /dev/sdb: 931,53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 870 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 881AE800-FEC8-4EEA-B0C5-5CAE0E2B47F2

Device       Start        End    Sectors  Size Type
/dev/sdb1     2048    1050623    1048576  512M EFI System
/dev/sdb2  1050624 1953523711 1952473088  931G Linux filesystem

相关输出lsblk

...
sda      8:0    0   1,8T  0 disk 
├─sda1   8:1    0 931,3G  0 part /mnt/backupA
└─sda2   8:2    0 931,7G  0 part /
sdb      8:16   0 931,5G  0 disk 
├─sdb1   8:17   0   512M  0 part /boot/efi
└─sdb2   8:18   0   931G  0 part 

答案1

经过一上午对这个问题的思考(Linux 很有挑战性 :),感谢发表评论的用户,也为了与其他用户分享信息,我分享了我的结论:

  • 由于两个不同的分区中存在相同数据的两个精确副本(/dev/sda2/dev/sdb2),因此也具有相同的数据UUID,因此系统始终/dev/sda2以 root 身份启动/

  • 显然,除非设置了,否则/etc/fstab根安装点会被忽略。我尝试在两个分区(原始分区和克隆分区)中设置了,但系统总是以 开始。因此,不要将 用作根安装点,因为它不起作用。/UUID/dev/sdb2 / .../etc/fstab/dev/sda2/dev/sdbx/etc/fstab/

  • 经过调查,我意识到UUID根分区至少出现在 3 个不同的位置:

    A)/boot/efi/EFI/ubuntu/grub.cfg
    B)/proc/cmdline
    C)/etc/fstab

  • 因此,正如评论中所建议的,最安全的解决方案是更改UUID克隆分区的。

我做了什么

  1. 我使用 USB 启动了实时环境的计算机,因为需要修改 UUID 的分区必须卸载

  2. 然后我运行tune2fs /dev/sda2 -U random更改(克隆分区)的 UUID /dev/sda2。运行之前tune2fs我还必须运行,e2fsck /dev/sda2 -f -p因为tune2fs要求如此。

  3. 用 确认sudo blkid

相关内容