我知道这是一个重复的问题,可能是三重或更多,但我真的找不到解决方案。我的 USB 驱动器之前没有写保护,但发生了一些事情,现在我无法写入或格式化它。
我曾尝试在 ubuntu 中更改权限,fsck, fdisk, dmesg | tail, mkfs -t vfat, hdparm -r0
但没有任何效果;我得到的只是Permission Denied
。我尝试了GParted
但它也说read only
。我也尝试过使用 Windows 来更改权限、设置attributes disk clear readonly
、重命名注册表中的项,并尝试了低级格式化。
但实际上什么都不起作用。此外,该记忆棒没有任何硬件引脚或写保护开关。
有什么解决办法吗?还是我应该放弃?
答案1
规范的答案已经给出 - 取出数据并丢弃该棒。
USB 大容量存储类设备使用 SCSI 命令子集在 USB 物理层之上操作闪存驱动器。请求感知命令(参见第 5 节),它返回一堆状态数据,包括代码“07” - 写入受保护的媒体。所有这些位均由芯片的嵌入式固件在 USB 转闪存桥接芯片内部设置。如果固件已决定(正如 SanDisk 曾经解释的那样)来设置此位“以防止可能的用户数据损坏”,没有办法“取消设置此位”,至少人们没有找到任何绕过固件的方法。
正式来说,这个“写保护介质”位只是通知主机不应尝试写入此介质。如果主机驱动程序从介质获得 WP 状态,它将不会尝试写入。要规避这种情况,必须破解主机驱动程序。即使设置了该位,某些介质控制器也可能接受并执行写入命令。但显然有些控制器 IP 保护过度,如果其固件逻辑得出介质已耗尽其可靠性阈值的结论,它们甚至会拒绝主机端的这种破解。