修复 CentOS 5.9 Grub 步骤错误

修复 CentOS 5.9 Grub 步骤错误

我在一台硬件 RAID 级别为 5 的新服务器上安装了 CentOS 5.9 x64。

由于我的无知,我告诉它不要安装 Grub。下次重新启动时,我看到一个闪烁的光标。所以,我回到安装程序,无需重新安装所有内容即可将 Grub 放在 /dev/cciss/c0d0 上。现在,无论何时启动,我都会收到一个grub>(0.9.7,我猜不是 Grub2)提示。

当我做:

root (hd0,0)
setup (hd0,0)  (or "setup (hd0)")

一切都成功完成,但下一次启动又把我带到同一个地方。于是我就去追随这些方向,但是当我到达less menu.lst它时,它告诉我它不存在。做事ls既不向我展示menu.lst也不grub.conf/boot/grub之后chroot /mnt/sysimage

我是否必须手动创建 grub.conf,或者是否有更好/更自动化的方式,我不太可能搞砸,以完成这一步?

更新:我刚刚尝试使用 vi 自己创建 grub.conf 。然后我grub-install又做了一次,此时我注意到这hd0是我的 USB 记忆棒(我从它启动到安装程序来linux rescue执行此操作)并且hd1是 RAID。我想即使我在没有 USB 记忆棒的情况下重新启动,情况仍然如此。所以也许我应该做root (hd1,0)等等?不,当我尝试这样做时,它启动时出现错误Selected disk does not exist。但是,此时它为我提供了一个方便的 grub.conf 编辑器。所以我尝试(hd0,0)启动,它发现 ext 文件系统没问题,但现在显示File not found.我已经尝试了以下几行和所有yield File not found

kernel /boot/vmlinuz-2.6.18-384.el5 root=/dev/cciss/c0d0
kernel /boot/grub/vmlinuz-2.6.18-384.el5 root=/dev/cciss/c0d0
kernel /grub/vmlinuz-2.6.18-384.el5 root=/dev/cciss/c0d0
kernel /dev/cciss/c0d0/vmlinuz-2.6.18-384.el5 root=/dev/cciss/c0d0

这个终于启动了,但是在挂载 /sys 失败然后尝试卸载旧的 /sys 后,它给了我一个内核恐慌:

default=0
timeout=2

title CentOS 5.9
  root (hd0,0)
  kernel /vmlinuz-2.6.18-384.el5 ro root=/dev/cciss/c0d0
  initrd /initrd-2.6.18-384.el5.img

所以我没有做任何事情,再次启动棒linux rescue,并选择“升级现有安装”,并重新安装 Grub。首先是/dev/sda安装位置的选项,但我告诉它我想修改/高级。下一个屏幕让我在/dev/sda和之间进行选择/dev/cciss/c0d0p1。如果我首先修改引导顺序以将 RAID 阵列放在第一位(而不是匹配 BIOS 中当前的方式以便引导到棒),我的选择将变为/dev/cciss/c0d0p1/dev/cciss/c0d0。如果我选择后者,它会说安装软件包时出了问题,并且没有加载内核映像,重新启动会让我回到自定义的 grub.conf 失败(如果我修改它,我可以让它陷入内核恐慌。)如果我不要修改启动顺序并选择/dev/cciss/c0d0,同样的事情。

答案1

您还需要在救援模式下编辑 /boot/grub/device.map 并更改映射以反映在没有 USB 密钥的情况下启动时的情况。即删除/dev/sda 行,并将/cciss 行更改为hd0。然后保存grub-install /dev/cciss/c0d0并重新启动。

相关内容