1、Grub磁盘分区配置详解Grub引导程序的安装、配置及使用汇总 (一)安装linux时安装grub.安装redhat linux时会提示安装引导程序,如果选择grub为引导程序,建议把grub安装到硬盘的引导扇区MBR. grub 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT、2000、XP。(二)grub的配置一旦选择了grub为引导程序,下面我们来了解一下它的配置./boot/grub/grub.conf是grub产生一个引导选择菜单以及设置一些选项.下面是我的grub.conf:#=例子开始
2、=# grub.conf generated by anaconda# Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,6)# kernel /vmlinuz-version ro root=/dev/hda10# initrd /initrd-versio
3、n.img#boot=/dev/hdadefault=0timeout=10splashimage=(hd0,6)/grub/splash.xpm.gz# - Redhat Linux 8.0 Microsoft Windows XP 我们就可以在这样的字符后面,输入:grubroot (hdX,Y)grubsetup (hd0)如果成功会有一个successful.这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MBR上。(五).用NTLoader来引导lin
4、ux.如果你在安装linux时没有选择安装grub,不必着急,现在我们来看看如何在安装linux后安装grub.并用windows的NTLoader来引导linux.1. 安装grub我用的grub是Redhat8.0带的grub安装包: grub-0.92-7.rpm 安装: rpm -ivh grub-0.92-7.rpm2. 建立grub的环境cp /usr/share/grub/i386-pc/* /boot/grub3. 生成grub的配置文件/boot/grub/menu.conf按照上面所讲的grub.conf来生成一个配置文件.注意了, 这里我的linux在/dev/hda4,
5、所以menu.conf那些分区位置为(hd0,3),你的可能不一样了,不能完全照着画瓢噢! 下面第3步install的中的分区位置也应该和你的系统一致.3. 安装grub至Linux分区boot将grub的stage1安装到/dev/hda4的boot扇区(hd0,3). 过程如下:/sbin/grub (运行grub)grub install (hd0,3)/boot/grub/stage1 d (hd0,3) (hd0,3)/boot/grub/stage2 p (hd0,3)/boot/grub/menu.conf(注意,上面grub为grub的提示符,其后内容写在一行上.)4. 取得g
6、rub的boot信息过程如下:dd if=/dev/hda4 of=/grub.lnx bs=512 count=1这样得到grub的引导信息,只要用NT Loader来加载它就行了.5. 将上面得到的grub.lnx弄到Windows的C盘根目录下可以先把grub.lnx弄得软盘上,然后启动windows,拷贝到C:; 情况允许也可以直接在Linux下拷贝到C:了. 我的C盘(即设备/dev/hda1)为FAT32, 可以直接从Linux下弄过去了. 如下:mount -t vfat /dev/hda1 /mnt/ccp /grub.lnx /mnt/cumount /mnt/c6. 修改N
7、T Loader的boot.ini在其中加入一行: C:grub.lnx=Redhat Linux - GRUB加入后boot.ini的内容如下:boot loadertimeout=15default=C:boot.lnxoperating systemsmulti(0)disk(0)rdisk(0)partition(1)WINDOWS=Microsoft Windows XP Professional /fastdetectVGA mode /basevideo /sosC:grub.lnx=Redhat Linux - GRUBOK. 可以用NT Loader加载Linux了, 其实上
8、面过程基本上和用NT Loader加载LILO一样.其基本思想就是用NT Loader来加载LILO或grub的引导区(grub.lnx), 其中的关键就是LILO或grub的引导区的获取.(六)活用grub的交互功能grub具有强大的交互功能.学会了将会使你受益非浅!1.grub没有显示菜单怎么办?当开机后进入grub界面但没了菜单,只剩下一个grub提示符,怎么启动呢?别急,看下面: grubcat (hd0,6)/boot/grub/grub.conf (为了看参数)grubroot (hd0,6)grubkernel (hd0,6)/vmlinuz-2.4.18-14 ro root=
9、LABEL=/grubinitrd (hd0,6)/initrd-2.4.18-14.imggrubbootOK!启动了吧!以上有些数字要根据你的实际情况更改.以上这个方法也可以用于测试新编译的内核.2.进入单用户模式.有时不小心把root用户密码忘了,只能进入单用户模式来重新设置root密码.方法如下:开机进入grub界面,按C进入命令行模式,然后按照上面的方法进行,只是在第三步要在后面加入single参数。到GRUB的设置的那一块。我们要把GRUB安装到MBR上。这样就把mandrake的GRUB覆盖。这也没有什么可怕的,我们可以把它加在Redhat 的GRUB中,系统安装好后,我们设置一
10、下就行了。只是修改一个文件/etc/grub.conf4.如何修改/etc/grub.conf一般的发行版,GRUB的配置文件都在/etc/grub.conf中,如果我们安装了多个linux,就要修改这个文件。那我们如何修改呢?一般的情况 下,windows是自动加载到了grub.conf中,打开grub.conf,就能看到windows的设置情况。可能有时系统会突然出现不能引志 windwows的情况,我们就要下面的类似的改动一下。title DOSrootnoverify (hd0,0)chainloader +1改成title WinXP在这里,title是必须的,WinXP,您可以用别
11、的名,您喜欢怎么样就怎么样。root (hd0,0)chainloader +1这样就能启动了。2.如何把其它的linux的引导加入到GRUB来引导呢?我们可以用下面的方法。也是比较简单。GRUB引导linux系统,就是靠三行来定义。title XXX在这里,XXX是您要引导的操作系统的名字。可以自己来定。root (hdX,Y)在这里,X和Y都代表一个数值。X是linux的根分区在哪个硬盘上。如果您只有一个硬盘。那就是hd0。如果您 的linux的一个发行版是安装在第二个硬盘,这个X,就是1。那Y代表什么?Y是代表您所安装的linux是在哪个区。这个数值有点不同。用原理没有办 法说清楚。应该
12、用实例来说。比如我把mandrake安装到hda8了。那他的root (hdX,Y),就应该写为root (hd0,7),也是说是linux所在的根分区hdaZ中的Z减去1就是这个Y的数值:在这之中,hdaZ或者 hdbZ中的Z也是一个数值。看一下上面的例子就明白了。用fdisk -l 或者df -la来查看kernel /boot/vmlinuz root=/dev/hdaZ这里中的Z,也是一个数值,接着上面的例子,我们把Mandrake的引导加入到Redhat 的GRUB中。就可以写成如下的样子:kernel /boot/vmlinuz root=/dev/hda8通过上面的分析,我们要让Redhat的GRUB来引导Mandrake 9.0,我们要改动Redhat中的GRUB的配置文件,加入下面的一段:title MD 8.0root (hd0,7)kernel /boot/vmlinuz root=/dev/hda8如果您想加入其它的操作系统到Redhat 中的GRUB中,也不过是如此,如者用其它发行版中的GRUB来引导别的发行版,原理也是一样的。GRUB是不是很简单?
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1