GRUB

2017-07-09  本文已影响0人  JevonWei

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设备保护功能
上一篇下一篇

猜你喜欢

热点阅读