Ubuntu16.04开机后显示grub菜单后黑屏,高级模式没有救援模式
故障现象:Ubuntu底层系统的服务器开机后显示grub菜单界面后,然后黑屏,键盘鼠标都无法使用。
省流:因为没有救援模式只能通过U启进入系统后修复分区解决,如果有救援模式可以在救援模式中修复分区解决。
初步操作:
- 服务器开机显示grub菜单界面后,选择第一项Ubuntu进去后黑屏;无法进行任何操作,只有IP可以ping通,端口不通。
2. 选择高级选项,只有Ubuntu,with Linux 4.4.0-62-generic一个选项,选中后还是黑屏
初步判断:
可能是磁盘出现问题,只能先尝试修复磁盘试下
修复方法:
第一种:grub菜单有救援模式或者紧急模式:
直接进入救援模式或者紧急模式后(需要root密码),执行fsck修复命令就行;
① 先确认分区类型(下面两个命令都可以查看到分区名和对应的分区类型)
lsblk -f
或者
blkid
② 根据分区类型不同,选择不同的fsck命令修复分区(-f:强制修复,-y:全部回答yes)
fsck.ext2 -f -y /dev/sda1
和
fsck.ext4 -f -y /dev/mapper/loclahost--vg-root
注意:xfs分区类型的通过下面命令进行修复
xfs_repair /dev/sda*
或者(-L:强制日志归零,将此作为最后的手段)
xfs_repair -L /dev/sda*
第二种:grub菜单没有救援模式或者紧急模式,无法进入救援模式或者紧急模式:
只能通过外接U盘启动解决,服务器设置U盘启动,进入ubuntu桌面版启动盘,通过终端界面输入修复命令即可(具体修复命令同第一种方法)
制作U盘启动,可参考文档:https://www.cnblogs.com/you-and-me/p/16902580.html
扩展问题:grub菜单为什么没有救援模式
排查解决方法:
① 服务器正常启动后,先查看/boot/grub/grub.cfg文件中对应的字段(可以发现没有修复模式)。
root@ubuntu:~# cat /boot/grub/grub.cfg
### BEGIN /etc/grub.d/10_linux ###
### END /etc/grub.d/10_linux ###
② 然后查看/etc/default/grub文件,发现修复模式菜单项被禁用了
root@ubuntu:~# cat /etc/default/grub
#是否禁用创建修复模式菜单项,默认该项被注释为创建,这里被打开了值为true,那么将其修改成false;true:不创建,false:创建
GRUB_DISABLE_RECOVERY="false"
③ 修改完成后,更新grub菜单启动项文件
root@ubuntu:~# update-grub2
④ 最后查看/boot/grub/grub.cfg文件,已经有救援模式了
root@ubuntu:~# cat /boot/grub/grub.cfg
### BEGIN /etc/grub.d/10_linux ###
### END /etc/grub.d/10_linux ###
可以发现上面文件已经生成修复模式的菜单项了,那么reboot重启设备后进入高级模式验证
选择救援模式后,可以正常进入, 至此彻底解决问题,不用借助U盘启动修复分区了。