刚接触Linux的用户通常都喜欢安装双系统(Windows + Linux)!不过由于Windows系统的不稳定性(如病毒,越权操作等),用户经常需要重新安装Windows,但这样就会破坏了原有的grub引导程序,导致Linux系统进不去!这也是本人刚接触Linux时经常碰到的问题!
可以通过如下简单的几个步骤进行修复:
(1) 首先通过Linux安装盘启动系统(既然是玩双系统,Linux安装盘一般都应该有的),打开终端,以root权限进入grub(注意终端程序启动后上方显示的一小段说明,它会告诉你该如何使用root权限,有的是直接通过su切换,有的也可能是使用sudo操作)!
root@local:~# grub (可能需要一点时间,稍需耐心等待……)
grub>
(2) 通过grub修复:
grub> find /grub/stage1 (也可能是 find /boot/grub/stage1,这两种命令都试一下,总能找到结果,我也不知道有什么区别,反正我都遇到过,而且每次只能用其一;该命令会显示引导文件所在分区,如(hd0,1),下面将会用到;当然了如果你对自己的磁盘分区非常熟悉,这一步也可以省略的)
grub> root (hd0,1) (注意中间有一空格,指定/boot分区所在位置,hd0表示在第一块磁盘,1表示在该磁盘的第二个分区)
grub> setup (hd0) (将grub安装到mbr;注意,这里就不需要指定分区号了)
grub> quit (退出grub程序)
(3) 重启系统,并退出光盘,然后那熟悉的grub引导界面就又出现了!
root@local:~#reboot
再附上一段关于stage文件的说明:
grub目录下包含了几个stage文件,stage1 是用于引导 grub的一个必须的映象文件。通常它是被嵌入到mbr。或者一个分区的引导扇区之中。因为 PC 的引导扇区是 512 字节,所以 stage1也是 512 字节。stage1 的作用就是从一个本地磁盘加载 stage2 或者 stage1_5。因为大小的限制,stage1对 stage2 或者 stage1_5 的位置进行编码,也就是说,stage1 是无法识别文件系统格式的。stage2 是 grub的核心映象。它几乎处理所有的事情(除了加载它自己),通常可以把他放在文件系统上,但不是必须的。
用户一旦执行了 grub-install 安装了 boot loader ,stage1文件就不是必须的,可以把它移动到任意位置,因为它已经被嵌入到 mbr 或者 pbr 了。
stage1和 stage2文件一般位于 /boot/grub/ 目录下,在这个目录下还有很多 stage1_5的文件,而且都是以文件系统格式命名的。它们的目的是在 stage1和 stage2之间搭建一个桥梁,也就是 stage1 加载stage1_5, stage1_5 加载 stage2。stage1 和 stage1_5 的不同之处是 stage1无法识别文件系统,stage1_5 可以。因为 stage2 太大了,无法被嵌入到某个固定的区域,而 stage1_5可以安装在 mbr 之后的位置。
玩笑类 于 2009-08-16 00:22:44发表:
还是不动为好
堕落kiss 于 2009-08-15 18:45:26发表:
学习了,一般不破坏MBR应该不用修复吧
xzj4167 于 2009-08-15 17:22:14发表:
学习了