这篇文章主要简述在linux系统中如何实现GRUB的安装。
首先了解几个概念:
MBR主引导记录:是在我们磁盘上的0磁道0磁头1扇区的位置 。
MBR总共有512个字节:主要包含引导程序bootloader 占据446个字节 , 磁盘分区表占据64个字节 ,引导封装代码占据2个字节
GRUB:全称是Grand Unified Bootloader 是一个功能强大,支持内核也非常多的bootloader引导加载器.
我们知道在系统启动过程中,系统在自检完成之后靠之前bios设置的磁盘启动顺序找到相应的磁盘,此时首先找到的是磁盘的MBR, 然后加载MBR中的bootloader引导程序。
在linux中我们常用的bootloader就是GRUB,如果GRUB损坏或者丢失也就意味着我们无法去加载系统内核程序,系统也将无法正常启动。
好了不罗嗦了,在此我们就介绍一下怎么在虚拟机下去安装GRUB ,
我们的操作环境是vm8的虚拟机,RedHat5.4的操作系统
第一种方法:
1 我们在redhat5.4的系统中,加上一个磁盘 ,创建一个分区,并将其格式化。
在虚拟机中给一个系统加一个磁盘,我想大家应该都不陌生,
在此我加了一块磁盘为sdb
# fdisk /dev/sdb 创建一个分区/dev/sdb1
#mkfs –t ex3 /dev/sdb1 指定ext3的文件格式格式化磁盘分区
2 我们在mnt目录下创建一个目录为boot
#mkdir /mnt/boot
grub的相关文件是在/boot目录下
3 挂载磁盘到此目录
# mount /dev/sdb1 /mnt/boot
安装是需要在/boot目录下写文件 所以挂载上去
4 安装我们使用grub-install来安装grub
#grub-install --root-directory=/mnt /dev/sdb
--root-directory = 此选项是指定grub安装的位置
到此,我们用此新建的磁盘上的grub已安装成功 ,我们再创建一个虚拟机,用此磁盘作为启动盘就可看到grub的编辑界面了,此时再去指定根目录,内核等等,当然这是后面的事情了。
第二种方法:
我们用grub-install安装后生成的grub的目录的里面的内容和我们当前系统下 /usr/share/grub/i386-redhat目录中的内容是一样的,因此我们也可以通过复制文件的方式,然后再用grub命令来达到安装grub的目的。
1:#mount /dev/sdb1 /mnt/boot 依然是挂载
2:#mkdir /mnt/boot/grub 创建以个grub的目录
3: #cp /usr/share/grub/i386-redhat/* /mnt/boot/grub
复制前者的所有的文件到grub目录下
4 # umount /dev/sdb1 卸载
5 # grub 运行grub命令会弹出黑色编辑框
grub> root (hd1,0) 输入root (hd1,0) 回车 (hd1,0)表示第二个磁盘的第一分区
grub> setup (hd1) 输入setup (hd1) 回车 此为安装
grub> quit 输入quit 回车 退出
此时再挂载上/dev/sdb1到 /mnt/boot查看grub目录下,你会发现也已经有所需的文件了,再去用创建以个新的虚拟机验证一下吧。