问:原来有一个linux系统,现增加一个window XP系统后,原linux 系统将无法引导,怎么办?
方法一:
我是采用的grub for dos工具进行的恢复操作
第一步:下载grub for dos,这个好多linux网站上都有,我用的是4.2版本的,0.97
第二步:将下载的文件解压到c盘的根目录下,注意是文件夹下的所有文件和目录都拷贝到根目录下,不是grub for dos独自在一个文件夹下。
第三步:修改boot.ini文件,在文件末尾添加如下内容:C:/grldr="GRUB FOR DOS"
然后重启计算机,就可以看到启动菜单里多了一个grub for dos的选项,点击即可进入grub for dos的菜单。grub for dos菜单有不下十项的内容,选择第三项,它会自动找到你硬盘里的linux 分区并进入系统。
我如上操作后,进入到linux系统(fedora4)后, 察看/boot/grub/grub.conf的内容如下:
default=0
timeout=5
splashimage=(hd0,7)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core ( 2.6.11-1.1369_FC4)
root (hd0,7)
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.11-1.1369_FC4.img
title other
rootnoverify (hd0,0)
chainloader +1
其中,
timeout - 这个命令设定了在GRUB载入由default命令指定的项目前的时间间隔,以秒为单位。
splashimage - 它指定在GRUB引导时所使用的屏幕图像的位置。
title - 设定用来装载一个操作系统的一组特定命令的标题。
hiddenmenu - 这个命令被使用时,它不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按[Esc]键,可以看到标准的GRUB菜单。
·root - 将GRUB的根分区设置成特定的设备和分区,比如说(hd0,0)。并挂入这个分区,这样文件可以被读取。
·rootnoverify - 做root命令同样的事情,只是不挂入分区。
·kernel - 当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的根文件系统中载入。options选项是跟在kernel命令后面,在内核载入时传给内核。
·chainloader - 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1作为文件名
字符#用来在菜单配置文件放置注释。
将上面的内容稍作修改后,重新启动系统,仍然进入grub for dos启动菜单,进入command line 格式,输入以下命令:
root (hd0,7) //
setup (hd0)//写入主引导区(MBR)
注意命令的格式,root 和setup后面都跟有空格。其中:
ROOT的使用格式是:ROOT(HDX,Y)
其中X从0---N,Y也是。第一个硬盘,第一个分区就是(HD0,0),第一个硬盘,第二个分区就是(HD0,1);
第二个硬盘,第一个分区就是(HD1,0),第一个硬盘,第二个分区就是(HD1,1);如此类推,可以知道ROOT的用法了。
ROOT是GRUB识别硬盘和文件格式的命令,告诉GRUB下一步可以到那里找GRUB的配置文件,启动核心,或启动IMG文件等。
setup (hd0)就是把GRUB写到硬盘的MBR上。
而后再重启动系统,原来的grub启动菜单就恢复了。
方法二:
答: 因为windows的系统把MBR区格掉了,放入了它自己的引导程序,所以得重新将GRUB的程序放回MBR区。
在电脑重启时,放入linux的第一张安装盘,引导时,按F2,再输:linux rescue 回车。
按照提示下去,会进入一个SH#:再输入#:grub 回车,再输grub>root (hd0,x) x就是linux所在的分区号。
根据提示看是否成功。若成功,再输grub>setup (hd0) 至此,搞定,reboot就行了。