现在对grub又有了重新的认识和了解,为了防止之后忘记,将可以使用三种表示方法的root系统路径引导记录下来,防止之后忘记。希望大家能多多交流和学习。说的不对,希望大家能指出。谢谢!!
首先解释下这里面分别代表的意思哦。
default=0 开机时的默认选择项目,这个必须与后面的title对照,0表示对应一个title,1表示对应第二个title,以此类推。
timeout=5 如果设置了hiddenmenu,则等待5秒,如没有按下任意键则执行默认的title项目。
splashp_w_picpath=xxx在选项中显示的背景图片。
hiddenmenu 不显示选项。
title xxx 在选项中显示的名称。
root (hd0,0) 设置内核所在的磁盘位置。(hd0,0)表示在第一块磁盘的第一个分区。
kernel /xxx 代表内核文件名字 ro 文件属性为只读 root=xxx 表示系统所在的磁盘分区即根分区。rhgb指的是颜色,quiet表示的是静态化启动(有些信息就补屏蔽掉了)。
initrd /xxx(虚拟化磁盘)镜像文件名
initrd 称为初始化虚拟磁盘,用于帮助加载内核模块,让Linux内核在开机过程中不需挂载根目录就能载入所需要的模块。如果你的filesystem为LVM, Raid时,或者硬盘为SCSI接口(包括SATA和USB接口)时,Linux内核将无法认识这些设备从而导致不能正常启动。而initrd可以通过 int13 芯片读取内核模块(驱动程序),当硬盘被驱动后内核就可以挂载根目录了。其他模块的读取也就没问题了。
现在重点要到啦!!
root=xxx分别有三种表示方法。
1.第一种就是图中那种很通常的方法啦。
2.第二种就是使用卷标来表示根分区的路径。具体操作方式如下:
首先使用e2label或者tune2fs -L命令给根分区添加一个卷标,具体如果你不能确定之前有没有卷标可以使用e2lable 设备名 或者tune2fs 设备名 -l 或者dumpe2fs 设备名 -h来查看。
注意:在这里给设备设置卷标的时候一定是根分区设备,否则无法启动。设置名字的时候也需要设置为/xx。
在grub中书写的方法如下:
root=LABEL=/aa即可。
3.第三种其实也是类似,我们在使用tune2fs命令查看到设备的详细信息时,其中有个UUID选项,这个选项就如ID号一样,时格式化设备的时候生成的,当然也是唯一的。所以第三种的写法就是:
root=UUID=xxx即可。
好了。在我理解的就这么多。三种方法各有各的好处,第二种和第三种最大的好处就是当磁盘的接口更换时,不需要重新指定。防止启动不了系统的错误。