如何检查具有 BTRFS 文件系统的加密 (Veracrypt) 外部 (USB) 磁盘?

如何检查具有 BTRFS 文件系统的加密 (Veracrypt) 外部 (USB) 磁盘?

我想测试磁盘的物理错误(这是不可能的),磁盘的文件系统错误。该磁盘是典型的 USB 外部驱动器。磁盘(不是按分区级别,而是整个磁盘本身)使用 VeraCrypt 进行加密。我存储文件的分区使用的是 Btrfs。有什么办法呢?


以下是我自己尝试过的事情:

首先,网络搜索结果说,badblocks但其他结果说它现在是一个过时的工具。当我运行它时,它要求只读某些内容,这让我认为它可能会破坏现有文件,所以我取消了它。

然后,我尝试使用 VeraCrypt 卷上的“检查文件系统”上下文菜单。但它显示了一个“fsck”窗口,显示“如果您希望检查 BTRFS 文件系统的一致性或修复损坏的文件系统,请参阅 btrfs(8) 子命令 'check'”并退出。

在此输入图像描述

我打开一个终端并尝试执行,btrfs check但“sudo btrfs 检查(设备名称)”失败,“在 /dev/sdd 上找不到有效的 btrfs”(可能是因为整个磁盘已加密)和“sudo btrfs 检查(解密的目录)”因“不是常规文件或块设备”而失败。

在此输入图像描述


PS:感谢接受的答案,我得到了正确的设备名称。我为将来遇到同样问题的人添加以下内容。我使用的评论是sudo btrfs --force --check-data-csum -p /dev/mapper/veracrypt1.我添加了--check-data-csum,因为没有它,它只检查磁盘的元数据校验和,而不是实际的文件,所以我必须再次运行测试(再次执行所有先前的检查)。-p似乎是一个不错的选择,因为它显示到目前为止已检查的项目数。

答案1

如果你想检查磁盘是否有错误,可以使用聪明的:

smartctl -a /dev/sdd

或者如果你想要 GUI,你可以使用 GNOME Disks 和智能数据和自测试菜单选项。 (并非所有外部驱动器都支持 SMART,这可能不适合您。)

要检查文件系统,您无法使用,/dev/sdd因为它保存加密数据,而不是“可读”btrfs 文件系统。用于lsblk获取用于访问明文数据的 dm-crypt 设备的名称(可能是/dev/mapper/veracrypt1)并对其运行文件系统检查:

btrfs check /dev/mapper/veracrypt1

答案2

你可以尝试一只简单的猫

sudo cat /dev/sdd > /dev/null

这将通过原始设备并应该报告是否存在物理级错误。

答案3

badblocks应该是安全的,毕竟它只要求只读默认访问(除非您使用该-w选项)。将其运行为badblocks -s -v /dev/sdd.虽然更好的方法(除非磁盘是 SDD)是smartctl -t long /dev/sdd,然后使用smartctl -a /dev/sdd来监视进度(这将需要一些时间)并查看坏块(即重新分配的)块的数量。

相关内容