简述grub启动引导程序配置及命令行接口详解

简述grub启动引导程序配置及命令行接口详解,第1张

1、grub 命令行接口(一次性设置)

系统启动过程中按 c 键可进入grub 命令行界面,就可以自定义grub 启动参数了。常用命令有:

 help   ##查询帮助

 help   COMMAND ##查询命令帮助

ls : 显示系统磁盘及分区情况

 root (hd#,#)   :将hd#的第#号分区设置为根分区(CentOS 6)

  kernel /PATH/TO/KERNEL_FILE : 设定本次启动用到的内核文件(CentoS 6)

  set root=(hd#,msdos#)  : 将第#块硬盘的第#个分区设置为根分区(CentOS 7)

linux /PATH/TO/KERNEL_FILE : 设定本次启动用到的内核文件(CentoS 7)

r oot=/dev/mapper/cl-root ro init=/bin/sh   : 指明根分区路径;以ro/rw格式挂载第一个运行的程序是bash

initrd /PATH/TO/INITRAMFS_FILE_FILE : 为选定的内核提供额外的ramdisk

CentOS 7:

然后boot 重启,将会出现以下定制的系统了:

CentOS 6:

2、grub 配置文件:   永久配置是要在grub 的配置文件中配置的;

        CentOS 6 : /boot/grub/grub.cfg

                default=0  : 设置默认启动菜单项;编号从0开始

                timeout=5 :  设置菜单项等待被选择的时长

                title CentOS Express   ##定义内核菜单选项

                        root (hd0,0)

                        kernel /vmlinuz-VERSION-release ro [selinux=0]  root=/dev/mapper/vg0-root (根据系统设置)

                        initrd /initramfs-VERSION-release.img

        CenOS 7 : /boot/grub2/grub.cfg (/etc/grub2.cfg ), 不要直接修改

                        grub2-mkconfig会调用/etc/grub.d中的脚本去搜集/etc/default/grub 中的配置参数,生成/etc/grub2.cfg  

                        /etc/default/grub中的参数被修改,就可以使用grub2-mkconfig重新生成/etc/grub2.cfg

                         #grub2-mkconfig –o /boot/grub2/grub.cfg

3、给Grub 添加保护

CentOS 6:

            配置项:

                default=0

                timeout=5

               password [--md5] STRING : 菜单编辑认证

               title TITLE : 

                            root (hd#,#) : 

                            kernel /PATH/TO/VMLINUXZ_FILE [PARAMETERS] 

                            initrd /PATH/TO/INITRAMFS_FILE 

                            password [--md5] STRING : 启动选定的内核或 *** 作系统时需要进行认证

CentOS 7:

a.添加grub菜单和命令行的密码认证:

        >>>grub2-setpassword    ##输入密码两次生成/boot/grub2/user.cfg 文件

        >>>cat /boot/grub2/user.cfg

                GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.CC6F56BFCFB90C49E6E16DC7234.....

        >>>grub2-mkconfig -o /boot/grub2/grub.cfg  ##重新生成配置文件

                Generating grub configuration file ...

                Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64

                Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img

                Found linux image: /boot/vmlinuz-0-rescue-f9725b0c842348ce9e0bc81968cf7181

                Found initrd image: /boot/initramfs-0-rescue-f9725b0c842348ce9e0bc81968cf7181.img

                done

       >>>shutdown -r now

            再次键入e 或 c ,系统都会要求输入用户名和密码的

rel:  https://www.thegeekdiary.com/centos-rhel-7-how-to-password-protect-grub2-menu-entries/

b. 删除grub 密码保护(删除掉user.cfg,重新生成配置文件即可)

        >>>rm -rf /boot/grub2/user.cfg

        >>>grub2-mkconfig -o /boot/grub2/grub.cfg

        >>>reboot

硬盘的引导记录(MBR)是不属于任何一个 *** 作系统,也不能用 *** 作系统提供的磁盘 *** 作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。

用INT13H的读磁盘扇区功能的调用参数如下:

入口参数:AH=2 (指定功能号)

AL=要读取的扇区数

DL=磁盘号(0、1-软盘;80、81-硬盘)

DH=磁头号

CL高2位+CH=柱面号

CL低6位=扇区号

CS:BX=存放读取数据的内存缓冲地址

出口参数:CS:BX=读取数据存放地址

错误信息:如果出错CF=1 AH=错误代码

用DEBUG读取位于硬盘0柱面、0磁头、1扇区的 *** 作如下:

A>DEBUG

-A 100

XXXX:XXXX MOV AX,0201 (用功能号2读1个扇区)

XXXX:XXXX MOV BX,1000 (把读出的数据放入缓冲区的地址为CS:1000)

XXXX:XXXX MOV CX,0001 (读0柱面,1扇区)

XXXX:XXXX MOV DX,0080 (指定第一物理盘的0磁头)

XXXX:XXXX INT 13

XXXX:XXXX INT 3

XXXX:XXXX (按回车键)

-G=100 (执行以上程序段)

-D 1000 11FF (显示512字节的MBR内容) 一个扇区的硬盘主引导记录MBR由如图6-15所示的4个部分组成。

·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。 0000-0088 Master Boot Record

主引导程序 主引导

程序 0089-01BD 出错信息数据区 数据区 01BE-01CD 分区项1(16字节) 分区表 01CE-01DD 分区项2(16字节) 01DE-01ED 分区项3(16字节) 01EE-01FD 分区项4(16字节) 01FE 55 结束标志 01FF AA 图6-15 MBR的组成结构图 占用512个字节的MBR中,偏移地址01BEH--01FDH的64个字节,为4个分区项内容(分区信息表)。它是由磁盘介质类型及用户在使用 FDISK定义分区说确定的。在实际应用中,FDISK对一个磁盘划分的主分区可少于4个,但最多不超过4个。每个分区表的项目是16个字节,其内容含义如表6-19所示。

表6-19 分区项表(16字节)内容及含义 存贮字节位 内容及含义 第1字节 引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。 第2、3、4字节 本分区的起始磁头号、扇区号、柱面号。其中:

磁头号——第2字节;

扇区号——第3字节的低6位;

柱面号——为第3字节高2位+第4字节8位。 第5字节 分区类型符。

00H——表示该分区未用(即没有指定);

06H——FAT16基本分区;

0BH——FAT32基本分区;

05H——扩展分区;

07H——NTFS分区;

0FH——(LBA模式)扩展分区(83H为Linux分区等)。 第6、7、8字节 本分区的结束磁头号、扇区号、柱面号。其中:

磁头号——第6字节;

扇区号——第7字节的低6位;

柱面号——第7字节的高2位+第8字节。 第9、10、11、12字节 本分区之前已用了的扇区数。 第13、14、15、16字节 本分区的总扇区数。 启动PC机时,系统首先对硬件设备进行测试,测试成功后进入自举程序INT 19H,然后读系统磁盘0柱面、0磁头、1扇区的主引导记录(MBR)内容到内存指定单元0:7C00地址开始的区域,并执行MBR程序段。

硬盘的主引导记录(MBR)是不属于任何一个 *** 作系统的,它先于所有的 *** 作系统而被调入内存,并发挥作用,然后才将控制权交给主分区(活动分区)内的 *** 作系统,并用主分区信息表来管理硬盘。

MBR程序段的主要功能如下:

·检查硬盘分区表是否完好。

·在分区表中寻找可引导的“活动”分区。

·将活动分区的第一逻辑扇区内容装入内存。在DOS分区中,此扇区内容称为DOS引导记录(DBR)。

硬盘逻辑驱动器的分区表链结构

硬盘是由很多个512字节的扇区组成,而这些扇区会被组织成一个个的“分区”。

硬盘的分区规则是:一个分区的所有扇区必须连续,硬盘可以有最多4个物理上的分区,这4个物理分区可以是4个主分区或者3个主分区加一个扩展分区。在DOS/Windows管理下的扩展分区里,可以而且必须再继续划分逻辑分区(逻辑盘)。

从MS-DOS3.2问世以后,用户就可以在一个物理硬盘驱动器上划分一个主分区和一个扩展分区,并在扩展分区上创建多个逻辑驱动器,也即我们常说的一个物理盘上多个逻辑盘。

举一个例子,一个10G的硬盘,安装Windows,有C:、D:、E:三个逻辑盘,那么它的分区情况可以是如下的方式:

分区一:主分区2GB,格式化为C:盘。

分区二:扩展分区8GB。它被再划分为两个各4GB的逻辑盘,格式化为以D:和E:盘。

在一个划分有多个主分区的硬盘上,则可安装多个不同的 *** 作系统。如Windows、Linux、Solaris等。每个 *** 作系统自己去管理分配给自己的分区。但是,每个 *** 作系统对分区的 *** 作方式是不同的。对于DOS/Windows来说,它能够把它所能管辖的一个主分区和一个扩展分区格式化,然后按照 C:、D:、E:逻辑盘的方式来管理。而Linux则不同,它是把“分区”看作一个设备,既没有“扩展分区”的概念,也没有“逻辑盘”的概念。

1.逻辑盘的链接关系

在FAT 文件系统中,硬盘的逻辑盘字符用字符C:、D:、E:、...、Z:来表示。主分区一般被格式化成C:盘,从D:盘开始的逻辑盘是建立在扩展分区之上的。在系统进行读写 *** 作时,DOS首先查看主引导记录(MBR)中的分区信息表,分区项将指向活动主分区的DOS引导记录(DBR)。

MBR中的分区表位于0柱面、0磁头、1扇区内,以位移1BEH开始的第一分区表作为链首,有表内的链接表项指示下一分区表的物理位置(xx柱面、0磁头、1扇区),在该位置的扇区内同样位移1BEH处,保存着第2张分区表,依次类推,直至指向最后一张分区表的物理位置(yy柱面、0磁头、1扇区)。因该分区表内不存在链接表项,即作为分区表链的链尾。如图6-17所示。

硬盘 第一个虚拟 第二个虚拟 第三个虚拟

MBR分区表 MBR分区表 MBR分区表 MBR分区表 定义C:盘 ------------> 定义D:盘 -----------> 定义E:盘 ------------> 定义F:盘 描述剩余空间 描述剩余空间 描述剩余空间 描述剩余空间 未用 未用 未用 未用 未用 未用 未用 未用 55AA 55AA 55AA 55AA 图6-17 具有4个逻辑盘的分区链表示意图

举例来说,本来位于柱面0、磁头0、扇区1上的分区表的每一项记录和主分区的DBR之间有一对应的关系,但是,如果在扩展分区中建立了多个逻辑盘,例如D:、E:、F:,该分区表中的分区项可指向第一个逻辑盘:,但对于其它的逻辑盘,则就没有这种对应关系了。为能够查找扩展分区中的多个逻辑盘,DOS系统可做如下安排:

·如果硬盘只有一个主分区,即是将整个硬盘作为一个逻辑盘C:,则分区命令FDISK只在硬盘的柱面0、磁头0、扇区1上建立一个MBR。

·如果硬盘被划分成2--4个分区,则FDISK除了在柱面0、磁头0、扇区1上建立一个MBR之外,还在扩展分区的每个逻辑盘的起始扇区上都建立一个虚拟MBR,每一个虚拟MBR用于扩展分区上的一个逻辑盘。

·扩展分区的第一个扇区不是用于一个逻辑盘的DBR,而是指向一个“扩展的”分区表,即第一个虚拟的MBR。该逻辑盘DBR扇区的起点应为虚拟MBR的下一个磁道1扇区。

这些MBR中的各个分区表链接成一个如图6-17所示的分区表链。这是一个硬盘具有4个表项所描述的内容。

DOS就是用这种方法来使一个扩展分区看起来象是有多个硬盘。

从图6-17中可以看到,位于磁盘柱面0、磁头0、扇区1上MBR的分区表指向基本分区及扩展分区中的第一个逻辑盘。

boot指的是启动(或引导)

1、在讲述这个名词的意义之前,最好做一张启动盘,这样在计算机受到引导型病毒的感染时可以干净地启动计算机杀死这个病毒。

2、启动作为动词时是指将 *** 作系统装入主存或RAM中,一旦 *** 作系统存在于主存或RAM中时,用户就可以在计算机上使用应用程序了。有时候您可能会看到一个单词,让您"reboot"(重新启动),它的意思就是让您重新把 *** 作系统装入计算机的主存或RAM。上面所说的是指PC机,而一般大型计算机中不用这个单词,在大型机中称启动为IPL(Initial Program Load,初始程序装载)。

3、作为名词时,它指的是引导程序,此程序可以先行进入系统,获得系统的控制权,然后导入所有的 *** 作系统程序。

4、需要注意的是,启动或装载 *** 作系统与安装 *** 作系统是两码事,在一台计算机上的安装一般只进行一次,而每次开机时 *** 作系统进入计算机主存或RAM的过程不能称之为安装。在安装的过程中用户需要设置许多参数,在安装结束后, *** 作系统就会存在于计算机的存储器中。可以安装其它应用程序,但启动一般仅仅针对 *** 作系统而言的。一定不要把这两个意思弄错了。

5、虽然启动过程因 *** 作系统的不同而稍稍有所不同,但是基本过程是这样的:当您打开计算机时, *** 作系统将按照下面的顺序自已进行装载。

6、开机时,系统中只读存储器(ROM)中的基本输入输出系统(BIOS)获得系统控制权,BIO预先装好的,不象随机访问存储器(RAM),ROM的内容不会因为计算机掉电而丢失。BIOS首先进行开机自检过程(power-on self test,POST)确定计算机上所有的基本部件可以正常工作。然后,BIOS的引导程序找寻特定的启动程序,由这个启动程序装载硬盘上的 *** 作系统。通常情况下,此程序会首先会使A驱动器,如果其中有软盘的话,将会在特定的位置读入引导文件。(对于MS-DOS系统来说,这两个文件是IO.SYS和MSDOS.SYS。)如果启动程序在这个位置没有找到可以用于装载 *** 作系统的文件时,BIOS将告诉用户A盘不是一张启动盘。如果驱动器A中没有软盘的话(通常都没有),BIOS将在硬盘的特定位置上找寻特定的文件,在找到这个文件后,BIOS将第一个扇区(一个512字节的特定区域)读入RAM的特定位置,第一个扇区内存储的信息就称之为主引导记录。 在装入引导记录后,引导记录获得系统的控制权,由它将后面的文件装入系统。在将后面的文件全部装入系统后,引导记录就没有用了,可以被别的数据覆盖掉了。在此之后要装置进一些配置文件,这些配置文件将使这台计算机工作在最佳状态之下。在处理完配置文件之后, *** 作系统正式获得控制权,这时启动就算完成了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11552637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存