GRUB是一个启动引导程序。它允许在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
GRUB具有以下优点:
1、GRUB可动态配置
2、GRUB支持多种可执行格式
除了可适用于支持多启动的操作系统外,还通过链式启动功能支持诸如Windows之类的不支持多启动的操作系统。GRUB支持所有的Unix文件系统,也支持Windows适用的FAT和NTFS。
3、GRUB可以通过GRUB提示符直接与用户进行交互
4、在启动操作系统时用方向键进行选择
GRUB的启动过程:
计算机启动后,BIOS将寻找第一个可启动的设备(通常为硬盘),而后从MBR中载入启动程序。MBR位于硬盘的前512字节内。
GRUB的步骤1包含在MBR中。由于MBR的大小有限,所有步骤一所做的几乎只是装载GRUB的下一步骤(存放在硬盘的其它位置)。步骤1既可以直接装载GRUB2,也可以装载GRUB1.5:GRUB1.5包含在MBR后面的30KB中。GRUB1.5载入GRUB2。
当GRUB2启动后,它将呈现一个界面来让用户选择启动的操作系统。通过这一步,用户可以手工指定启动参数。GRUB还可以设置超时后自动从某一个内核启动。
安装GRUB:
本实验操作系统为RHEL5.8,以新的一块磁盘/dev/sdb为例:
先为grub的安装提供好环境,编辑并执行下面这个脚本就OK了:
编辑脚本:
- //删除磁盘上的数据
- dd if=/dev/zero of=/dev/sdb bs=512 count=1 &> /dev/null
- //对磁盘分区
- echo '
- n
- p
- 1
- +100M
- n
- p
- 2
- +1G
- n
- p
- 3
- +128M
- t
- 3
- 82
- w' | fdisk /dev/sdb &> /dev/null
- sleep 2
- partprobe /dev/sdb &> /dev/null
- sleep 5
- //格式化分区
- mkswap /dev/sdb3 &> /dev/null
- mke2fs -j /dev/sdb1 &> /dev/null
- mke2fs -j /dev/sdb2 &> /dev/null
- //挂载分区
- [ -d /mnt/boot ] || mkdir -p /mnt/boot
- [ -d /mnt/sysroot ] || mkdir -p /mnt/sysroot
- mount /dev/sdb1 /mnt/boot
- mount /dev/sdb2 /mnt/sysroot
执行脚本:
- #bash -n mkdisk.sh
- #chmod mkdisk.sh
- #./mkdisk.sh
1、在grub的命令行模式下安装:
在命令行中输入grub,即可进入grub的命令行模式
#grub
2、使用grub-install命令安装grub:
#grub-install --root-directory=gurb的根目录 安装grub的磁盘