Debian 11 无法更新 grub 配置

Debian 11 无法更新 grub 配置

当我使用 ansible 运行更新脚本时出现以下错误:

Generating grub configuration file ...", "Found linux image:
/boot/vmlinuz-5.10.0-26-amd64", "Found initrd image:
/boot/initrd.img-5.10.0-26-amd64", "Found linux image:
/boot/vmlinuz-5.10.0-19-amd64", "Found initrd image:
/boot/initrd.img-5.10.0-19-amd64", "Warning: os-prober will be
executed to detect other bootable partitions.", "Its output will be
used to detect bootable binaries on them and create new boot
entries.", "done", "Setting up grub-pc (2.06-3~deb11u6) ...",
"/dev/disk/by-id/ata-CFS3F-MT_32GB_2122072004900007 does not exist

问题是这台服务器的操作系统(debian 11)是通过克隆另一台机器的映像安装的。可能是磁盘的 id 不同:

sysoperator@server1:~$ ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root  9 Jan  3 15:09 ata-CFS3F-MT_32GB_2122072004900022 -> ../../sdb
lrwxrwxrwx 1 root root 10 Jan  3 15:09 ata-CFS3F-MT_32GB_2122072004900022-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 Jan  3 15:09 ata-Maximus-128GB_20220615100000000127 -> ../../sda
lrwxrwxrwx 1 root root 10 Jan  3 15:09 ata-Maximus-128GB_20220615100000000127-part1 -> ../../sda1
lrwxrwxrwx 1 root root  9 Jan  3 15:09 wwn-0x5000000000000006 -> ../../sda
lrwxrwxrwx 1 root root 10 Jan  3 15:09 wwn-0x5000000000000006-part1 -> ../../sda1

本质上不是/dev/磁盘/按 ID/ata-CFS3F-MT_32GB_2122072004900007grub 将使用/dev/磁盘/按 ID/ata-CFS3F-MT_32GB_2122072004900022反而。

在文档中,我无法找到在哪里可以用一个 id 替换另一个 id,并在安装更新之前相应地更新 grub。

编辑:我知道它可以通过运行对话框 dpkg --configure grub-pc 并选择适当的磁盘来手动修复,但我需要自动执行此操作,我有数百台服务器,无法手动执行此操作......

EDIT2:服务器正常启动。它似乎使用 UUID 进行启动:

NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda
└─sda1 ext4   1.0         6d68a3a0-c63e-4465-b170-4e0b109d973a  101.9G     2% /home
sdb
└─sdb1 ext4   1.0         9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298   20.3G    25% /

启动分区是 sdb1,因此 ata-CFS3F-MT_32GB_2122072004900022 的 UUID 是 9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298。这似乎没问题:

sysoperator@server1:~$ cat /boot/grub/grub.cfg | grep "root 9"
  search --no-floppy --fs-uuid --set=root 9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298
          search --no-floppy --fs-uuid --set=root 9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298
                  search --no-floppy --fs-uuid --set=root 9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298
                  search --no-floppy --fs-uuid --set=root 9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298
                  search --no-floppy --fs-uuid --set=root 9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298
                  search --no-floppy --fs-uuid --set=root 9ad5ffb5-1a87-49aa-b90b-ffe5ab77d298

谢谢!

答案1

问题是,尽管 grub 启动正常,但有对映像机器磁盘的引用:

/var/lib/dpkg/info/grub-pc.postinst
/var/lib/dpkg/info/grub-pc.preinst

删除两个文件并运行:

dpkg --configure grub-pc

一切顺利

相关内容