文章目录
(一)grub
中分区的表示方法
在说grub
的配置文件之前,我们还需要了解一下,在grub
中分区的表示方法。
从下图中我们可以看到,Linux系统的分区中是/dev/
目录下自动识别设备分区名称,关于Linux系统的分区命名请看之前文章中的介绍。但是在grub
的分区中,是有自己一套独立的标识方式,无论是SATA接口的硬盘还是IDE接口的硬盘,都用hd
来表示硬盘(不再像Linux系统分区,识别成hd
和sd
了)。括号中第一位数表示第几块硬盘,第二位表示硬盘中的分区号。如下图:
(二)grub的配置文件
上一篇文章我们说过,grub
启动引导程序的配置文件有三个,源文件是/boot/grub/grub.conf
,/boot/grub/menu.lst
和/etc/grub. conf
文件是/boot/grub/grub.conf
文件的两个软链接文件,说白了三个文件就是一个文件。
查看grub
的配置文件,内容如下:
执行命令:[root@localhost ~ ] # vim /boot/grub/grub.conf
在实际工作中的服务器上,不可能安装多系统,原因:
- 第一、选择需要进入的系统需要在本机上选择,而我们的服务器往往远处。
- 第二、多个系统占用过多的系统资源。
- 第三、虚拟机比真实机使用起来方便很多,比如系统崩溃了,恢复快照就可以等,根本没有必要安装多系统。
(三)grub的配置文件内容说明
1、grub的整体设置
(1) default属性
default=0
:默认启动第一个系统。也就是如果在等待时间结束后,用户没有选择进入哪一个系统,那么系统会默认进入第一个系统。如果有多系统并存,那么每个系统都会有自己的title字段,如果想要默认进入第二个系统,这里就可以设为 default=1
,以此类推。
(2) timeout属性
timeout=5
:等待时间,默认是5秒。也就是进入系统时,如果5秒内用户没有按下任意键,那么系统会进入default字段定义的系统。当然可以手工修改这个等待时间,如果t imeout=0则不会等待直接进入系统,timeout=-1 则是–直等待用户输入,而不会自动进入系统。
说明:在进入Linux系统的时候,会出现如下画面:
此画面读秒的时候,按下任意键,就可以进入到
grub
启动引导程序,选择需要启动的系统。如下图:
这个
timeout=5
就是图1中的读秒数。这里还有要注意一点,在图2界面的时候,Linux系统是没有启动好的,网卡此时并没有加载好, 所以远程终端是无法连接的,这就是上面说的只有到本机上才能操作。
(3) splashimage属性
splashimage=(hd 0,0)/grub/splash.xpm.gz
:这里是指定grub
启动时的背景图像文件的保存位置的。记得CentOS6.X启动时后台的蓝色图像吧,就是这个文件的作用。hd(0,0)代表第-一个硬盘的第一个分区,而我们在系统安装时,/boot分区就是第一个分区,所以这个背景图像的实际位置就是/boot/grub/splash.xpm.gz
(说明hd(0,0)=/boot)。
(4) hiddenmenu属性
hiddenmenu
:隐藏菜单。启动时默认只能看到读秒,而不能看到菜单,如果想要看到菜单需要按任意键。
如果注释了这句话,那么启动时就能直接看到菜单了。
以上就是grub的整体设置,个人觉得除了default
属性,其他的都没有什么好修改的。
2、接下来介绍CentOS系统的启动设置
(1) title属性
title CentOS(2.6.32-279.el6.i686)
:title就是标题的意思,也就是说在title后面写入的是什么,那么系统启动时在grub的启动菜单中看到的就是什么,如图2中的选项名称。
如果有多个系统,每个系统都会有一个title属性。
(2) root属性
root (hd0,0)
:是指启动程序的保存分区(也可以说是主启动目录的位置)。这里要注意啊,这个root并不是管理员用户,也不是根目录同级的root目录,而是主启动目录的位置。在我的系统中,/boot分区是独立划分的,而且设备文件名为/dev/sda1
,所以在grub中,就被描述为hd(0,0),也就是说root是/boot分区下的根目录。
(3) kernel属性
kernel属性就是描述内核加载的选项,下面简单说明一下:
/vmlinuz-2.6.32-279. el6. i686
:指定了内核文件的位置,这里的/是指/boot分区。ro
:启动时以只读方式挂载根文件系统,这是为了不让启动过程影响磁盘内的文件系统。(这些选项都是在系统启动过程中的选择)root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9
:指定根文件系统的所在位置。这里和以前的Linux版本不太一样了,不再是通过分区的设备文件名或卷标号来指定,而是通过分区的UUID来进行指定。那么如何查询分区的UUID号呢?方法有很多种,最简单的办法就是查询/etc/fstab
文件,命令如下:
rd_NO_LUKS
:禁用LUKS,LUKS用于给磁盘加密。rd_NO_MD
:禁用软RAID。rd_NO_DM
:禁用硬RAID。rd_NO_LVM
:禁用LVM。以上禁用都只是在启动过程中禁用,是为了加速系统启动的。(启动完了自动开启,所以这些属性我们不必太关注)KEYBOARDTYPE=pc KEYTABLE=us
:键盘类型。crashkernel=auto
:自动为crashkernel预留内存。LANG=zh_CN.UTF-8
:语言环境。rhgb
:(redhat graphics boot)用图片来代替启动过程中的文字信息。启动完成之后可以使用dmesg命令来查看这些文字信息。(如启动时候的百分比等)quiet
:隐藏启动信息,只显示重要信息。(系统启动的时候按ESC键,可以查看隐藏的信息)
以上这么多信息,我们平时真的用不到,大概知道什么意思就可以了。
(4) initrd属性
initrd /initramfs-2.6.32-279.el6.i686.img
:加载虚拟文件系统,指定了initramfs 内存文件系统镜像文件的所在位置。
(5) 总结
以上四条属性,title、root、kernel、initrd都是自动生成的,我再新安装一个操作系统,这四个属性也是自动生成,能看懂就好,这四个属性不用我们修改。