Grub引导Linux或者windows系统
很多新手,在安装linux系统时常常会出现的问题:引导程序装错,或者不小心删除linux分区,把mbr删掉了。或者装完linux后又重装windows,把mbr覆盖了,以致无法启动系统,出现"Grub>"的情况。
如果将Grub或者Lilo安装在Mbr(主引导扇区),重新安装Windows会造成Grub或者Lilo的丢失。如果把它们安装在根分区(root分区),则可以有效避免上面的情况发生。除非你认为多次重复安装grub是一种享受。
Grub是Linux下新一代操作系统引导程序,技术上要比Lilo强很多,建议使用。而且在一些老的BIOS上面,Lilo不会支持8G以上大容量硬 盘。你的Linux如果安装在硬盘528MB以后位置的分区中,Lilo不会正确引导。Grub则没有这样的问题。
(1)准备一张Linux Live CD,或者有一张Grub启动软盘。因为在Linux安装结束后,你不能通过重新启动电脑直接引导它,还需要几个步骤。
(2)如果都没有,就需要下载Grub for DOS,然后将grldr文件复制到C盘根目录。然后编辑boot.ini。
* grldr 0.95可以在www.ubuntu.org.cn的源中找到,在文档-专题文档-与windows xp共存 文档中有这个文件的下载链接。
打开“命令提示符”,输入以下命令。
attrib –r –s –h c:\boot.ini
notepad c:\boot.ini
用记事本打开boot.ini后,在后面加上一行:
c:\grldr=”Grub for DOS”
保存记事本。
attrib +r +s +h c:\boot.ini
(3)先安装Windows 9x,再安装Windows NT,最后安装Linux。并在安装最后的设置阶段把Grub管理器安装到root分区。
(4)用grldr启动已经安装好的linux
(5)输入正确的用户名,转到root用户模式:
[user@ubuntu/]$ sudo passwd su (如果不知道根用户的密码,可以通过这个命令设置)
[user@ubuntu/]$ su (回车后提示输入根用户密码,输入正确就可以进入根用户模式。
[root@ubuntu/]# cd /mnt
[root@ubuntu/mnt]# mkdir hda1
[root@ubuntu/mnt]# mount /dev/hda1 /mnt/hda1
[root@ubuntu/mnt]# dd if=/dev/hda6 of=/mnt/hda1/bootsect.lnx bs=512 count=1
输入以上的命令,就可以在hda1,也就是C盘根目录建立一个名为bootsect.lnx的512字节大小的文件。当然,如果你的C盘是fat32格式的,成功率就是100%。
如果C盘是ntfs格式,你就需要挂载一个fat32分区,并把文件先写到fat32分区,然后到windows下再倒到C盘。
重新启动电脑,并进入Windows XP,对boot.ini文件进行再次编辑。在最后加上一行:
c:\bootsect.lnx=”Linux System”
引号里的文字可以改成你喜欢的文字,它作为操作系统的名称出现在bootloader菜单上。重新启动电脑,你就可以在Windows NT的操作系统选单上选择Linux,并进行启动了。
注意:bootsect.lnx这个文件是一个普通的文件,对写入扇区无任何特殊要求,所以你可以复制一份到你认为保险的地方,而且它才512个字节。
或者:
1.把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。
2.等安装界面出来后,按[F4]键,也就是linux rescue模式。
3.一系列键盘以及几项简单的配制,过后就[继续]了。。。这个过程,我不说了,比较简单。
4.然后会出现这样的字符
sh#
5.我们就可以操作GRUB了。。。哈。。。只要能出现这样的,以后都是小Case了,我就是不说 ,谁也能明白,地球人都知道了。。。。
sh#grub
会出现这样的字符
grub>
我们就可以在这样的字符后面,输入
grub>root (hdX,Y)
grub>setup (hd0)
如果成功会有一个successful......
请留意root和(hdX,Y)之间有一个空格,这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MBR上。
或者使用grub_for_dos从dos引导Grub
grub_for_dos的最新版(V0.0.5)可以从这里得到:
ftp://ftp.cosoft.org.cn/incoming/grub_for_dos-0.0.5.tar.gz
如果是要进入windows系统则输入:
rootnoverify (hd0,0) //(注释)这行是到windows所在分区
chainloader +1 //(注释)可以想像成找到windows所在分区第一扇区的引导文件位置吧
boot //(注释)根据刚找到的地址的引导文件进行启动
这样就可以进入windows了,但这不是长久的方法,每次要进入系统都得输入一大堆东西很麻烦,所以只能重装mbr了。
关于mbr修复和重装问题见下面的方法:
1. windows命令行fixmbr [device_name(驱动器盘符)] 是重新写入一个mbr
fixboot
2. dos下fdisk /mbr
3.删除linux分区后,启动不了
grup>rootnoverify (hd0,0)
chainloader +1
boot或root (hd0,0)
4.进入xp后运行clsmbr.exe清楚mbr
5. 若连grub都启动不了,进入dos下 fdisk /mbr
6.重装xp后, grub-install /dev/hda
安装故障恢复控制台 d:i386winnt32.exe /cmdcons,其中 d 是 CD-ROM 驱动器的驱动器号
2、用Fdisk命令修复
Fdisk不仅是一个分区程序,它还有着非常便捷的恢复主引导扇区功能,而且它只修改主引导扇区,对其他扇区并不进行写操作,因此对于那些还在使用Windows 9x的朋友而言无疑是个非常理想的分区表修复工具。通过Fdisk修复主引导区的时候,先用Windows 98启动盘启动系统,在提示符下输入“Fdisk /mbr”命令即可覆盖主引导区记录。
提示:“Fdisk /mbr”命令只是恢复主分区表,并不会对它重新构建,因此只适用于主引导区记录被引导区型病毒破坏或主引导记录代码丢失,但主分区表并未损坏的情况使用。而且这个命令并不适用于清除所有引导型病毒,因此使用的时候需要注意。
对硬盘第一分区为ntfs的情况,fdisk/mbr一直是一种误导性的解决办法
3、用Fixmbr修复引导记录
在Windows 2000/XP中,我们一般会用到故障恢复控制台集成的一些增强命令,比如Fixmbr用于修复和替换指定驱动器的主引导记录、Fixboot用于修复知道驱动器的引导扇区、Diskpart能够增加或者删除硬盘中的分区、Expand可以从指定的CAB源文件中提取出丢失的文件、Listsvc可以创建一个服务列表并显示出服务当前的启动状态、Disable和Enable分别用于禁止和允许一项服务或者硬件设备等等,而且输入“help”命令可以查看到所有的控制命令以及命令的详细解释。
比如输入“fixmbr”命令可以让控制台对当前系统的主引导记录进行检查,然后在“确定要写入一个新的主启动记录吗?”后面输入“Y”进行确认,这样就完成了主引导记录的修复。
1.Fixboot
向系统分区写入新的分区引导扇区。只有在使用故障恢复控制台时,才能使用 fixboot 命令。
fixboot [drive]
参数 驱动器
将要写入引导扇区的驱动器。它将替代默认的驱动器(即用户登录的系统分区)。例如,驱动器:D:
范例
下列命令范例向驱动器 D: 的系统分区写入新的分区引导扇区:
fixboot d:
注意: 如果不带任何参数,fixboot 命令将向用户登录的系统分区写入新的分区引导扇区。
2.Fixmbr
修复启动磁盘的 主启动记录。fixmbr 命令仅在使用故障恢复控制台时才可用。
fixmbr [ device_name]
参数
device_name
要写入新的主引导记录的设备(驱动器)。设备名称可从 map 命令的输出获得。例如,设备名称:
\Device\HardDisk0
范例
下列命令示例向指定设备写入一个新的主引导记录:
fixmbr \Device\HardDisk0
注意:如果不指定 device_name,新的主引导记录将被写入引导设备,即装载主系统的驱动器。
如果系统检测到无效或非标准分区表标记,将提示用户是否继续执行该命令。除非您访问驱动器有问题,否则不要