2006年10月11日星期三

找回丢失的GRUB

很久前写的,存过来。


问题描述

  • 双系统(Linux + Windows)使用GRUB引导的情况,当重新安装Windows后,由于MBR被重写,造成GRUB丢失。

  • 以下分别列出两种解决方法。

使用安装光盘或者linux启动盘:

  1. 用安装光盘或者linux启动盘启动,然后在启动的提示符输入:linux rescue

  2. 按照提示进入一个Shell状态,/mnt/sysimage/目录挂载了已存在的linux的/分区.

  3. 将根分区变为当前目录的根分区:chroot /mnt/sysimage

  4. 使用fdisk -l 显示当前分区情况,然后使用#grub-install /dev/hdx(x为安装硬盘,如hda)

  5. 使用exit推出chroot,再使用exit退出linux rescue模式,系统将重新启动!取出光盘,应该可以看到grub安装好了。在具体的环境中,编辑/boot/grub/grub.conf文件和menu.lst文件

使用grub启动盘:

  1. 用grub启动盘启动,按c键进入grub命令行模式。

    • grub> find /boot/vmlinuz       (查找系统中的内核文件的位置)
      (hd0,0)
      grub> find /vmlinuz (如果你采用了单独的 boot 分区, 那么需要用来查找。假定找到的结果是)
      (hd0,1)
      grub> find /sbin/init (再查找系统中有哪些根分区)
      (hd0,0)
      grub>cat (hd0,0) /root/grub/grub.conf (不一定要做,仅仅为了看启动参数)
      grub>root (hd0,1)
      grub>kernel (hd0,0) /boot/vmlinuz-2.4.18-11 ro root=/dev/hda2 (启动内核)
      grub>initrd (hd0,0) /boot/initrd-2.4.18-11.img
      grub>boot

      (!) 在grub命令行中可以使用Tab键

  2. 由此可以引导进入已装的linux系统,进入系统后,在shell行中输入命令grub,进入grub命令行模式

    • grub> boot
      grub>root (hdX,Y)
      grub>setup (hd0)

      这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。常用setup (hd0)GRUB写到硬盘的MBR上。

      如果成功会有一个successful......

没有评论: