关于linux系统grub.cfg文件的问题(百度到的内容,记录一下)

突然想到一个问题:Linux系统在启动之后是怎么知道该去硬盘的哪个地址(哪个磁道,哪个扇区?)找文件系统的根目录文件的第一个block块的呢,在查找解答的过程中,觉得以下内容比较不错,特此记录。

以下是提问着的提问内容:

menuentry 'Ubuntu Kylin GNU/Linux' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-de4c11ec-7158-4a7b-9b34-39ea73a2450d' {

recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 0bc109c7-902a-4e82-a9df-d78692db7a41
else
search --no-floppy --fs-uuid --set=root 0bc109c7-902a-4e82-a9df-d78692db7a41
fi
linux /vmlinuz-3.13.0-27-generic root=UUID=de4c11ec-7158-4a7b-9b34-39ea73a2450d ro quiet splash $vt_handoff
initrd /initrd.img-3.13.0-27-generic
}
之中有这么一句:linux /vmlinuz-3.13.0-27-generic root=UUID=de4c11ec-7158-4a7b-9b34-39ea73a2450d ro quiet splash $vt_handoff
这里的root=UUID=de4c11ec-7158-4a7b-9b34-39ea73a2450d可以用root=/dev/sda8(这里的/dev/sda8是我用df命令查看的‘/’的位置)换么,还有就是就是是否可以像set root='hd0,msdos9'这句一样将它写成root='hd0,msdos8'么?

还有就是ro quiet splash $vt_handoff这句话的quiet splash是打开桌面环境吧?那这个$vt_handoff又是什么意思呢?


以下是回答内容:

你的/boot 应该是/dev/sda9 (hd0,msdos9)
/ 是/dev/sda8 (hd0,msdos8)
对吧?


root=UUID=de4c11ec-7158-4a7b-9b34-39ea73a2450d可以用root=/dev/sda8代替?
可以。


写成root='hd0,msdos8'?
不可以。这行是传递参数给内核,'hd0,msdos8'不是合法的参数型态。若你执行,应该会出现找不到文件或目录等字眼。


quiet
不显示执行的进度。所以拿掉会出现一大堆的指令执行状况,蛮精彩的!


splash
显示开机图样或动画,就是一开始出现ubuntu字眼,下面有几个点逐个亮起来那个画面。拿掉可以节省....大约不到1秒左右....
两个都与是否进入图形界面无关



$vt_handoff
这东西只有在splash存在时,才会有这个参数,vt_handoff="vt.handoff=7";假如在没有splash的状况下,还加入这个参数,那这个参数就是空字串。(请参考/etc/grub.d/10_linux)他的功能是避免splash去占用virtual terminal 7,就是之后图形界面会用到的tty7。不懂?那就算了,不会影响你之后的学习啦!


附:个人系统内grub文件的内容如下:


猜你喜欢

转载自blog.csdn.net/zougfang/article/details/80343989