Ubuntu 18.04到20.04系统升级
预备工作
升级中断报错
在执行升级指令sudo do-release-upgrade -d
时出现中断
unofficial software packages not provided by ubuntu
方案一:换升级源,中止PPA源
网上的一种建议是选官方源升级,并且停止所有PPA源
我这样设置之后并没有解决问题,不过我还是把换源的方法留在这里
命令行操作着实繁琐,所以我选择图形界面……
打开“软件与更新”(Software&Updates)
在ubuntu software里面选择源,我选的是阿里云的源,官方源我也试过但是失败,所以就默认用阿里云了
把Other software里勾选的源都取消掉了
方案二:查报错log
实际上第二种方案算是碰运气碰对了,网上说的方法就是照着官方提示的信息,先查log,然后删掉坏了的软件重装
查log代码
grep Broken /var/log/dist-upgrade/apt.log
得到了二百多行报错代码,各种奇怪的依赖损坏之类的……
我想着总不能挨行删吧,继续查大家都在哪儿出问题,然后看到有个人也是同样的报错,见An unresolvable problem occurred while calculating the upgrade
评论区删了几个包,我正好看到我的报错日志里面也有mutter
mutter跟ubuntu18新加的GNOME有关,我想到我的GNOME桌面不能用的问题都没解决,可能是跟这个包有关就尝试了
sudo apt remove mutter
sudo apt install mutter
其实gsettings-desktop-schemas
好像也有报错但是我没管,就打算再试试升级
重装之后,这个升级中断的报错得到解决
解决根目录容量不足的问题
结果升级之中上面的报错没有了,又跟我说根目录剩余空间不足
df -h
查看根目录,根目录所在位置确实剩余不多
多余软件包清理
有一些常规清理指令
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
还有日志目录,多余内核等等
参考7 Simple Ways to Free Up Space on Ubuntu
扩容
因为安装20.04的官方就建议硬盘至少有25G空间,我想了想干脆还是别删了,扩容才是大势所趋,于是就去查找了根目录扩容的方法
注意 1GB=1024MB
扩容主要用到两个东西,一个是gparted
软件,一个是18.04的启动盘
1.安装gparted
sudo apt-get install gparted
注意,解决gparted不启动的问题参考
据说该问题跟wayland有关,总之
xhost +local:
gparted-pkexec
2.制作18.04启动盘
从官网下载iso文件,用Universal-USB-Installer制作一个启动盘,注意格式为FAT32
本次使用的是Universal-USB-Installer-1.9.9.5
3.重启机器,从启动盘启动,选择试用ubuntu
4.进系统之后sudo gparted
,就可以开始分区了
首先右上角选择硬盘位置
本机的情况是,/dev/sda
是个固态硬盘,用来安装windows7的C盘,/dev/sdb
是个机械硬盘,前面分区了100G是win7的D盘/dev/sdb1
,用来装软件,然后700多G另分一个盘/dev/sdb2
放各种资源,最后100G/dev/sdb3
用来装的ubuntu。
选了/dev/sdb
后看到详细分布,现在/dev/sdb3
下有个linux-swap
分区还有小钥匙标志,所以先右键这个分区选择swapoff
停止它,这样就可以开始扩容了。
右键分区/dev/sdb2
,选Resize/Move
因为需要扩容的部分在该分区下面,所以在Free space following
这里填压缩出来的大小,我扩30G于是填写30720MB,点一下剩下的容量(New size部分)就会自动算出,然后点Resize
按钮。此时分区/dev/sdb2
下面就出现了一个unallocated部分。
同样操作/dev/sdb3
,把未分区的全部容纳进去。这时未分区的部分就跑到了/dev/sdb5
上端。如下图
因为未分区部分职能按顺序挨个分区移动,所以所经过的分区修改的时候New size
部分大小不变,而只是考虑修改Free space preceding
和Free space following
即可。例如下面这个图,是把未分区部分从linux-swap
分区上面挪到下面。
我的根目录挂接在/dev/sdb7
,所以最后只要把/dev/sdb7
扩容即可。
然后可以重新启用linux-swap
部分。(我不确定这步骤是否有必要,反正我操作了)
然而这些操作其实是预设,真正的应用需要在上面菜单里面选择Edit » Apply all Operations » Apply
应用之后才真的进行操作,如下图
未解决
解决前述问题的时候查到一个软件叫synaptic
用来可视化管理文件,不过因为无法使用管理员身份运行这个软件而作罢
可参考问题Launcher starts synaptic without administrative privileg
升级之后
新的循环登录问题
在显卡驱动完全没问题的情况下,升级到20.04的系统依旧出现了登录循环问题,在登录界面依旧是输入密码,屏幕一闪,再次要求输入密码
怎么跟18.04一样!!!
一开始试图用之前写的那篇博客的方法解决,但是发现显卡驱动好着呢!
哦,有一点不太一样,上一篇博客进入文字终端的方法失效了,直接在那个进不去的图形登录界面按Ctrl+Alt+F1就能进入tty1。
于是开始查找新的解决方法。
Well, they made an improvement: an old solution does not work anymore.
(艹皿艹 )
网上的常规解决方法(对本机无效)
这个问题,网上针对20.04的解决方法大同小异,修显卡,查看/tmp文件夹权限啊,查看.Xauthority
权限啊,重装lightdm或者gdm3,重装桌面系统,注释显示管理器自动登录啊等等
有篇文章总结很好,请戳Ubuntu 20.04 Login loop fix
但是恭喜我!以上方法均无效……
修复Ubuntu 20.04登录循环问题
说是修复,其实还是用了迂回的方式,即放弃优雅的gdm3和lightdm,另谋其他生路。
反正这个登录循环无非是因为显示管理器,X窗口,GNOME一类的玩意儿跟显卡不对付。但是startx
能进去感觉也不算GNOME类桌面系统的问题,于是怎么分析都觉得是该死的显示管理器的问题。
我是先将lightdm卸了装
sudo apt-get purge lightdm
sudo apt-get install lightdm
sudo dpkg-reconfigure lightdm
reboot
没用!!!当然对gdm3也没用。
于是我想起来刚升级18.04后去查显示管理器的时候看到的一篇博客
决定尝试sddm
sudo apt-get install sddm
sudo dpkg-reconfigure sddm
reboot
重启系统后……虽然登录界面难看了很多
但是,能正常登录了!!!
另外,查看当前显示管理器的指令为
cat /etc/X11/default-display-manager
补充
另外有篇升级博客挺好的写给工程师的 Ubuntu 20.04 最佳配置指南
我就是参考这篇博客才确定问题是显示管理器的
博客提交
题外话,上一篇博客git push
遇到了问题,可能是因为多传了几张照片。
git-bash报错
error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
网上提供的两种解决方式,参考
一种是忽略SSL证书
git config --globle http.sslVerify "false"
另一种是加缓冲区
git config http.postBuffer 524288000
还有就是升级一下git,当时因为家里网不好,命令行没反应,windows系统就直接去官网下载重装
总之报错就解决了orz
另有一说是网不好的原因。总之就别在大晚上网络堵塞的时候搞……