#language zh = 排除 GRUB 的问题 = 假若一个系统的 GRUB 设置出现问题(成因包括:不正确地修改 GRUB 配置文件、安装另一个操作系统、硬件上或 BIOS 内的改动引致设置的排序不相同),导致 GRUB 不能找到它的配置文件,你可能会面对 grub 的开机提示符而无从着手。普遍来说,第一步是要找出 GRUB 配置文件的位置。GRUB 的 '''find''' 指令可以为你效努。 {{{ grub> find /grub/grub.conf find /grub/grub.conf (hd0,2) (hd1,2) }}} 这里告欣我们有两个 /boot 分区,有可能源自软件 RAID 或不同操作系统。头一个位于第一个硬盘的第三个分区,而另一个位于第二个硬盘的第三个分区。假若要将第一个项目的 GRUB 设置重新安装到 MBR: {{{ grub> root (hd0,2) grub> setup (hd0) }}} 如果你安装了其它 Linux 版本,例如 Ubuntu,它也设只有 menu.lst 档而没有 grub.conf,但由于 CentOS 利用连结把 menu.lst 指向 grub.conf,因此在这两款系统上寻找 menu.lst 亦可行: {{{ grub> find /grub/grub.conf find /grub/grub.conf (hd0,0) grub> find /grub/menu.lst find /grub/menu.lst (hd0,0) (hd0,1) }}} 这里告欣我们有两个 /boot 分区,头一个位于第一个硬盘的第一个分区,很可能正是 CentOS,而另一个 Linux 的 /boot 位于第一个硬盘的第二个分区。 要查看 grub.conf 及 menu.lst 档的内容,可使用 GRUB 的 '''cat''' 指令: {{{ grub> cat (hd0,0)/grub/grub.conf ... 显示文件内容 ... grub> cat (hd0,1)/grub/menu.lst ... 显示文件内容 ...}}} 要是首轮尝试找不到文件,很可能 /boot 分区并不存在,而 grub 被安装在主目录内。你可试用 {{{ grub> find /boot/grub/grub.conf (hd0,0) (hd1,4) }}} 同样地,这个例子里有两个 GRUB 安装。头一个在第一个硬盘的第一个分区,而另一个在第二个硬盘的第五个分区 —— 亦即首个扩展分区。 若果要撤消第二个项目并将 GRUB 的开机程序安装在第一个硬盘的 MBR 上: {{{ grub> root (hd1,4) grub> setup (hd0) }}} 要是你不清楚主目录的位置时,你可以尝试寻找 /etc 内的一个文件。譬如: {{{ grub> find /etc/fstab (hd0,1) }}} 由此我们得知 / 位于第一个硬盘的第二个分区上 —— 采用 SCSI 或 SATA 等于 /dev/sda2,而采用 PATA 等于 /dev/hda2。 GRUB 的指令壳还有很多功能,并且在 GRUB 的 info 档内有详情记载,请利用 info grub 来访问它们。 ---- 其它 GRUB 文章: * [[zh/HowTos/GrubInstallation| CentOS 5 及 6 上安装 Grub]] * [[zh/TipsAndTricks/ReinstallGRUB| 如何重新安装开机管理程序(GRUB)]] * [[zh/TipsAndTricks/InstallFromGRUB| 以 GRUB 引导安装]] ---- 这页的英文版由 PhilSchaffner 创建及维护。欢迎其它 Wiki 贡献者作出更正、添加或修改。 ~-Translation of revision 6-~