1、现象描述
- 升级内核后无法进入系统,一直卡在蓝底带有deepin字样的那里(正常启动时,deepin字样是颜色渐变变动的,此时,该字样完全不动)
- 硬盘只是灯基本不闪烁(闪烁的时候才说明系统正在从硬盘读取数据)
- 系统提示内核需要升级,并成功升级后出现的无法启动的现象
2、问题处理
根据前面提到的现象,怀疑是升级系统内核导致的系统无法启动,具体原因未知。当时只能抱着死马当活马医的心态,通过手动对内核降级处理问题。好的一点就是,在升级内核之后,上个版本的内核也还是存在的,所以该方法是有效的。
开始搞事:
1、先设法进入系统
在系统启动引导界面,如下图:
可以选择下面的高级选项,此选项里面可以自主制定系统内核进行启动。但是这个选项我只成功进入过一次,貌似是点击一次enter键,系统反映为两次,就默认选择了最新版内核进行启动,系统启动失败!如果你可以选择,那么恭喜你,在你选择旧版本内核后,大概率就可以进入系统啦,但是进入系统的时间会比之前长很多,需要耐心等待,再次期间,需要观察硬盘指示灯是否在闪烁,如果不闪烁,需要重新来过!!!
除此之外,还需要注意的是,最下面的一行字,点击E键编辑启动命令,点击后进入如下图所示:
点击F10进行引导,此处也是可以选择内核版本的,注意选择旧版本,选择后也可以进入系统
2、查看当前内核版本
uname -a
# 或者
uname -r
3、查看已安装的所有内核版本
sudo dpkg --get-selections| grep linux
binutils-x86-64-linux-gnu install
libselinux1:amd64 install
libselinux1:i386 install
libselinux1-dev:amd64 install
linux-base install
linux-firmware install
linux-headers-5.10.36-amd64-desktop install
linux-image-5.10.36-amd64-desktop install
linux-libc-dev:amd64 install
pptp-linux install
syslinux install
syslinux-common install
util-linux install
# 这里是我已经删完新版本的样子,在之前,这里是可以看到两个版本的内核
4、删除新内核版本
sudo apt remove --purge linux-headers-5.101.36-amd64-desktop
sudo apt remove --purge linux-image-5.10.36-amd64-desktop
# 注意,需要将内核映射文件(linux-image-版本号)和内核头文件(image-heasers-版本号)这两个文件都会删除掉
5、查看启动顺序
# 这一步主要是防止删除掉新版本内核后,系统没有自动启用旧版本内核进行启动
# 1、更新grub
sudo update-grub
# 2、查看启动顺序
grep menuentry /boot/grub/grub.cfg
# 观察这个命令的输出,如果里面已经只存在一个版本的内核,那么之前的内核删除已经生效
menuentry 'Deepin 20.4 GNU/Linux' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-30e3145e-ae06-4dc3-8f6f-52e139b5a2c9' {
submenu 'Deepin 20.4 GNU/Linux 的高级选项' $menuentry_id_option 'gnulinux-advanced-30e3145e-ae06-4dc3-8f6f-52e139b5a2c9' {
menuentry 'Deepin 20.4 GNU/Linux,Linux 5.10.36-amd64-desktop' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.36-amd64-desktop-advanced-30e3145e-ae06-4dc3-8f6f-52e139b5a2c9' {
# 3、修改启动顺序(如果删除了一个版本的内核后,系统内部还存在多个内核版本,则可以指定内核版本进行启动)
sudo vi /etc/default/grub
# Written by com.deepin.daemon.Grub2
DEEPIN_GFXMODE_ADJUSTED=1 # 需要修改这个值,修改的目标值就是在第2步查看启动顺序的序号,就按照版本号第一次出现的顺序,修改为1,2,3...
# 注意,这个顺序并不完全是先后顺序,貌似只是各个版本的一个序号,这个需要自己尝试进行修改,我的经验是保留最旧的一般内核版本即可,先保证系统能正常启动后,再说进行内核升级啥的,毕竟设计到系统内核,稍微麻烦点也是OK的
DEEPIN_GFXMODE_NOT_SUPPORTED=2560x1440
GRUB_BACKGROUND="/boot/grub/themes/deepin/background.jpg"
GRUB_CMDLINE_LINUX=""
GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"
GRUB_DEFAULT=0
GRUB_DISTRIBUTOR="`/usr/bin/lsb_release -d -s 2>/dev/null || echo UOS 20`"
GRUB_GFXMODE=1280x1024
GRUB_THEME="/boot/grub/themes/deepin/theme.txt"
GRUB_TIMEOUT=5
# 4、保存并更新grub
sudo update-grub
# 5、重启系统,不出意外的话,系统就可以正常启动了