天天看点

grub的安装方法

grub是一个很强大引导加载器,很多的Redhat发行版使用的都是grub进行引导,但是grub有一个缺陷就是grub最大只能支持的1T的硬盘,在进入grub时,可以看到有个纯红色的背景图片,但是在MBR中存放grub一共就446字节,但是一个图片的大小有可能就大于446字节,所以这张图片肯定不会在grub中,所以,grub的运行机制是采用了两段式设计,grub的第一段放在MBR中,其作用是是引导grub的第二段,在第一段和第二段的中间其实还有一段,其大致作用可以理解为用来加载文件系统,和识别文件系统。在/boot/grub中可以看到很多结尾"1_5"的文件,这些就是grub的中间段所要加载的文件。其实grub也有自己的配置文件--"grub.conf";

下面打开grub.conf查看一下其中的内容:

# 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,0)

#          kernel /vmlinuz-version ro root=/dev/vol0/root

#          initrd /initrd-version.img

#boot=/dev/sda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

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

        kernel /vmlinuz-5 ks=http://192.168.0.254/workstation.cfg ksdevice=eth0 noipv6

        initrd /initrd-5

以#开头的都是注释信息

一、default:指的是默认启动的哪个,可以看到下面有两个title,其中第一个title表示为0,第二个title表示为1,所以这里默认启动的就是第一个title;

二、timeout:指的是超时时间,即在该时间内没有进行其他操作,则启动默认启动项;

三、spalashimage:指的是进入grub时的背景图片,"(hd0,0)":这里指的是第一块磁盘的第一个分区,也是grub能够识别的磁盘格式,无论任何种类的磁盘,grub都将其识别为hd;/grub/splash.xpm.gz:指的是在grub中的那张图片,在grub启动时,内核还没有启动,所以文件系统还不存在,所以根也就不存在,所以就写作/grub而不写作/boot/grub;这里要说的是,grub只支持xpm格式的图片,而且支持的颜色位数为14位;

四、hiddenmenu:指的是是否要隐藏隐藏菜单;

五、title:后面跟的则是要启动的系统名字,当然这个根据个人需要,你也可以随便的命名

    root:指的是grub使用的根,也是文件访问的起始点

    kernel:指定内核文件是谁;在这里由于root已经指定了grub的根,所以这里直接指定/kernel;ro:只读;root:这里的root指的是操作系统的根文件系统;rhgb:指的是rehat的一个边框,这个可有可无;quiet:指的是静默模式;

    initrd:内核需要读取文件系统,读文件系统时需要加载驱动,但是驱动在lib中,而lib在根下,去根下找需要加载驱动,所以这样就无法就解决了吗?其实initrd就是做这样的功能,它也是一个根,其实它也算是一个微型的Linux,它不提供其他功能,它只提供/lib/modules,所以内核加载驱动时去initrd中加载,Initrd提供了驱动那么内核就可以访问根了,访问这个文件系统了,但是这个initrd又不是必须的,当需要的驱动在内核中已经存在时,就不在需要initrd了;"/initrd-2.6.18-164.el5.img":因为内核中没有逻辑卷的驱动,而这个文件中就存在逻辑卷的驱动

grub的安装方法:

法1:手动安装

步骤:

一、新增加一块硬盘,创建一个新的分区,并将其格式化

#echo "

n

p

1

+100M

w" | fdisk /dev/sdb

#mkfs -t ext3 /dev/sdb1

二、将该新分区挂载

#mount /dev/sdb1 /mnt/boot

三、创建grub目录

#mkdir /mnt/boot/grub

#cd /usr/share/grub

这里的grub是一个隐藏的目录,所以需要先进入

#cd i386-redhat/

复制当前目录中的所有文件到/mnt/boot/grub/

#cp ./* /mnt/boot/grub/

四、卸载/dev/sdb1

#umount /dev/sdb1

五、安装grub

#cd

#grub

grub>root (hd1,0)

grub>setup (hd1)

grub>quit

并且在grub下生成了一个grub.conf文件,这样就强制安装了grub

法2、使用grub-install安装

#mount /dev/sdb1 /mnt/

三、创建boot目录

#mkdir /mnt/boot

四、安装grub

#grub-install --root-directory=/mnt /dev/sbd1

在此它会自动在boot目录下创建一个grub目录并且创建相关文件

这样grub可以通过两种方法进行创建,我们只需要将这两块已经创建好grub的硬盘放入PC中,可以看到出现了grub的提示符,如果有内核那么就可以进入系统了。好了到此grub就创建成功!

本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/788555,如需转载请自行联系原作者

继续阅读