尝试格式化为 ext4 时,USB 驱动器上的文件系统出现错误

尝试格式化为 ext4 时,USB 驱动器上的文件系统出现错误

所以我买了一个全新的 128GB USB 记忆棒并将其插入我的树莓派。

然后我使用命令行使用 fdisk 和 mkfs.ext4 创建一个新分区和额外的文件系统

似乎一切顺利。然后我使用 rsync 将 65GB 的数据复制到 USB 记忆棒上,并放置了一夜。

第二天早上,rsync 提前收到一个命令,错误是设备已满。果然,df 确认已满 100%。我有点困惑,试图卸载,但卸载不成功,所以我重新启动了。重新启动后,设备无法安装,提示有错误,所以我运行了 e2fsck,它纠正了大量有关 inode、超级块和日志的内容。之后,所有数据都消失了,驱动器为 0%,但可以安装。

当我再次尝试复制文件时,同样的情况再次发生。因此我尝试重新格式化,这次驱动器立即报告错误。e2fsck 找到并修复了错误,但再次运行它会一次又一次地发现错误,因此它似乎无效。

然后我决定将它插入 Windows PC 并完全格式化为 exFAT。花了很长时间,但我可以将数据复制到它上面并读取它。回到 Linux,我可以将数据复制到它并读取数据。重新格式化为 ext4;再次出错。

所以我已格式化为 exFAT,现在正在运行坏块。它几乎已经完成,没有发现任何问题。为什么我在使用这个驱动器时遇到这么多困难?

答案1

市场上有各种假冒的 USB 记忆棒和存储卡。这些假冒产品的容量通常比实际容量大得多。更聪明的假冒产品设计成可以通过简单的测试并且实际上可以使用……直到您尝试存储比其实际容量更多的数据。那时,您将遇到数据损坏和错误。您看到的行为可能适合这种情况。

您可以尝试使用专门检测假存储设备的程序检查您的 USB 记忆棒。以下是几个示例(无特定顺序):

https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from-ebay-with-h2testw/

https://www.geckoandfly.com/22803/detect-fake-usb-flash-drives-sd-cards-ssd-disk/

答案2

尝试检测设备上的坏块。

e2fsck -c -c -k …
mkfs.ext4还可以使用支持-c选项。

双重-c行为慢的读写测试。
单次-c测试执行得更快。
-k选项保存先前检测到的坏块列表(例如,如果您-c在双重-c测试之前使用单次测试)。

答案3

Ubuntu 上 128 GB 的闪存驱动器也存在同样的情况。USB 闪存从 exFAT 开始。在 ext4 上会出现问题:

  1. 磁盘仅能支持 64 GB 格式。
  2. GUI 上的第一个文件会出现错误。

但它可以修复:

sudo apt install f3
sudo f3probe -t -n /dev/sdX #replace X with the drive letter

如果这是一个问题,它会提到f3fix对我来说,论点--最后一秒=134217727是必需的,现在磁盘有 69 GB。

相关内容