tl;博士:我粗心大意grub-install
,然后“正确地”重新发布了它,目标是 /boot 文件系统,/dev/sda1
但它没有读取grub/grub.conf
,除非我明确告诉它使用 grub 提示工具在哪里查看。我该如何解决?
我有一个关键的 CentOS 5 系统,带有多个不可热插拔的硬盘。顺便说一句,这是个坏主意。
第一个驱动器包含 /boot,然后是操作系统和数据的两个镜像 mdraid 分区。第二个驱动器只包含两个 mdraid 分区。
第一个驱动器正在慢慢消亡,所以我添加了第三个驱动器来为不可避免的情况做准备。我复制了第一个驱动器的分区布局,将其添加到 mdraid 镜像中,然后用于dd
将 sda1 克隆到 sdc1。
昨晚我有一个硬件维护窗口,无论如何都需要重新启动机器,所以我想我会借此机会将 sdc 切换到启动驱动器。因为我只复制了分区布局和第一个分区,而不是整个驱动器,所以我认为 sdc 无法启动。所以在调整 fstab 之后,我使 sdc1 可启动并用于grub-install
确保 grub 可以处理事情。
只有我粗暴地使用了命令并输入了grub-install /dev/sda
.
它给了我一个关于在 BIOS 驱动器列表中找不到驱动器的警告,所以我认为它没有做任何有害的事情。我重新发出了命令定位/dev/sda1
,但得到了同样的错误。唔。哦,好吧,它可能什么也没做,对吧?是的。不。
当系统在重新启动后没有恢复时(在控制台上一遍又一遍地打印 GRUB GRUB GRUB),我知道我被搞砸了。显然,我所做的事很常见。
我将机器启动到一张 live CD 中,用于dd
对 sda 和 sdc 上的 MBR 进行核对,安装 sda1 的 /boot 副本,发出正确的命令(包括要求它探测驱动器列表并提供实际的文件系统位置),并且重新启动。出现的是蛴螬壳。我能够发出root (hd0,0)
并configfile grub/grub.conf
进入启动菜单,但我会假设如果我正确发出命令开始,那么它会立即看到菜单。
所以,我的关键系统运行良好。我只能在不久的将来重新启动它一次,所以我想正确处理这个问题。
所以,我的问题:
- 当前的引导进入 grub-but-not-seeing-any-configuration 是否可以在不重新运行的情况下修复
grub-install
?我现在很害怕这件事。 - 如果我必须
grub-install
再次调用,正确的方法应该是什么?我曾经grub-install --recheck --root-directory=/path/to/sda1/boot /dev/sda1
把它变成现在的状态。
我有类似的配置:通常我在镜像 mdraid 分区上创建 /boot,然后在每个驱动器的 MBR 上安装 grub,以便服务器可以在任何驱动器发生故障的情况下启动,其余的(即除 MBR 程序阶段之外的所有内容)无论如何都是用mdraid复制的,
赶紧跑
你需要在 MBR 上安装 grub,而不是第一个分区。它将拾取 1.5 阶段文件并启动内核,内核将切换到 mdraid 分区等的根目录。
这是我的配置的样子,实际上没有什么特别的,是的,它是 Centos 6,但它是同一件事:
设备图
菜单.lst