背景
我编写 ISO 的正常过程是下载它们(zsync通过执行 ISO 验证的脚本并显示包更改(即与之前下载的清单差异)),然后用于mkusb将其写入拇指驱动器,例如。
guiverc@d7050-next:/de2900/lubuntu_64$ sudo mkusb-nox mantic-desktop-amd64.iso all
Run Code Online (Sandbox Code Playgroud)
然后,我快速扫描消息,如果看起来不错, 则弹出拇指驱动器,然后在附近的盒子上启动它,并使用此处记录的方法确认媒体写入那里,即。
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.
Run Code Online (Sandbox Code Playgroud)
我认为这种验证至关重要,因为我发现无论使用什么硬件(即不同的盒子和不同的拇指驱动器),5-8% 的 ISO 写入都会失败。
问题
我可以使用一个简单的工具验证 ISO 写入吗,使用我用来写入它的同一个盒子(即不需要重新启动或附近的盒子)。
我的偏好是终端;因为这就是我执行这些任务的地方。
从映像文件(通常是 iso 文件)克隆到 USB 驱动器被认为是一个稳健的过程,但有时会失败。这可能是由于将大 iso 文件克隆到内存单元较慢的随身碟时的缓冲问题造成的,也可能是由片状内存单元造成的。
不管怎样,我发现我们需要一种方便的方法来检查克隆是否成功,所以我创建了一个小的 shellscript。
diff-image-drive通过比较 sha256sums 可以轻松检查。
首先,目标设备(通过 USB 转 SATA 适配器连接的 SSD)中有一些以前的内容:
$ sudo diff-image-drive mantic-desktop-amd64.iso /dev/sdc
Comparing content of 'mantic-desktop-amd64.iso' and '/dev/sdc'
partprobe:
umount /dev/sdc*:
done - no partition mounted on /dev/sdc
calculating sha256sums ...
2,92GiB 0:00:18 [ 163MiB/s] [================================================================>] 100%
file: cdfaafb6be7b4b183b43bf395f7a1e12b14bcc6914c13ca8246a4cb00254ef6e -
2,92GiB 0:00:14 [ 203MiB/s] [================================================================>] 100%
device: ac65f5bb93207976cf59e4440147ffdda40e6e0ac3a3f964f525c0063660b51d -
content of iso/img file and device differ
Run Code Online (Sandbox Code Playgroud)
从 mantic iso 文件克隆到目标设备后:
$ sudo diff-image-drive mantic-desktop-amd64.iso /dev/sdc
Comparing content of 'mantic-desktop-amd64.iso' and '/dev/sdc'
partprobe:
Warning: Not all of the space available to /dev/sdc appears to be used, you can fix the GPT to use all of the space (an extra 462737388 blocks) or continue with the current setting?
umount /dev/sdc*:
done - no partition mounted on /dev/sdc
calculating sha256sums ...
2,92GiB 0:00:14 [ 208MiB/s] [================================================================>] 100%
file: cdfaafb6be7b4b183b43bf395f7a1e12b14bcc6914c13ca8246a4cb00254ef6e -
2,92GiB 0:00:14 [ 204MiB/s] [================================================================>] 100%
device: cdfaafb6be7b4b183b43bf395f7a1e12b14bcc6914c13ca8246a4cb00254ef6e -
content of iso/img file and device match
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您不必担心来自partprobe 的警告。从 iso 文件克隆的驱动器并不关心克隆字段后面的内容。
原始版本中也有颜色突出显示,但跳过头/尾时检查是新的。这有助于检查何时使用了从 Ubuntu iso 文件克隆的驱动器(以便创建“可写”分区)。
克隆后直接检查。
驱动器启动后进行检查。
您可以通过这篇文章以及 Ubuntu 论坛上我的帖子中的以下帖子找到更多详细信息。
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |