GRUB2救援模式“错误:未知文件系统”

时间:2020-03-21 11:43:56  来源:igfitidea点击:

我最近在服务器上添加了第二个磁盘,创建了一个分区'/dev/sdb1',并在上面放置了ReiserFS文件系统。
系统重启后,我看到了grub抢救shell 。

Grub Rescue Shell “error: unknown filesystem"

这有点出乎意料,因为当天没有在'/dev/sda'磁盘上进行GRUB2相关的更改。

GRUB loading.
Welcome to GRUB!
error: unknown filesystem
Entering rescue mode...

如果我们有一个抢救shell ,这通常意味着GRUB2无法加载“正常”模块,Live CD很好,但有时我们只需要一个抢救shell 。

让我们看看可以访问哪些磁盘和分区:

grub rescue> ls
(hd0)(hd0,msdos1)(hd1)(hd1,msdos4)(hd1,msdos3)(hd1,msdos2)(hd1,msdos1)

由于我在新磁盘上仅创建了一个分区,因此它必须是(hd0,msdos1)。

在这种情况下,hd1应该是我的主磁盘。
知道了这一点之后,其余的事情就变得不那么直接了。
我的'/boot'分区位于(hd1,1),而'/'分区位于(hd1,2)。
其他分区包括'/var'和swap。

让我们检查内核和initrd镜像是否可见:

grub rescue> ls (hd1,1)/
./../lost+found/System.map-3.2.0-4-686-pae config-3.2.0-4-686-pae grub/vmlinuz-3.2.0-4-686-pae initrd.img-3.2.0-4-686-pae

将prefix和root设置为正确的值并加载linux模块:

grub rescue> set prefix=(hd1,1)/grub
grub rescue> set root=(hd1,2)
grub rescue> insmod (hd1,1)/grub/linux.mod
grub rescue> normal

引导到操作系统后,我挂载了'/boot'分区并重新安装了GRUB2:

# grub-install /dev/sda
# update-grub

但是,系统重启后,我回到了带有“未知文件系统”的相同的抢救grubshell。

BIOS

原来是BIOS引导顺序设置,该设置被设置为从第二个磁盘引导。
在BIOS中更改了启动顺序后,问题消失了。

请注意:操作系统中的驱动器订购可能与固件使用的引导驱动器订购不同。