zoukankan      html  css  js  c++  java
  • Linux 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#)     磁盘设备
            

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

  • 相关阅读:
    图像分割之Dense Prediction with Attentive Feature Aggregation
    与中文对齐的英文等宽字体
    管家订菜与Scrum流程
    说说自己在2014年的阅读思路
    Hello World
    Bootstrap实现轮播
    普通Apache的安装与卸载
    Python中OS模块
    Python中文件读写
    Python装饰器
  • 原文地址:https://www.cnblogs.com/guowei-Linux/p/9787322.html
Copyright © 2011-2022 走看看