GRUB(启动中的另一个引导器)

GRUB(Boot Loader):
    grub:Grand Unified Bootloader
        grub 0.x:grub legacy
        grub 1.x:grub2
    grub legacy:
        stage1:mbr
        stage1_5:位于mbr之后的扇区,让stage1中的BootLoader能识别stage2所在分区的文件系统;
        stage2:磁盘分区/boot/grub
            功能:
                提供菜单,并提供交互式接口
                    e:编辑模式,用于编辑菜单
                    c:命令模式,交互式接口(具体解释在下面)
                        在这一步可以指定BootLoader位置和要启动的kernel、initrd(具体解释在下面)
                            grub> root=(hd0,0)
                            grub> kernel /vmlinuz-version ro root=/dev/PATH
                            grub> initrd /initramfs-version.img
                            grub> boot
                加载用户选择的内核或文件系统
                    允许传递参数给内核
                    可隐藏菜单
                为菜单提供了保护机制
                    为编辑菜单进行认证→管理员可以编辑菜单(此处的管理员跟系统中的不是一回事)
                    为启动内核或文件系统进行认证→指定的用户可以启动内核
        配置文件:/boot/grub/grub.conf <-- /etc/grub.conf
            配置项:
                default=#:设定默认启动的菜单项;菜单项(title)编号从0开始;
                timeout=#:设置菜单项选项被选择的超时时间;
                splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:设定菜单背景图片;
                hiddenmenu:隐藏菜单;
                passwd [--md5] STRING:菜单编辑认证;如果设置则需要输入正确密码之后才可编辑菜单项;
                title TITLE:定义菜单项的标题(可出现多次);
                    root (hd#,#):grub查找stage2及kernel文件所在的设备分区(grub的"根");
                    kernel /PATH/TO/VMLINUZ_FILE [TARAMETERS]:启动系统时用到的内核;
                    initrd  /PATH/TO/INITRAMFS_FILE:与内核匹配的ramdisk;
                    passwd [--md5] STRING:启动选定的内核或操作系统时进行认证;
            grub-md5-crypt命令:
                生成上面passwd需要的密码串;
            当系统启动时,首先会加载位于mbr中的BootLoader从而加载stage1,接着会读取随后扇区中的stage1_5,然后就可以驱动stage2所在的文件系统了(还包含kernel,ramdisk等);
        stage2及kernel等通常会放置于一个基本磁盘分区中;因为grub一般是不支持LVM、software raid等,从而无法被stage1_5所识别;
        grub如何识别设备:
            (hd#,#)
                hd#:表示磁盘编号,用数字表示
                #:分区编号,用数字表示
        grub的命令行接口
            help:获取帮助
                help [COMMAND] :查看某个命令的详细信息
                find  (hd#,#) /PATH/TO/filename:寻找分区中的指定文件
                    find (hd0,0)/vmlinuz-version
                root (hd#,#) :指定跟
                kernel:/PATH/TO/KERNEL_FILE:设定本次启动用到的内核文件;
                    额外还可以添加许多内核支持使用的cmdline参数;
                        init=/path/to/init
                        selinux=0
                initrd:/PATH/TO/INITRAMFS_FILE:未选定的内核提供的initramfs文件;
                boot:引导启动选定的内核;
    进入单用户模式:
        编辑grub菜单(选定要编辑的title,然后使用e命令);
        在选定的kernel后附加:1、s、S、或single都可以;
        在kernel所在行键入b命令;

    安装grub:
        (1)grub-install
             grub-install --root-directory=ROOT /dev/DISK
        (2)grub
             root (hd#,#)    系统所在分区
             setup (hd#)     磁盘设备

猜你喜欢

转载自www.cnblogs.com/chenming-1998/p/11751581.html