对 USB 中的所有文件进行 MD5 哈希处理并将输出文件保存在 USB 上

对 USB 中的所有文件进行 MD5 哈希处理并将输出文件保存在 USB 上

所以我正在尝试弄清楚如何对 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 驱动器克隆到另一个足够大的驱动器时,同样的方法也有效,因此请检查新驱动器(sha256summd5sum根据您的选择)。

相关内容