好久没有使用 Surface Pro 3 了,打开后照例是把系统都更新一遍。Windows 10 和 Windows 11 都没有问题,但是 Ubuntu 22.04 升级 Ubuntu 24.04 的时候出了状况。
Ubuntu 的 do-release-upgrade
有几个前提,其中之一就是不能存在可以更新但没有更新的 apt 软件包。不过在执行 apt 软件包更新的过程中,之前一直遗留到现在甚至根本就没有想去解决的一个问题是 bcmwl-kernel-source
(版本 6.30.223.271)跟当前的 5.19.0-21 的内核不能兼容。后面的升级失败,也许就跟这个隐患有关。
一开始执行 do-release-upgrade
,出问题的是在下载阶段的最后。错误信息显示,跟 libboost
相关的三个包下载失败(系统配置的软件源是阿里云):iostream
、locale
、thread
,版本都是 1.83
。折腾了半晌,后来是以一种奇特的方式通过的,那就是手工去 Ubuntu 的官网上下载了这三个包,然后放到了本地的 /var/cache/apt/archives
目录下。而再次执行 do-release-upgrade
时,它会宣称把 iostream
和 locale
两者移除了。
接下来就踩到了 bcmwl-kernel-source
的坑里,升级过程中止,并明确提示系统处于一种不稳定的状态。出于快刀斩乱麻的原则,当下就先 apt remove bcmwl-kernel-source
了它。再次 do-release-upgrade
,提示信息说要先执行完成 apt 的所有更新,当 apt upgrade
时,一大堆的包更新过程开始,看上去就是中止了的系统更新过程的后半段被补齐了。此后再次 do-release-upgrade
则提示“无可更新”。看上去似乎成功了。
重启 Surface Pro 3,结果固件显示“Invalid Signature Detected”,把 “Secure Boot Control” 设置为 Disabled 除了让开机屏幕底色变红,会连续重启自动进入到 BIOS 设置,并且连 Windows 也无法引导之外,别无进展。
把 “Secure Boot Control” 恢复为 Enabled,进入 Windows 用 DiskGenius 查看 ESP 分区,显示了个“损坏”的字样在上面,可是将之关闭后再次打开,则该字样会消失。但这个变化也无益于引导。用 BOOTICE 查看 UEFI 固件中的可引导项,没看到明显异常,把里面的几个过时已经失效的条目删除后保存并重启,也没有任何效果。
至此僵住。Surface Pro 3 的固件过于简陋,很难观察到更详细的信息,如果想要进一步挽救的话,恐怕要把硬盘拆出来挪到其它机器上去测试了。