注意在以下位置找到您的 USB 设备/dev/

注意在以下位置找到您的 USB 设备/dev/

有没有办法对即用型 USB 启动盘执行完整性检查?

我刚刚制作了一个 Lubuntu 14.04.01 启动 USB,但还不知道如何对其进行完整性检查。我找不到任何 .iso 文件来对其运行 MD5sum 哈希。

答案1

你可以找到 Ubuntu iso 的 md5sum这里

上面的 md5 值是整个磁盘的校验和,而不是单个文件的校验和。

当你准备一个可启动的 USB 时,iso 文件中的文件将被复制到 USB 中,并且 USB 的引导程序将被覆盖,从而使其可启动。您在这里看到,一个带有 md5 sum( ) 的单个文件(例如 lubuntu 14.04.1 x64 iso)a5f97cd6a9f171c70cf816de8728f13b现在被破坏了,而 USB 中则存在多个文件。因此,您不再有 iso 可以与原始 lubuntu iso 的 md5 sum 进行比较。

如果你想检查每个文件的完整性,那么你需要从 USB 启动,然后选择check cd for defects从启动菜单中。每个 ubuntu iso 中都有一个文件ms5sum.txt,其中包含 iso 中每个单独文件的 md5sum。该check cd for defects选项使用 iso 中存在的 md5 列表验证每个文件的 md5sum。

LiveWireBT 的答案,只需导航到 USB 驱动器并运行md5sum -c md5sum.txt就应对各个文件执行一致性检查。

答案2

ISO 映像中包含的单个文件的哈希值以 的形式存储在根文件夹中md5sum.txt

在同一个文件夹中运行md5sum -c md5sum.txt应该执行一致性检查。

答案3

我的回答基于Lucas 在 Unix 和 Linux StackExchange 中的回答要检查 USB 启动盘的完整性,首先使用以下命令找到 iso 映像的大小:

 stat -c '%s' imagename.iso 

这将输出一个图像大小,您可以在下面的命令中输入它<imagesize>。下一个命令将(通过管道)与图像大小相对应的所有字节发送到 md5sum 命令:

sudo head -c <imagesize> /dev/sdb1 | md5sum

您可以将其与 .iso 文件的 md5sum 进行比较。

md5sum imagename.iso

如果 md5sums 不同,则表示复制数据时出现问题。如果 md5sums 相同,则表示您已成功检查 USB 磁盘上的数据完整性!

注意在以下位置找到您的 USB 设备/dev/

对于上述命令,您需要知道 USB 设备的名称(例如)/dev/sdbX,而不是挂载点(例如)。您可以通过查看输出中的/media/usbX列来查找。例如,我的 USB 设备出现在输出中Filesystemdf/dev/sdb1

df

答案4

在下面的代码中,将 X 更改为(iso-)图像的路径,您可以通过以下方式检查: ls -AFl Documents/tails.ISO # X would be Documents/tails.ISO

并将 Y 更改为 USB 驱动器的正确设备标识符。您可以使用lsblk不是插入时插入以确保您具有正确的设备名称(通常类似于/dev/sdZ)。

检查写入 USB 驱动器的内容是否与所使用的图像文件相对应的代码(在狂欢壳!):

img='X' usb='Y'
[[ $(head -c $(stat -c '%s' "$img") "$usb" |sha256sum) = $(sha256sum <"$img") ]] &&
  echo OK ||
  echo ERROR

如果您使用 GNU ddrescue 之类的工具(该软件包通常称为 gddrescue),您可以写入:ddrescue --force 'X' 'Y'它会自动验证它是否正确写入!

请注意,通过插入和拔出 USB 棒,写入映像中的某些分区可能会自动安装并从而被修改(“脏位”),导致其产生完全不同的校验和!

相关内容