博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux GRUB
阅读量:5270 次
发布时间:2019-06-14

本文共 1833 字,大约阅读时间需要 6 分钟。

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#)     磁盘设备
        

注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删

转载于:https://www.cnblogs.com/guowei-Linux/p/9787322.html

你可能感兴趣的文章
LTE Module User Documentation(翻译10)——网络连接(Network Attachment)
查看>>
读8,9,10 章感悟
查看>>
专家SP2010实战--第一章节--工作流
查看>>
团队作业
查看>>
线程、进程、死锁
查看>>
POJ 1466 Girls and Boys (ZOJ 1137 )最大独立点集
查看>>
多重背包并判断能否装满(附01完全背包思想)
查看>>
bzoj1821: [JSOI2010]Group 部落划分 Group
查看>>
C语言 malloc 内存泄漏
查看>>
常用命令小结
查看>>
电脑设置或更改用户名
查看>>
多重继承下的virtual functions
查看>>
Linux下烧写工具DNW和USB驱动安装(一)
查看>>
express使用ejs模板引擎渲染html文件
查看>>
Linux操作系统下的多线程编程详细解析----条件变量
查看>>
Nginx如何隐藏index.html
查看>>
20151398051实验一
查看>>
回味手写三层-增删改查
查看>>
让人又爱又恨的char(字符型)
查看>>
zip函数
查看>>