我将在基于 Linux 的计算机上测试使用 USB 安装/卸载以及 USB 上的文件放置的用户流程。我们的用例之一是在用户插入的 USB 设备损坏或无法读取时通知用户。
有没有一种方法可以通过命令行故意损坏/破坏 USB 设备,以便我们可以测试“损坏设备”场景?
理想情况下,如果 USB 设备可以安装,但不可读取/写入,这就是我正在寻找的。
答案1
硬件解决方案几乎肯定是偏离主题的。
软件解决方案。很难提出任何能够提供部分破坏的建议。以下是一些可能有用也可能没用的建议:
擦除 USB。插入棒并验证安装是否成功。
将 USB 格式化为
ext2
.安装 USB。去掉它。卸载文件系统。可能会尝试卸载剩余的内容。当您插入此棒时,我期望发生的情况是安装将失败,因为fsck
需要进行文件系统检查()。将 USB 格式化为
ext4
.根据以下说明在文件系统上设置只读标志将 ext4 文件系统标记为只读。当您安装此棒时,您应该会找到一个只读文件系统。将 USB 格式化为
ext2
、ext3
或ext4
。用大大小小的文件填充文件系统(cp -a /{bin,etc,lib} /mnt/usb
例如,对于安装在 上的 USB/mnt/usb
)。卸载文件系统。擦除 USB 大约 2MB 及以上的数据(dd bs=1M seek=2 if=/dev/zero >/dev/sdX
,对于 USB 设备/dev/sdX
)。当您下次挂载此文件系统时,您应该会发现(大部分)目录结构看起来合理,但文件已损坏。
我无法为您提供有关从 USB 记忆棒生成读取错误的建议。也许在使用中途拉动棍子。或者将其综合到您的软件中。