所以我正在尝试弄清楚如何对 USB 目录中的所有文件进行哈希处理。我偶然发现了另一篇与我类似的帖子,其中包括以下脚本:
find "$PWD" -type d | sort | while read dir; do [ ! -f "${dir}"/@md5Sum.md5 ] && echo "Processing " "${dir}" || echo "Skipped " "${dir}" " @md5Sum.md5 already present" ; [ ! -f "${dir}"/@md5Sum.md5 ] && md5sum "${dir}"/* > "${dir}"/@md5Sum.md5 ; chmod a=r "${dir}"/@md5Sum.md5;done
它运行得很好,可以完成我想要的一切,但是我不知道如何改变它以针对 USB。我已经让用户通过输入 /dev/sdf 或 /dev/sdg 等来输入 USB 设备。但我不知道如何将这些信息带入上面的命令。任何关于此的建议或意见都将不胜感激。
答案1
我使用 Ubuntu Server iso 文件进行了测试ubuntu-20.04.3-live-server-amd64.iso
从https://releases.ubuntu.com/20.04.3/使用 sha256sum
f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98
iso 文件已克隆到 USB 驱动器。(您可以使用任何克隆工具执行此操作。)
USB 驱动器上使用的大小由以下方法确定:
sudo fdisk -lu /dev/sdx
其中
x
是驱动器号(fdisk
例如用 和标识lsblk -f
),并且扇区数(从 0 到“end_sector”)是end_sector + 1
,因此在我的测试示例中2463616
,和 扇区大小为 512 字节。检查驱动器中是否未安装文件系统,如果已安装,则卸载分区(但不弹出)。
检查 USB 驱动器
计算 USB 驱动器整个使用部分的校验和,
sudo dd if=/dev/sdx bs=512 count=2463616|sha256sum
此检查的输出与上传的校验和相同,表明克隆操作已成功。您可能希望将输出从
dd
传输到md5sum
。如果校验和不匹配,请首先检查扇区数和字节数是否正确(您是否准确检查了 USB 驱动器的正确部分)。
- 当您从一个 USB 驱动器克隆到另一个足够大的驱动器时,同样的方法也有效,因此请检查新驱动器(
sha256sum
或md5sum
根据您的选择)。