媒体检查
现代版本(20.04 及更高版本)会自动进行扫描。我通常会在每天首次启动时进行扫描(如果在同一台设备上的同一天重新启动,则可能会跳过扫描)。
如果您不想事先进行检查,您可以在安装后切换到终端,并始终执行以下操作:
dmesg |grep squashfs
寻找错误。标准安装应只在扫描dmesg
时找到版权信息;如果出现任何其他带有squashfs的行,我会将其视为安装可能不可信。
如果使用较旧的版本(20.04之前的版本),我总是会进行手动CD完整性检查,主要是因为我发现将数据写入USB媒体最麻烦(每年我遇到10多次失败,即使这只占写入数量的一小部分;但仍然是显著的)。
Ubuntu 23.04桌面版
实际验证的方式因版本而异,在Ubuntu 23.04桌面版系统中,我会使用以下命令:
sudo journalctl | grep casper-md5check
我要寻找的内容是
May 11 08:37:42 ubuntu casper-md5check[3924]: Checking ./casper/install-sources.yaml..../casper/install-sources.yaml: OK
May 11 08:37:42 ubuntu casper-md5check[3924]: Checking ./casper/vmlinuz..../casper/vmlinuz: OK
May 11 08:37:47 ubuntu casper-md5check[3924]: Checking ./casper/initrd......./casper/initrd: OK
May 11 08:37:47 ubuntu casper-md5check[3924]: Checking ./boot/memtest86+x64.bin..../boot/memtest86+x64.bin: OK
May 11 08:37:47 ubuntu casper-md5check[3924]: Checking ./boot/grub/grub.cfg..../boot/grub/grub.cfg: OK
May 11 08:37:47 ubuntu casper-md5check[3924]: Checking ./boot/grub/loopback.cfg...../boot/grub/loopback.cfg: OK
May 11 08:37:47 ubuntu casper-md5check[3924]: Check finished: no errors found.
May 11 08:37:47 ubuntu systemd[1]: Finished casper-md5check.service - casper-md5check Verify Live ISO checksums.
我关注的关键信息是(即,我可能需要多次运行此命令,因为该过程将继续作为后台任务运行):
检查完成:未发现错误。
ISO镜像验证
对于ISO镜像预写入验证,或者如何验证您的Ubuntu下载,我使用zsync进行下载,并在下载结束时检查ISO镜像的完整性;我倾向于相信这一点,并在启动时进行自检。
如果我通过种子下载,我倾向于在另一台设备上使用wget下载的校验和文件进行快速sha256sum检查。无论如何,我通常会对以前下载的ISO镜像文件执行此检查。
为什么要这样做?
这些检查只需几秒钟到一分钟的时间。如果有一个位出错,调试安装或损坏的数据可能需要几个小时,如果你幸运的话,更有可能是几天、几周或几个月。
每天通常至少有一个错误报告被提交(在launchpad上;我通过#ubuntu-bugs-announce进行监控),这些报告是由那些遇到问题并认为这是一个本可以通过这些检查来预防的错误的用户提交的。这些错误报告只是被标记为“无效”,并附上他们的dmesg输出中的几行内容。因此,我经常看到用户浪费数小时尝试重复永远不会成功的过程(通常是数天),因为他们跳过了这些检查,从而使用了已损坏的媒体开始,其中应该预期存在问题。
我认为这是一种非常廉价的保险。