linux安装grub.
安装redhat linux时会提示安装引导程序,如果选择grub为引导程序,建议把grub安装到硬盘的引导扇区MBR.grub
一、 grub的配置
一旦选择了grub为引导程序,下面我们来了解一下它的配置.
/boot/grub/grub.conf 这个文件是grub产生一个引导选择菜单以及设置一些选项,下面是我的grub.conf:
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda10
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
【(password redhat)
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vol0/root rhgb quiet
initrd /initrd-2.6.18-164.el5.img
title Install Red Hat Enterprise Linux 5
root (hd0,0)
kernel /vmlinuz-5 ks=http://172.16.0.1/workstation.cfg ksdevice=eth0 noipv6
initrd /initrd-5
password --md5 $1$FSUEU/$uhUUc8USBK5QAXc.BfW4m.
chainloader +1
配置选项解释:
以"#"开头的是注释行.
其中 timeout标识默认等待时间,我这设置为10秒,超过10秒用户还没作出选择的
话,将自动选择默认的操作系统(我这里默认的是Redhat linux 8.0)
默认的操作系统是由default一项来控制的,default后的数字表明第几个是默认
的,这里0表示第一个,1表示第二个.所以如果你想修改默认的操作系统,就修改
default后的数字.
title一项是设置操作系统的名称,grub不支持中文(有点遗憾).
splashimage一项指定grub界面的背景图片,可以修改grub的背景!
hiddenmenu 隐藏菜单
【(password redhat) 编辑菜单grub密码】 可以使用 # grub-md5-crype 来获得MD5加密结果。
root (hd0,0)标识从第一个硬盘,第1个分区来启动搜索引导内核.注意这儿的
root与linux的root分区不同,此root非彼root也! grub的硬盘标识方法与linux的有
点不同.在linux中第一个主分区为hda1,第二个主分区为hda1,第一个逻辑分区为
hda5,而在 grub中是以(hdx,y)来标识的,如第一个主分区为(hd0,0)第一个逻辑分区
为(hd0,1)依此类推.所以这儿root后面的是你的 /boot所在分区标识.
知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/.说明/boot/vmlinuz-
2.6.18-164.el5 就是要载入的内核。后面的都是传递给内核的参数。ro是以
readonly的意思。注意我这里内核前面的路径是"/",因为我的boot单独分了一个区,
如果你没有为boot单独分区,那么内核前面的路径就是"/boot".
initrd用来初始的linux image,并设置相应的参数
password --md5 $1$FSUEU/$uhUUc8USBK5QAXc.BfW4m.设置内核启动密码
二、 Grub启动盘的制作
要制作引导盘,需执行一些简单的步骤。首先,在新的软盘上创建 ext2 文件系
统。然后,将其安装,并将一些 GRUB 文件复制到该文件系统,最后运行 "grub" 程
序,它将负责设置软盘的引导扇区。
将一张空盘插入 1.44MB 软驱,输入:
# mke2fs /dev/fd0
创建了 ext2 文件系统后,需要安装该文件系统:
# mount /dev/fd0 /mnt/floppy
现在,需要创建一些目录,并将一些关键文件(原先安装 GRUB 时已安装了这些
文件)复制到软盘:
# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/boot/grub
# cp /boot/grub/stage1 /mnt/floppy/boot/grub
# cp /boot/grub/stage2 /mnt/floppy/boot/grub
再有一个步骤,就能得到可用的引导盘。
在linux bash中,从 root 用户运行"grub"。
在 grub> 提示符处,输入:
grub> root (fd0)
grub> setup (fd0)
grub> quit
三、 恢复被windows破坏的grub.
如果你用grub来引导linux和windows,当windows出毛病重新安装后,会破坏MBR中
的grub,这时需要恢复grub.
1.把linux安装光盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用
光驱来引导。
2.等安装界面出来后,按[F4]键,也就是linux rescue模式。
3.一系列键盘以及几项简单的配制,过后就[继续]了。。。
4.然后会出现这样的提示符:
sh#
5.我们就可以操作GRUB了.输入grub:
sh#grub
会出现这样的提示符:
grub>
在这样的字符后面,输入:
grub>root (hdX,Y)
grub>setup (hd0)
如果成功会有一个successful......
四、 用NTLoader来引导linux.
如果你在安装linux时没有选择安装grub,如何在安装linux后安装grub.并用
windows的NTLoader来引导linux.
1. 安装grub
我用的grub是Redhat8.0带的grub安装包: grub-0.92-7.rpm
安装: rpm -ivh grub-0.92-7.rpm
2. 建立grub的环境
cp /usr/share/grub/i386-pc/* /boot/grub
3. 生成grub的配置文件/boot/grub/grub.conf
我的linux在/dev/hda4,所以menu.conf那些分区位置为(hd0,3),
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. 取得grub的boot信息
dd if=/dev/hda4 of=/grub.lnx bs=512 count=1
5. 将上面得到的grub.lnx弄到Windows的C盘根目录下
可以先把grub.lnx弄得软盘上,然后启动windows,拷贝到C:\; 情况允许也可以直
接在Linux下拷贝到C:了. 我的C盘(即设备/dev/hda1)为FAT32, 可以直接从Linux下
弄过去了. 如下:
mount -t vfat /dev/hda1 /mnt/c
cp /grub.lnx /mnt/c
umount /mnt/c
6. 修改NT Loader的boot.ini
在其中加入一行: C:\grub.lnx="Redhat Linux - GRUB"
加入后boot.ini的内容如下:
[boot loader]
timeout=15
default=C:\boot.lnx
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Professional" /fastdetect
[VGA mode]" /basevideo /sos
C:\grub.lnx="Redhat Linux - GRUB"
OK. 可以用NT Loader加载Linux了, 其实上面过程基本上和用NT Loader加载
LILO一样.其基本思想就是用NT Loader来加载LILO或grub的引导区(grub.lnx), 其中
的关键就是LILO或grub的引导区的获取.
五、 进入单用户模式.
有时不小心把root用户密码忘了,只能进入单用户模式来重新设置root密码.方法
如下:
开机进入grub界面,按C进入命令行模式,然后按照上面的方法进行,只是在第三步
要在后面加入single参数.