最近公司发展战略作出了调整,之前参与的一个大项目被砍掉了,所有参与这个项目的人员都进行了工作调整,才意识到一个问题,自己随时都可以被别人调整,这个感觉是很不舒服的,有些事情可以忘记,有些事情却不能忘记。
grub包含了大量的知识,如果每个细节都去学习,用处是不大的,因为这些细节对你并没用,另外可能隔断时间就忘记了,所以我觉得先把整个grub的知识点先浏览一下,然后提出其中比较重要的来学习。
1.介绍
Grub是用来引导操作系统的,它能够识别文件系统和分区格式以及内核可执行文件的格式,所以不像uboot那样要指定具体的物理地址和大小,只需要指定文件和分区即可。
2.grub对设备的命名
grub对设备命令,设备号从0开始,分区号从1开始,比如(hd0,msmos1),指定的是第一块磁盘的第一个分区。
3.安装
在安装grub之前,需要有grub工具以及相关的源文件(grub安装包),使用工具grub-install来安装grub,这个安装过程实际上是对文件的拷贝而已,将某些文件从grub安装包当中拷贝到/boot/grub当中(可以通过--boot-directory=)来指定安装目录。
4.grub/bios设备与os设备的对应关系
bios/grub设备号是根据bios的加载顺序确定的(hdx),而os设备号(/dev/sdx)确实由内核确定的。在grub当中需要/dev/sdx来作为参数,但是传参的方式确实hdx的方式来传的,所有二者需要一个对应关系来确保grub是使用的正确的参数。这个对应关系放在/boot/grub/devicemap当中,是由grub-mkdevicemap来产生的,后来不使用这种对应关系来保证参数的正确性而使用uuid,唯一的标识号,和mac地址一样,全世界只有一个。
5.grub的引导
1.对于grub支持的内核,grub直接引导
2.对于grub不支持的内核,grub采用chainloader的引导方式
6.grub的配置文件
grub通过读却配置文件"/boot/grub/grub.cfg"来决定自己的引导动作,这个grub.cfg是一个脚本,这个配置文件是由grub-mkconfig产生的,而这个grub-mkconfig实际上是调用/boot/grub.d/当中的grub脚本执行,并由/etc/default/grub来控制一些特性产生。/etc/default/grub就是grub的一些参数配置。这个产生过程是自动的,它会扫描存储体当中那里有可用内核,initrdramdisk以及根文件系统。
7.我们可以手工配置grub引导界面的风格、颜色、主题等,另外grub可以通过网络来引导内核,其打印信息也可以通过串口线来查看。
8.grub的image文件
(1).boot.img,放在MBR当中,512bytes.
(2).diskboot.img/cdboot.img/pxeboot.img,这三个镜像文件分别对应硬盘启动,光驱启动以及网络启动。
(3).kernel文件,基本的grub变量、命令行处理。
(4).core.img,grub的核心,引导内核,可以通过加载模块来壮大这个核心。
(5).*.mod,功能模块(/boot/grub/*.mod)
9.grub重要的环境变量
(1).color_highlight,配置前景和背景颜色(white/black)
(2).default,默认的grub引导条目
(3).prefix,默认的模块存放目录,需要配置正确来确保加载模块成功
(4).root,grub的安装分区
(5).timeout,grub启动条目的等待时间
10.grub命令介绍
(1).grub条目,munuentry命令
(2).boot,引导操作系统
(3).cat,显示文件内容
(4),chainloader,链式加载操作系统
(5),drivemap,如果要启动的系统不在第一块磁盘上的时候将系统磁盘映射为启动磁盘,因为grub只能引导第一块磁盘
(6).halt/reboot,关机/重启
(7).initrd,指定initial ramdisk
(8).insmod,加载功能模块
(9).ls,显示所有的设备
(10).partool,分区表工具,可以设置某个隐藏某个分区,设置启动标志
(11).set/unset,设置变量
11.grub-rescue模式
如果grub找不到normal.mod(最基本的功能模块-设置环境变量加载内核等等),就会进入这种模式,这种模式需要找到normal.mod,如:
grub-rescue>set prefix=(hd0,1)/grub
grub-rescue>set root=(hd0,1)
grub-resuce>insmod normal
grub-rescue>nomal
有几个重点需要掌握:
1.grub安装包的安装
2.grub的安装
3.产生配置文件以及其工作原理
4.chainloader的工作原理
5.grub的详细引导过程以及几个文件的作用
6.几个重要变量的设置
7.几个命令的运用
阅读(2686) | 评论(0) | 转发(0) |