grub的应用

  grub(GRand Unified Bootloader):统一引导加载器;

    grub所支持的界面类型:

      编辑界面:在启动时按"e",进入编辑界面,如修正错误的字符,d命令可以直接删除,在菜单界面的所以操作都只是当前有效;

      命令界面:在启动时按"c",进入命令界面,可执行类似bash下的命令;

     菜单界面:可以通过配置文件/boot/grub/grub.conf中设置多个引导菜单,启动时可以选择;


      1)编辑界面   

          用户可以通过编辑界面进入单用户模式:

            (1)编辑grub菜单,选定要编辑的title,使用“e”命令;

            (2)在选定的kernel后面,附加 1,s,S或single 之一;

            (3)在kernel所在行,键入“b”命令;


      2)命令界面

          grub命令行接口可选的参数:

              help:获取帮助列表

              help KEYWORD:获取详细帮助信息

              find(hd#,#)/PATH/TO/SOMEFILE

              root(hd#,#):

                  hd#:磁盘编号,从0开始;

                  #:分区编号,从0开始;

                  例:root(hd0,0):表示第1块磁盘的第1个分区 

              kernel/PATH/TO/KERNEL_FILE:设定本次启动用到的内核文件;额外还可以添               加内核支持使用的参数

                  例:init=/path/to/init,selinux=0

              initrd/PATH/TO/INITRAMFS_FILE:设定选定的内核所提供的额外文件的                                         randisk

              boot:引导启动选定的内核


            例:手动在grub命令行接口启动系统

                >root(hd0,0)

                >kernel /vmlinuz-2.6.32-573.el6.x86_64 root=/dev/mapper/vg0-                         root

                >initrd /initramfs-2.6.32-573.el6.x86_64.img

                >boot

      3)菜单界面

          grub配置文件:/boot/grub/grub.conf;链接文件:/etc/grub/grub.conf

[root@localhost boot]# cat /boot/grub/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/mapper/vg0-root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.67)
        password --md5 $1$wRQna$VjAO8uUs7mnIbOSdLpzFd1
	root (hd0,0)
	kernel /vmlinuz-3.10.67 ro root=/dev/mapper/vg0-root rd_NO_LUKS rd_NO_DM LANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg0/root  KEYBOARDTYPE=pc KEYTABLE=us rhgb crashkernel=auto quiet rhgb quiet
	initrd /initramfs-3.10.67.img
title CentOS 6 (2.6.32-573.el6.x86_64)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/vg0-root rd_NO_LUKS rd_NO_DM LANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg0/root  KEYBOARDTYPE=pc KEYTABLE=us rhgb crashkernel=auto quiet rhgb quiet
	initrd /initramfs-2.6.32-573.el6.x86_64.img

          配置项:

            default=1:设定默认启动的菜单项,0表示第一个title

            timeout=5:超时时间,这里是5秒

            splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz:启动时显示的图片

            hiddenmeun:是否隐藏菜单

            title CentOS(3.10.67):第一个title显示的内容,可以是任意内容

                password --md5 $1$wRQna$VjAO8uUs7mnIbOSdLpzFd1:启动选定的内核或操作                   系统时进行认证

                      (1)使用grub-md5-crypt命令生成密码串

                      (2)可直接编辑/boot/grub/grub.conf加入密码,不过是明文密码,不安全!

[root@localhost boot]# grub-md5-crypt
Password: 
Retype password: 
$1$OeQoa$yzdLrKUQHYYtLKKOOphMV0


               root(hd0,0):boot所在设备分区,为grub的“根”

               kernel /vmlinuz-3.10.67 ro root=/dev/mapper/vg0-root rd_NO_LUKS                rd_NO_DM LANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD                        SYSFONT=latarcyrheb-sun16 crashkernel=auto                                rd_LVM_LV=vg0/rootKEYBOARDTYPE=pc KEYTABLE=us rhgb                          crashkernel=auto quiet rhgb qquiet:启动的内核

               initrd /initramfs-3.10.67.img:指定匹配的ramdisk 

      安装grub

        方法(1)grub-install

              grub-install --root-directory=root /dev/DISK

        方法(2)grub(打开grub提示符)

              grub> root(hd#,#)

              grub> setup(hd#)