更改后,grub 仍然尝试通过旧的 UUID 来挂载 cryptodisk

更改后,grub 仍然尝试通过旧的 UUID 来挂载 cryptodisk

我的 Linux 系统具有以下磁盘设置(MBR 格式、BIOS 引导):

sda                                             32G disk              
└─sda1                                          32G part  crypto_LUKS 001b349b-2a70-4408-bae2-107d035c96e9
  └─luks-001b349b-2a70-4408-bae2-107d035c96e9   32G crypt btrfs       8c72adab-63cf-4526-b77e-78f11d2585e2

它工作得很好,但我想更改 LUKS 卷和文件系统的 UUID。这是因为我正在从我的主机上创建可启动救援 USB,因此我需要避免从 USB 启动时发生 UUID 冲突。

所以我尝试:

sudo sed -i 's/001b349b/101b349b/g' /etc/default/grub
sudo sed -i 's/001b349b/101b349b/g' /etc/fstab
sudo sed -i 's/001b349b/101b349b/g' /boot/grub/grub.cfg
sudo sed -i 's/8c72adab/7c72adab/g' /etc/default/grub
sudo sed -i 's/8c72adab/7c72adab/g' /etc/fstab
sudo sed -i 's/8c72adab/7c72adab/g' /boot/grub/grub.cfg
sudo update-grub
sudo grub-install /dev/sda --modules=btrfs

完成后,我将磁盘连接到另一台计算机并调整两个 UUID:

sudo cryptsetup luksUUID /dev/sda1 --uuid "101b349b-2a70-4408-bae2-107d035c96e9"
sudo btrfstune -U 7c72adab-63cf-4526-b77e-78f11d2585e2 /dev/mapper/sda1-crypt

当我尝试从生成的磁盘启动时,我看到:

error: no such cryptodisk found.
error: disk 'cryptouuid/001b349b2a704408bae2107d035c96e9' not found.
Entering rescue mode...
grub rescue> _

也就是说,某处旧的 LUKS UUID 仍然存在。我预计当我运行时它会被新的覆盖grub-install,但它没有发生。

为什么 grub 仍然尝试旧的 UUID?为了让它尝试新的,我缺少什么?

更新:

看起来,当grub-install运行时,它可能会从当前安装的 LUKS 设备(而不是从任何配置文件)获取旧的 UUID,因为我看不到旧的 UUID 可能来自其他地方。是这样的情况吗?有什么办法可以覆盖这种行为吗?

相关内容