是否可以在不重新启动的情况下验证grub的安装?


24

我被这个问题困扰了很多次,今天在openssl服务器grub中的更新后,我抱怨我应该重新安装它,因为“以前安装的硬盘不存在”。

我具有以下设置的raid 1安装(根据bootinfoscript):

> ============================= Boot Info Summary: ===============================
> 
>  => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at
> sector 1 of the same hard drive for core.img. core.img is at this location and looks
>     for (mduuid/d2a04f98760e2b3cc23ba87845667605)/grub on this drive.  
>
> => Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector 1 of
>     the same hard drive for core.img. core.img is at this location and looks
>     for (mduuid/d2a04f98760e2b3cc23ba87845667605)/grub on this drive.

My mount points are:

> /dev/md2 on / type ext4 (rw) 

> /dev/md1 on /boot type ext3 (rw)

And mduuid seems to match the ones bootinfoscript mentions:

> ls -l /dev/disk/by-id/md-uuid-*
>
> lrwxrwxrwx 1 root root 9 Mar 19 11:37 /dev/disk/by-id/md-uuid-38048286:e3004e47:510ca3e1:2bae3f2e -> ../../md2 
>
> lrwxrwxrwx 1 root root 9 Mar 19 11:37 /dev/disk/by-id/md-uuid-d2a04f98:760e2b3c:c23ba878:45667605 -> ../../md1 
>
> lrwxrwxrwx 1 root root 9 Mar 19 11:37 /dev/disk/by-id/md-uuid-e099b695:0143bb58:e4ef7645:0f22ce0b -> ../../md0

运行grub-install可以运行,但是我想确保在重新引导grub之后,实际上可以正确引导我的分区。

我该如何验证?


1
我既不使用也不真正了解RAID,但是您将grub安装到RAID的根目录而不是驱动器的MBR。如果您运行引导修复,则可能会收到如下消息。/ dev / mapper / isw_cdjacjeebj_VOLUME_0的MBR中未安装引导加载程序。映射器是您的RAID卷。
oldfred 2014年

Answers:


19

我不认为您可以在尝试执行此操作之前先检查一下它是否会起作用,而可以立即获得GRUB的预览,这样就可以确保将新配置正确加载到GRUB中。

这可以使用称为的工具来实现grub-emu

man grub-emu

NAME
       grub-emu - GRUB emulator

SYNOPSIS
       grub-emu [OPTION]...

DESCRIPTION
       GRUB emulator.

       -r, --root-device=DEV
              use DEV as the root device [default=guessed]

       -m, --device-map=FILE
              use FILE as the device map [default=/boot/grub/device.map]

       -d, --directory=DIR
              use GRUB files in the directory DIR [default=/boot/grub]

       -v, --verbose
              print verbose messages

grub-emu使用命令行轻松安装:

sudo apt-get install grub-emu

要运行它,只需使用终端运行以下命令:

grub-emu

1
这是对grub2安装的可靠测试吗?另外,键盘输入似乎不适用于显示的菜单;有启用它的技巧吗?
Michael Scheper

我无法关闭grub-emu,唯一阻止它的方法是pkill -SIGKILL -fe grub-emu,键盘输入也不起作用
Aquarius Power

1
@MichaelScheper这将修复交互性serverfault.com/a/847429/163750 :)。基本上,xterm -e grub-emu将重点放在xterm而不是grub-emu窗口上!
水瓶座力量

4

该答案用于file -s /dev/sda查看GRUB MBR是否已成功安装。除此之外,您肯定可以/boot/grub/grub.cfg再次检查中的值,以确保UUID与中的值匹配/dev/disk/by-uuid,并确保中的所有内容正确无误/boot/grub/device.map。如果该文件是错误的,那么您将无法使用grub.cfg中的(hdX)规范。

如果update-grub在替换驱动器上安装了grub之后使用,则无需手动管理这些文件。根据我的经验,最大的麻烦是没有更新GRUB配置,没有在所有驱动器上安装GRUB,或者是分区不当导致无法使用--force安装GRUB。


2
该答案仅file -s用于grub1,对于grub 2,还有另一个答案提示dd bs=512 count=1 if=/dev/sda 2>/dev/null | strings|grep GRUB
rubo77

没有“ /boot/grub/device.map”,但是该链接的重要之处!
水瓶座力量
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.