一、出现问题的原因
今天自己给ubuntu16.04换一个高版本的linux内核,从4.4.4换到了4.15.0。换内核的过程中,我直接将低版本内核的编译配置文件直接复制到了高版本的内核代码中,直接进行编译,虽然在编译过程中有一些warning,但是编译还是顺利通过了。然后就内核安装,命令行设置为了默认启动内核高版本;然后将电脑重启,等了很久ssh都连不上,然后一看发现没有进入系统,高版本的内核没有正常启动。原因是根目录 / 所在的磁盘分区无法正常识别,说并不存在。(outlook518)结果见图1
图1
出现这种的结果可能的原因是:initrd是旧版本mkinitrd生成的,所以导致文件系统无法正常挂载[1]。先不管以后编译不同版本的内核源码,应该怎么配置,现在需要解决的问题就是如何正常的进入系统,而不是采用重装系统的办法来解决问题。
我查了很多帖子,都没有很直接的说明该怎么解决这个问题。有的帖子说直接在initramfs进行启动盘修复[2];还有的帖子说进入ubuntu的recovery模式[3][4]。等等还有其他的一些解决方案,比如说在启动时选择其他版本的内核,但是对于设置了默认linux内核系统启动的情况,并不适用。
二、对应的解决办法
出现这种情况时,也就是系统无法正常引导进入系统,那么需要手动引导进入系统,也就是用grub来引导进入系统。