第一部分 —— 更新
Ubuntu 22.04 LTS 发布有日子了,刚才正好有事切到 Ubuntu 下,现在的版本是 20.04 LTS,顺手执行了一下 do-release-upgrade
,没有效果,又加上 -d
参数再试就有了动静,不过报了一个问题后中止了:
Sorry, this storage driver is not supported in kernels for newer releases
There will not be any further Ubuntu releases that provide kernel support for the aufs storage driver.
Please ensure that none of your containers are using the aufs storage driver, remove the directory /var/lib/docker/aufs and try again.
按照 https://askubuntu.com/questions/1361206/docker-upgrade-failure-the-aufs-storage-driver-is-no-longer-supported 中的步骤操作,看了下 docker 里的映像,都是之前比较陈旧的测试性的东西了,即便毁了也没什么。
很可惜的是,只要在 daemon.json
里加上 "storage-driver": "overlay2"
这一条语句,docker 就无法再次正常启动,去掉就可以。所以老夫执行了如下几连杀:systemctl stop docker
、docker rm $(sudo docker ps -a -q)
、docker rmi -f $(sudo docker images -q)
、apt remove docker-ce docker-ce-cli
、rm -rf /var/lib/docker
。
再次 do-release-upgrade -d
,顺畅了。
第二部分 —— 抢救
升级程序在控制台里输出升级已完成,重启之后,机器冻结在开机画面好久。等了半天等不及了,就强行关机重启,结果悲剧了,出现以下画面。网上有与此相关的不少信息,但原因一样或者类似的几乎没有。
最后在一篇问答中有人提及一个方法,在开机时使用 Grub 高级菜单中内核版本号最低且为恢复模式的那一项引导,进入后执行 clean
这个操作。我一时兴起,还顺手执行了 dpkg 的包修复操作。结果完成后,竟然就进入到登录图形界面了。
第三部分 —— Firefox
Ubuntu 22.04 中,不知道那个脑抽的人做出的决定,Firefox 不再以传统的 deb 包发行,而是改为 snap 格式。结果它自行迁移的能力基本上就是弱智到极点。以下为实录(而且去除了不少事后认识到与问题无干的中间试错环节)。
// 点击 Firefox 图标,等待状态的鼠标指针会显示一会儿,然后就没有然后了。为了排查问题,从终端里手动执行启动操作,以便观察:会报两个错误
1 2 3 |
➜ ~ firefox ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (failed to map segment from shared object): ignored. ERROR: not connected to the gnome-3-38-2004 content interface. |
// 在网络上找到如下解决方案
1 |
➜ ~ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 |
// 挺好,顺利解决一个问题,还有一个
1 2 |
➜ ~ firefox ERROR: not connected to the gnome-3-38-2004 content interface. |
// 又找到了第二个问题的解决方案
1 2 3 4 |
➜ ~ sudo snap install gnome-3-38-2004 snap "gnome-3-38-2004" is already installed, see 'snap help refresh' ➜ ~ snap connect firefox:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 |
// 错误发生变化。也是两个,一个权限相关,一个显示设备相关
1 2 3 4 5 6 |
➜ ~ firefox sed: can't read /home/$(USERNAME)/.config/user-dirs.dirs: Permission denied /snap/firefox/1551/snap/command-chain/desktop-launch: line 261: /home/$(USERNAME)/.config/user-dirs.dirs: Permission denied cp: cannot open '/home/$(USERNAME)/.config/user-dirs.locale' for reading: Permission denied /snap/firefox/1551/snap/command-chain/desktop-launch: line 266: /home/$(USERNAME)/.config/user-dirs.locale: Permission denied Error: cannot open display: :1 |
// 到 Ubuntu Software 中,为 Firefox 设置了相应权限后
1 2 |
➜ ~ firefox cannot attach cgroup program: Operation not permitted |
// 找到了 https://askubuntu.com/questions/1369947/after-ubuntu-21-10-upgrade-cannot-attach-cgroup-program-operation-not-permitt,查看后执行
1 2 |
➜ ~ sudo update-grub ➜ ~ sudo reboot |
// 重启再运行 Firefox,cgroup 问题消失(确实是因为上一次的启动是从一次恢复模式进入的,内核版本是旧的)。
// 但是权限问题再次出现,且不能打开的显示设备从 :1
变成了 :0
。
// 网上搜罗信息良久,感觉似乎是 Snap 对 Firefox 的配置有问题。学着这样查看:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
➜ ~ snap connections firefox Interface Plug Slot Notes audio-playback firefox:audio-playback :audio-playback manual audio-record firefox:audio-record :audio-record manual avahi-observe firefox:avahi-observe - - browser-support firefox:browser-sandbox :browser-support manual camera firefox:camera :camera manual content[gnome-3-38-2004] firefox:gnome-3-38-2004 gnome-3-38-2004:gnome-3-38-2004 manual content firefox:gtk-3-themes - - content firefox:icon-themes - - content firefox:sound-themes - - cups-control firefox:cups-control :cups-control manual dbus - firefox:dbus-daemon - desktop firefox:desktop - - desktop-legacy firefox:desktop-legacy - - gsettings firefox:gsettings :gsettings manual hardware-observe firefox:hardware-observe - - home firefox:home :home manual joystick firefox:joystick - - mpris - firefox:mpris - network firefox:network - - network-bind firefox:network-bind - - network-observe firefox:network-observe - - opengl firefox:opengl - - personal-files firefox:dot-mozilla-firefox :personal-files manual removable-media firefox:removable-media :removable-media manual screen-inhibit-control firefox:screen-inhibit-control - - system-files firefox:etc-firefox-policies - - system-packages-doc firefox:system-packages-doc - - u2f-devices firefox:u2f-devices - - unity7 firefox:unity7 - - upower-observe firefox:upower-observe - - wayland firefox:wayland - - x11 firefox:x11 - - |
// 可以看出,不管是 wayland 还是 x11,Firefox 都没有关联,于是尝试执行了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
➜ ~ snap connect firefox:x11 :x11 ➜ ~ firefox sed: can't read /home/dandy/.config/user-dirs.dirs: Permission denied /snap/firefox/1551/snap/command-chain/desktop-launch: line 261: /home/dandy/.config/user-dirs.dirs: Permission denied cp: cannot open '/home/dandy/.config/user-dirs.locale' for reading: Permission denied /snap/firefox/1551/snap/command-chain/desktop-launch: line 266: /home/dandy/.config/user-dirs.locale: Permission denied Gtk-Message: 20:21:18.121: Failed to load module "xapp-gtk3-module" (firefox:1854179): Gtk-WARNING **: 20:21:18.129: Failed to parse /etc/gtk-3.0/settings.ini: Permission denied Gtk-Message: 20:21:18.155: Failed to load module "canberra-gtk-module" Gtk-Message: 20:21:18.158: Failed to load module "canberra-gtk-module" [GFX1-]: No GPUs detected via PCI [GFX1-]: glxtest: process failed (received signal 11) Missing chrome or resource URL: resource://gre/modules/UpdateListener.jsm Missing chrome or resource URL: resource://gre/modules/UpdateListener.sys.mjs Missing chrome or resource URL: resource://gre/modules/UpdateListener.jsm Missing chrome or resource URL: resource://gre/modules/UpdateListener.sys.mjs |
// 界面出现了,显然有了进展,但是不能加载页面;再试网络:
1 |
➜ ~ snap connect firefox:network :network |
// 然后就也可以加载网址了。看起来这里的这些条目跟软件中心里对软件的权限设置似乎有对应关系,但是在命令行下的处理又不会影响 GUI 中的开关状态,显然 Snap 是个不太成熟的东西。
于是决定放弃 Snap 版本的 Firefox,改回 .deb 版本。deb 版本安装步骤参见:https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-deb-apt-ubuntu-22-04
照此操作行云流水,毫无滞碍,终了。