您当前的位置:首页 > 计算机 > 系统应用 > Linux

grub 加载不了配置文件不出菜单的情况处理

时间:07-18来源:作者:点击数:
  • 普通点的出现grub > 提示符,这种情况下,可以使用normal (hd0,msdos1)/grub/grub.cfg这样格式的命令来进入正常模式。但官方手册说这更多是为了进入嵌套环境用于测试,更好的方法是用configfile (hd0,msdos1)/grub/grub.cfg这样的命令来加载配置文件,如果配置文件有菜单,就会显示菜单。当然手工加载内核指定root 以及initrd 也不是不可以,但如果配置文件本身存在,还是直接加载菜单方便。
  • 严重的就只有rescue grub >的界面,这种情况下,很多grub的模块没加载,如果硬盘上这些文件不存在了,那就没办法,了,只能启动盘起来重新安装grub了。如果有,可以尝试insmod xxx.mod ,但也可能硬盘和分区以及文件系统都无法加载。那确实就没办法只能启动盘起来grub-install了。

GNU GRUB Manual 2.06: normalGNU GRUB Manual 2.06: normal

GNU GRUB Manual 2.06: configfile

更新

今日发现centos8以及国内龙蜥UOS欧拉等的grub2在启动的时候,grub.cfg里面都找不到配置选项了,老司机差点还改不了默认启动选项了,后来看了下,发现又多了个loader目录

[root@dns1 boot]# cat grub2/grubenv 
# GRUB Environment Block
#saved_entry=ac3026e6c0314e5c862d14540f2a27b2-4.19.0-91.82.88.uelc20.x86_64
saved_entry=8a167e961cac321f703f9da1622ca6a3-4.19.0-91.82.112.uelc20.x86_64
kernelopts=root=/dev/mapper/uniontechos-root ro crashkernel=auto resume=/dev/mapper/uniontechos-swap rd.lvm.lv=uniontechos/root rd.lvm.lv=uniontechos/swap module.sig_enforce=0 rhgb quiet  
boot_success=0
#####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
[root@dns1 boot]# find ./loader/
./loader/
./loader/entries
./loader/entries/ac3026e6c0314e5c862d14540f2a27b2-4.19.0-91.82.88.uelc20.x86_64.conf
./loader/entries/ac3026e6c0314e5c862d14540f2a27b2-0-rescue.conf
./loader/entries/8a167e961cac321f703f9da1622ca6a3-4.19.0-91.82.112.uelc20.x86_64.conf
./loader/entries/8a167e961cac321f703f9da1622ca6a3-0-rescue.conf

然后又发现有个grubenv文件,终于才知道点东西了。grub.cfg会加载grubenv来加载一些保存的启动项之类的变量。

然后这个grubenv里面保存的加载项保存的配置就在loader目录里面,然后grub.cfg里面加载了blscfg这个模块来查询这些配置文件获得启动参数。

[root@dns1 boot]# grep bls grub2/grub.cfg 
# The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and
insmod blscfg
blscfg

从grub1到grub2以及到启用blscfg模块,看起来grub是越来越智能了,但对运维人员来说是越来越复杂了。毕竟最开始就直接修改个明文配置文件就好了,现在搞的一堆判断。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门