GRUB应用

  • CentOS 6启动流程:
    POST --> Boot Sequence(BIOS) --> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端
  • GRUB(Boot Loader):引导加载器,程序
    1grub: GRand Unified Bootloader
    grub 0.x: grub legacy
    grub 1.x: grub2
    2.grub legacy:
    stage1: mbr
    stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统;
    stage2:磁盘分区(/boot/grub/)
    配置文件:/boot/grub/grub.conf <-- /etc/grub.conf
    stage2及内核等通常放置于一个基本磁盘分区;
    功用:
    (1) 提供菜单、并提供交互式接口
    e: 编辑模式,用于编辑菜单;
    c: 命令模式,交互式接口;
    (2) 加载用户选择的内核或操作系统
    允许传递参数给内核
    可隐藏此菜单
    (3) 为菜单提供了保护机制
    为编辑菜单进行认证
    为启用内核或操作系统进行认证
    3.grub的命令行接口:
    help: 获取帮助列表
                       help KEYWORD: 详细帮助信息
                        find (hd#,#)/PATH/TO/SOMEFILE:
                        root (hd#,#)
                        kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数;
                              例如:init=/path/to/init, selinux=0
                         initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;
                          boot: 引导启动选定的内核;
                        手动在grub命令行接口启动系统:
                              grub> root (hd#,#)
                              grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE 
                               grub> initrd /initramfs-VERSION-RELEASE.img
                               grub> boot
                    识别硬盘设备:
                            (hd#,#)
                         hd#: 磁盘编号,用数字表示;从0开始编号
                            #: 分区编号,用数字表示; 从0开始编号
                          (hd0,0)

    4.安装grub:
    (1) grub-install
    grub-install --root-directory=ROOT /dev/DISK
    (2) grub
    grub> root (hd#,#)
    grub> setup (hd#)
    grub legacy配置文件
    配置文件:/boot/grub/grub.conf

    配置项:
         default=#: 设定默认启动的菜单项;落单项(title)编号从0开始;
        timeout=#:指定菜单项等待选项选择的时长;
          splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;
           hiddenmenu:隐藏菜单;
           password [--md5] STRING: 菜单编辑认证;
           title TITLE:定义菜单项“标题”, 可出现多次;
                    root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”; 
                    kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
                    initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;
                    password [--md5] STRING: 启动选定的内核或操作系统时进行认证;
  • grub加密:
    生成grub口令:
     grub-md5-crypt
     grub-crypt
     破解root口令:
     启动系统时,设置其运行级别为1
    进入单用户模式:
       (1) 编辑grub菜单(选定要编辑的title,而后使用e命令); 
       (2) 在选定的kernel后附加
              1, s, S或single都可以;
       (3) 在kernel所在行,键入“b”命令;