问题描述
将Ubuntu从16.04升级到20.04
方法:先将系统升级到18,再升级到20,两个过程基本完全相同,只需执行命令,默认选择y就能完成。升级完成后,我删除了旧的内核,解决了删除内核后无法正常进入系统的问题。
系统升级
首先保证你的系统换为国内的源,避免下载失败。换源在software&updates-Ubuntu Software中选择,我选择aliyun镜像源。在命令窗口依次执行下列命令,从16升级到18版本,升级过程中遇到选项默认都选择y。
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt install update-manager-core
sudo do-release-upgrade
安装即将结束时,进度停留在installing gnome不动,我放弃安装,重启后顺利进入18.04版本,说明升级成功。参照链接1,从18.04进一步升级到20.04,依次执行下列命令。
sudo apt install update-manager-core
sudo do-release-upgrade -d
从18.04升级到20.04的过程比较顺利,我离开了一会,中途没有管,回来时桌面已经变成了20.04,进度到了安装成功问是否重启的界面。选择重启则能正常使用。
删除无用的内核
考虑到旧版本的系统内核无用了,因此想删除,执行下列命令删除内核。但用这种方法删除内核重启会遇到黑屏的问题,且看下面的描述。删除内核参考链接2
查看当前正在使用的内核
uname -a
查看所有内核
dpkg --get-selections | grep linux
它会列出一系列已安装的模块,如
linux-headers-4.15.0-XX
linux-image-4.15.0-XX
linux-image-modules-4.15.0-XX-generic
…
linux-headers-5.4.0-XX
linux-image-5.4.0-XX
linux-image-modules-5.4.0-XX-generic
…
其中,低版本的内核如4.15.0系列的是低版本系统16.04和18.04所用的内核,而最新的5.4.0系列的内核对应现在的系统20.04.需要把4.15系列的内核、模块、配置文件一并删除。
与删除有关的命令如下,可依次执行
sudo apt-get reomove 模块名
sudo apt-get remove linux-headers-4.15.0-* #较多模块同名时可同时删除
dpkg --get-selections | grep linux #卸载后再次检查
sudo apt-get purge 模块名 #若发现还有文件没删干净可这样处理
更新系统引导
sudo update-grub
重启后只能通过recovery mode进入的解决办法
重启后在grub界面选择Ubuntu则黑屏无法进入图形界面,如果选择Advanced option中的(recovery mode)内核则能顺利进入。先通过这种方法进入,参考链接2的方法得以正常进入。
sudo gedit /boot/grub/grub.cfg
在文件中搜索splash 将附近的ro都改为rw,在splash之后加上nomodeset。保存、重启即可正常进入系统。