一分钟掌握Linux系统grub.conf配置核心知识

    /    2018-08-15

引导加载程序(Boot loader)是计算机在加载操作系统内核之前运行的一段小程序。

通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境加载到一个适合的状态,以便为最终调用操作系统内核做好准备。

通常,引导加载程序依赖于硬件实现,早期的Linux系统常见的引导加载程序有2种,即Grub和Lilo,现如今Grub已经成为了主流(类似Windows下的boot.ini引导文件)。

引导加载程序读取grub.conf文件的配置信息,然后根据对应配置信息来启动不同的操作系统, 管理员可以从三个路径(本质是一个)查看grub.conf的配置信息,具体如下所示:

1[root@oldboy boot]# cat /etc/grub.conf 
2【 #<==以CentOS6为例】
3#<==也可读取/boot/grub/menu.lst(软链接)或/boot/grub/grub.conf(真实文件)。


...省略多行注释信息,其实这里的注释已经解释的蛮清楚了,只是90%的初学者看不见这里...

 1default=0
2#<==默认情况下如何加载系统,0表示加载菜单中对应的第一个名字,多系统时可以调节默认加载项。
3timeout=5
4#<==表示多少秒之后开始加载默认的系统,给管理员提前选择的时间。
5splashimage=(hd0,0)/grub/splash.xpm.gz 
6#<==启动时显示的背景图标,在(hd0,0)代表/boot分区。
7hiddenmenu  
8#<==系统启动时,会隐藏启动菜单信息,按默认设置启动系统,除非用户按键干预。
9password [–md5|–encrypted ] STRING  
10#<==当编辑grub菜单时需要输入密码认证,Linux基础优化之一,默认没有。
11title CentOS 6 (2.6.32-696.el6.x86_64
12#<==要启动的系统对应的项目名称,可按需修改。
13root (hd0,0)  
14#<==引导内核文件和内核所需驱动文件所在的分区,(hd0,0)代表/boot分区。
15#<==其中hd0表示计算机的第一块磁盘,(hd0,0)中逗号后面的0表示第一个分区,即(hd0,0)表示第一块磁盘的第一个分区,即/dev/sda1(分区通常最先独立分出的/boot分区,对应的设备名就是sda1)。
16kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=491eabe5-e6c0-4457-9bdb-b37cc6751308rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet 
17#<==整行表示加载内核,即读取boot分区上的内核文件及一堆可选内核参数。
18#<==/vmlinuz-2.6.32-696.el6.x86_64为内核文件。root=UUID=后面一串数字表示根对应的设备信息(/dev/sda3),其他介绍的作用不大,忽略即可。
19initrd /initramfs-2.6.32-696.el6.x86_64.img
20#<==内核启动所需的驱动文件的所在地,存在于boot区。
21


提示:这个grub.conf的知识其实在企业Linux运维中用途不是很大,讲解grub的目的是,希望读者能了解Linux系统的整个启动流程做铺垫,RHCE认证课程会有修复grub.conf的考题,其实没什么大用,因为在IT网站运维工作中,极少在线处理问题,出问题也是直接切换服务了,之后在慢慢研究修复还是重装都可以。

内容来源《跟老男孩学习Linux运维:核心基础实战》


(4)

分享至