我已经被这个问题困扰过很多次了,今天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
我认为您不能在尝试执行此操作之前检查这是否有效,而是可以立即预览您的 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
答案2
这个答案用来file -s /dev/sda
查看 GRUB MBR 是否已成功安装。除此之外,您绝对可以仔细检查 中的值,/boot/grub/grub.cfg
以确保 UUID 与 中的值匹配/dev/disk/by-uuid
,并确保 中的所有内容都正确无误/boot/grub/device.map
。如果该文件有误,您将在 grub.cfg 中的 (hdX) 规范方面遇到麻烦。
但是,如果您在更换驱动器上安装 grub 后使用,则无需手动管理这些文件update-grub
。根据我的经验,最大的问题是没有更新 GRUB 配置、没有在所有驱动器上安装 GRUB,或者分区不正确,导致您无法在不使用 --force 的情况下安装 GRUB。