GRUB

作者: JevonWei | 来源:发表于2017-07-09 19:37 被阅读0次

    Centos 6启动流程:

    POST-->BootSequence(BIOS)-->Bootloader(MBR)-->kernel(ramdisk)-->rootfs(只读) --> /sbin/init --> (/etc/inittab,/etc/init/*.conf) --> 设置默认运行级别 --> 运行系统初始化脚本、完成系统初始化 --> 关闭对应下需要关闭的服务,启动需要启动的服务 --> 设置登录终端
    

    GRUB(Boot Loader)

    配置文件:/boot/grub/grub.conf <-- /etc/grub.conf
    
    grub:GRand Unified Bootloader
        grub 0.x: grub legacy
        grub 1.x: grub2
        
    grub legary:
        stagel:mbr
        stagel1_5:mbr之后的扇区,让stagel中的bootloader能识别stage2所在的分区上的文件系统
        stage2:磁盘分区(/boot/grub/)
    
        stage2及内核等通常放置于一个基本磁盘分区:
            功用
                (1):提供菜单,并提供交互式接口
                    
                  a:内核参数 e:编辑模式,用于编辑菜单
                    c:命令模式,交互式接口
                (2):加载用户选择的内核或操作系统
                    允许传递参数给内核
                    可隐藏此菜单
                (3):为菜单提供了保护机制
                    为编辑菜单进行认证
                    为启动内核或操作系统进行认证
        
        grub如何识别设备:
            (hd#,#) 
                hd#:磁盘编号,用数字表示,从0开始编号
                #:分区编号,用数字表示,从0开始编号
                    (hd0,0) 第一块磁盘的第一个分区  
                
            
        grub的命令行接口:
            help:获取帮助列表
            help KEYWORD:详细帮助信息
            find (hd#,#)/PATH/FILENAME:在分区上查找FILENAME文件  
                eg find (hd0,0)/vmlinuz-2.6*
            root (hd#,#)  指明hd#,#设备为/(根)设备
                eg root(hd0.0)
                   find vmlinuz-2.6* 
            kernel /PATH/TO/KERNEL_FILE 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数
                eg:init=/path/to/init,selinux=0  
            initrd /PATH/TO/INITRAMFS_FILE:设定为选定的内核提供额外文件的ramdisk;
            boot:引导启动选定的内核
        
            手动在grub命令行接口启动系统:
                grub> root (hd0,0)
                grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE 以root身份只读启动内核文件 
                grub> initrd /initramfs-VERSION-RELEASE.img
                grub> boot   
    配置文件:/etc/grub.conf  
        配置项:
            default=#:设定默认启动的菜单项,落单项(title)编号从0开始
            timeout=#:指定菜单项等待选项选择的时长;
            splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;
            hiddenmenu:隐藏菜单
            password [--md5] STRING:菜单编辑md5认证
            password --encrypted 口令    512口令密码加密 
            title TITLE:定义菜单项"标题",可出现多次;
                root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的"根"
                kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS] ro root=/dev/sda2 启动的内核文件路径和/分区路径
                initrd /PATH/TO/INITRAMFS_FILE:内核匹配的ramfs文件
                password [--md5] STRING:启动选定的内核或操作系统时进行认证
        关键字(内核参数):
            rhgb 启动过程图形界面显示
            quiet 显示内核启动过程 
            max_loop 100  生成100个loop设备
            selinux=0 禁用SELinux策略
        grub-md5-crypt命令:生成md5密码口令
        grub-crypt  密码口令512加密算法
    内核参数文档:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt
    
    进入单用户模式:
        (1):编辑grub菜单(选定要编辑的title,而后使用e命令)
        (2):在选定的kernel后附加
            1,s,S或single都ok
        (3):在kernel所在行,键入"b"命令
    
    安装grub:
        (1) grub-install
            grub-install --root-directory=ROOT /dev/DISK 根据跟挂载分区设备安装/boot启动目录和grub,--root-directory=ROOT 指明grub存放跟路径目录,grub路径目录已存在,grub文件自动生成
        
        (2) grub  局限性依赖于grub目录下的文件
            grub> root (hd#,#)  grub跟位于hd#磁盘#个分区 
            grub> setup (hd#)    将grub安装到hd#硬盘上
    练习  
        1.新添硬盘,提供直接单独运行bash系统
        2.破坏本机grub stage1,而后在救援模式下修复之
        3.为grub设备保护功能

    相关文章

      网友评论

          本文标题:GRUB

          本文链接:https://www.haomeiwen.com/subject/zslehxtx.html