背景
我编写 ISO 的正常过程是下载它们(zsync
通过执行 ISO 验证并向我显示包更改的脚本(即之前下载的清单差异mkusb
)),然后将其写入拇指驱动器,例如。
guiverc@d7050-next:/de2900/lubuntu_64$ sudo mkusb-nox mantic-desktop-amd64.iso all
然后我快速扫描消息,如果它看起来不错, 弹出拇指驱动器,并在附近的盒子上启动它并使用此处记录的方法确认媒体写入那里,即。
- 以try模式启动它,等待一段时间让后台媒体验证发生,使用扫描 systemd 日志
sudo journalctl |grep casper-md5check
看着
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.
我认为这种验证是必不可少的,因为我发现无论使用何种硬件(即不同的盒子和不同的拇指驱动器),5-8% 的 ISO 写入都会失败。
问题
我可以使用一个简单的工具验证 ISO 写入,使用我用来编写它的同一个盒子(即不需要重新启动或附近的盒子)。
我的偏好是终端;因为这是我执行这些任务的地方。
检查克隆是否成功的工具
从图像文件(通常是 iso 文件)克隆到 USB 驱动器被认为是一个可靠的过程,但有时会失败。这可能是由于将大 iso 文件克隆到具有慢速存储单元的 pendrive 时的缓冲问题引起的,这可能是由片状存储单元引起的。
不管怎样,我发现我们需要一种方便的方法来检查克隆是否成功,所以我创建了一个小的 shellscript。
diff-image-drive
通过比较 sha256sums 可以很容易地检查。使用原始版本的 shellscript 进行演示:
首先目标设备中有一些以前的内容,通过 USB 连接到 SATA 适配器的 SSD:
从 mantic iso 文件克隆到目标设备后:
在这种情况下,您不必担心来自 partprobe 的警告。从 iso 文件克隆的驱动器不关心克隆字段后面的内容。
使用 1.3 版 shellscript 的屏幕截图:
原始版本中也有颜色高亮,但是在跳过头/尾时检查是新的。这有助于检查何时使用了从 Ubuntu iso 文件克隆的驱动器(以便创建“可写”分区)。
克隆后直接检查。
驱动器启动后检查。
您可以通过这篇文章和我在 Ubuntu 论坛上的帖子中的以下帖子找到更多详细信息。