我们有一个运行良好的 Ubuntu 22.04 设置。当我们克隆紧凑型闪存驱动器并放入相同的系统时,它无法启动并显示file '/grub/i386-pc/normal.mod' not found
错误消息。我们一直在使用 grub recovery 来尝试查找原因,结果显示(但我们可能错误地使用了 grub recovery,因为我们是新手)/boot/grub
尽管进行了经过验证的克隆,但目录仍为空。
在工作系统上df-h
显示以下内容:
Filesystem Size Used Avail Use% Mounted on
tmpfs 377M 1.4M 376M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 5.6G 4.7G 644M 88% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 1.7G 247M 1.4G 16% /boot
tmpfs 16M 16K 16M 1% /opt/intellair/db
tmpfs 377M 4.0K 377M 1% /run/user/1000
在不可启动的系统上使用 grub recoveryls
命令得到以下结果:
(hd0) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
设置给出:
cmdpath=(hd0)
prefix=(hd0,gpt2)/grub
root=hd0,gpt2
如果我们尝试ls
任何其他驱动器,我们得到Filesystem is unknown
,但 gpt2 (对应/dev/sda2
)有效,如果我们运行,ls /
我们得到
config-5.15.0-52-generic
lost+found
System.map-5.15.0-52-generic
grub/
initrd.img
vmlinuz
initrd.img-5.15.0-52-generic
vmlinuz-5.15.0-52-generic
initrd.img.old
vmlinuz.old
关键的是,当我们发出命令时,ls /grub
它运行正常,但没有返回任何内容。我们认为这意味着 grub 文件夹是空的。这也表明无法加载我们期望在 grub 文件夹中的任何模块(例如 linux、kernel、normal 等)。
两个具体问题:
在 grub 恢复中如果
/grub
目录包含文件应该ls /grub
列出它们吗?假设
/grub
确实是空的,以前有其他人遇到过这个问题吗?这几乎就像紧凑型闪存驱动器的克隆专门省略了 grub 目录的内容?
值得注意的是,在旧的 Ubuntu 18.04 设置上,此过程对我们来说运行良好。只有在较新的 Ubuntu 22.04 上,克隆过程才会出现此问题。