引言:
GRUB是一个多重操作系统的启动管理器。用来引导不同的系统,如windows,Linux。
一般来说要先装Windows,后装Linux,这样grub才能生效(grub存在于linux的安装中)。
这两天我重装了Windows,grub就不起作用了,也无法进入linux了(grub设置的默认进入windows)。
在不想重装linux的情况下,需要对grub进行重装,将搜集的资料及验证的结果整理后存放于此。
准备工作:
确认linux系统的根分区所在位置。比如我的Redhat9.0的根分区安装在第一块硬盘的第3个分区上,写成
grub识别的指令即为 root (hd0,2),序号从0开始。
Note:
下面的root与(hd0,2)之间存在一个空格,setup与(hd0)之间也存在一个空格。
修复GRUB的方法:
1. 把Linux安装光盘的第一张放到光驱,然后重新启动机器,在BIOS中把系统用光驱来启动。 2. 等Linux的安装界面出来后,按[F5],进入 linux rescue模式。(也可以不进入rescue模式而在boot: 提示符出现后,键入“linux single root=/dev/hdxx initrd= ”注释:hdxx为你的linux 系统所在的分 区,比如我的Redhat9.0存放与第一块硬盘的第4个分区,则为/dev/hda4) 3. 进入linux rescue模式后需要进行一些键盘以及几项简单的配置(按ok即可),过了之后就[继续]了…… 4. 然后会出现这样的提示符: sh# (Redhat9.0为sh-2.05#) 5. 此时可以对grub进行操作, 键入 grub: sh#grub 会出现这样的提示符: grub> 6. 在grub>提示符后面键入: grub>root (hdX,Y) 注释:告诉系统你的linux根分区所在的分区 (我的Redhat9.0对应的为root (hd0,2)) 如果记不清,可以在键入“root (hd”之后,按一下Tab键。 顺利的话再键入 grub>setup (hd0) 注释:把grub装入主引导区(MBR),也可以键入setup (hdX,Y)将grub装在你想装的位置。 如果成功,会有一个successful... 7. grub>quit 注释:退出grub 8. sh#exit 注释:退出shell
之后重启,如果(hdX,Y)没错的话,就可以用grub引导了。
但是,有可能一些原因导致虽然修复成功,但还是不能引导,直接进了windows。
如下:grub loading stage 1.5
grub loading please wait...
之后直接进入windows...
主要原因还是grub的问题,修复成功,但是盘符有错。(一般是系统引导的盘符与你root时不一致引起的)
解决方法: 找到文件grub.conf,并对其进行修改。 按上述步骤重新进入rescue模式后, sh#cd /mnt sh#cd sysimage 注释:实际的linux系统被挂载在/mnt/sysimage目录下 sh#cd boot sh#cd grub sh#vi grub.conf 对照是否与你之前root (hdX,Y)一致。一般都是这里出了问题,将其改回来即可,操作与linux下相同。
问:hda与hd0有什么不同?
主要是命名的问题。hda是从字母开始命名,hd0是从数字开始。
hda=hd0
hda8=(hd0,7) 注释:hda是从hda1开始的
时间: 2024-10-10 01:19:22