一、GRUB(Boot loader)
二、Grub的命令行接口
三、/etc/grub/grub
四、进入单用户模式
五、Grub损坏,修复
六、救援模式
七、ramdisk文件的管理和initrd
八、grub2详解


一、GRUB(Boot loader)
    Grub:GRand Unified Bootloader
        Grub 0.x:grub legacy
        Grub 1.x:grub2
    grub legacy:
        stage:mbr
        stage1_5:mbr之后的扇区中,让stage1中的bootloader能识别stage2所在的分区上的fs
            //提供stage2的文件系统所需的驱动
        stage2:磁盘分区之上的,提供选择界面,供用户选择os
            stage2及内核等通常放置于一个基本磁盘分区
    配置文件:/boot/grub/grub.conf链接文件:/etc/grub.conf
    功用:
        1.提供菜单,并提供交互式接口
            e:编辑模式,用于编辑菜单
            c:命令模式,交互式接口
                root (hd0,0)  //CentOS7的,有时需要set root=
                kernel /vmlinuz-x86_64 ro root=/dev/mapper/vg0-root
                initrd /intramfs*.img
                boot //开机即可
            
            CentOS7:
                insmod gzio
                insmod part_msdos
                insmod xfs
                set root=(hd0,msdos1)/Centos7如何使用
                linux16 /vmlinuz-3.*.x86_64 root=/dev/mapper/centos-root ro //linux取代grub的kernel
                                    //注意vmlinuz前面的 / 不能去掉
                initrd16 /initramfs-*.img
                boot //重新启动即可
            注意:linux16 root=/dev/mapper/centos-root 必须指定,否则会出错
                指定root文件路径
        2.加载用户选择的内核或OS
            允许传递参数给内核
            可隐蔽此菜单
        3.为菜单提供了保护机制
            为编辑菜单进行认证
            为启用内核或os系统进行认证
二、Grub的命令行接口
    help:获取帮助列表
    help root //查看root的帮助信息,设置grub的根设备
        //此时os尚未启动,但是grub有自己的fs驱动可以直接访问
        //但是grub的fs驱动是有限的,不可能太大,因此不能识别软fs,raid,lvm等
    help KEYWORD:详细帮助信息
        //boot是可以不单独分区的,根fs如果使用基本分区的话
        //但是根fs,必须能够被grub识别才可以
        //如果root直接指定根所在分区,boot文件也放在跟分区中也是可以的
        //这时grub root需要指定根所在分区,并能够识别该分区
    如何标识设备:
        (hd#,#) //第#块磁盘的,第#个分区
        (hd0,0) //
    find (hd#,#)/vmlinuz-   
    root DEVICE //设置根设备 root (hd0,0)
    kernel /PATH/TO/KERNEL_FILE  //vmlinuz:z标识压缩存放,设定本次启动时用到的内核文件
        //额外内核支持的很多参数
        init=/paht/to/init
        selinux=0
        root=/dev/mapper/centos-root //根文件系统所在
        ro 只读
        quiet 静默模式
    initrd /PATH/TO/INITRAMFS_FILE //设定为选定的内核提供的额外的文件的ramdisk
    boot :引导启动选定的内核
    
grub2命令行:
    set root=
    set timeout=
    ls (hd1,1)/
    search -f /ntldr
    boot启动
    linux16 指定内核文件<