我有一个全新的闪存驱动器(使用了一周),它被 Windows、Kubuntu 和可启动分区程序标记为只读。为什么会发生这种情况?可以修复吗?如果可以,我该如何修复?
问题
首先,这个硬盘是新的。它肯定没有被用到因正常磨损而损坏的程度,尽管我不会排除有缺陷的部件。
驱动器本身不知何故被锁定在只读状态。Windows 的磁盘管理:
磁盘部分:
Generic Flash Disk USB Device
Disk ID: 33FA33FA
Type : USB
Status : Online
Path : 0
Target : 0
LUN ID : 0
Location Path : UNAVAILABLE
Current Read-only State : Yes
Read-only : No
Boot Disk : No
Pagefile Disk : No
Hibernation File Disk : No
Crashdump Disk : No
Clustered Disk : No
真正令我困惑的是Current Read-only State : Yes
和Read-only : No
。
尝试的解决方案
到目前为止,我已经尝试过:
在 Windows 中对其进行格式化(在磁盘管理中,右键单击时格式化选项会变灰)。
DiskPart 清理 (
CLEAN - Clear the configuration information, or all information, off the disk.
):DISKPART> clean DiskPart has encountered an error: The media is write protected. See the System Event Log for more information.
事件日志中没有任何内容。
Windows 命令行格式
>format G: Insert new disk for drive G: and press ENTER when ready... The type of the file system is FAT32. Verifying 7740M Cannot format. This volume is write protected.
Windows chkdsk:详细信息请参见下文
Kubuntu fsck(通过 VirtualBox USB 直通):详情见下文
Acronis True Image 格式化、转换为 GPT、销毁并重建 MBR,基本上任何事情:失败(无法写入 MBR)
详细信息(以及精彩故事)
背景
这是一个全新的通用 8GB 闪存驱动器,我想用它来创建一个多启动闪存驱动器。它的格式为 FAT32,但奇怪的是,它比我遇到的大多数 8 GB 闪存驱动器要大一些。Windows 列出了大约 127MB 的“已使用”空间。我一直不知道为什么。最终的可用空间大约是我通常对 8GB 驱动器的预期(大约 7.4 GIBIbytes)。
我装了不少 Linux 发行版,还有一份 Hiren 的。它们都能完美启动。由美。
当我尝试放入 Knoppix DVD 时,YUMI 在其启动命令中添加了一个奇怪的视频选项,这导致 Knoppix 在启动时 X. tty
s 1 到 6 仍然作为纯文本界面工作。
几天后,我花了一些时间关闭了那个奇怪的视频选项,使启动命令与 Knoppix 自带的命令相匹配。在尝试启动时,Knoppix 报告了某种形式的 LZMA 损坏。
当前问题
我当时想 Knoppix 文件可能不知何故被损坏了,所以我尝试重新加载它。驱动器几乎已满(45MB 可用),所以我删除了一个同样无法启动的通用 ISO。一切顺利。然后我通过 YUMI 来“卸载”Knoppix,即删除文件并从菜单中删除。文件先被删除,然后菜单被成功清除。但是,可用空间停留在 700MB 左右,与删除 Knoppix 之前一样。在旧的 Knoppix 文件夹中,有一个名为 0 字节的文件KNOPPIX
无法删除。
我尝试重新插入驱动器以删除此文件 - 无需安全移除,看看这样做是否有区别(嘿,第一次尝试)。运行标准 Windowschkdsk
扫描时没有/r
或/f
报告发现错误。运行时/r
卡住了。
我决定试一试fsck
,所以我加载了我的 Kubuntu VM,并使用 VirtualBox 的 USB 2.0 直通将驱动器连接到它。我umount
编辑了它(/dev/sda1
)并运行了 fsck。There are differences between boot sector and its backup.
我选择了No action
。它告诉我 FAT 不同,并要求我选择第一个或第二个 FAT。无论我选择哪一个,我都会收到通知Free cluster summary wrong
。如果我选择Correct
,它会给出一个不正确的文件名列表。要尝试修复某物至少,我使用该-p
选项运行它。修复文件进行到一半时,虚拟机冻结了 - 大约十分钟后我结束了它的进程。
原因?
我的下一个尝试是再次使用 YUMI 来重建整个驱动器。我使用 YUMI 内置的重新格式化(FAT32)选项并安装 Kubuntu ISO(700MB)。格式化成功,但是,Kubuntu 的提取和复制(YUMI 使用 7zip 二进制文件)在完成约 60% 时冻结。等待大约十五分钟后(比上次 3.5GB Knoppix ISO 所花的时间更长),我拔出了驱动器。此时驱动器已经格式化,SYSLINUX 已经安装,只等着解压 ISO 并修改启动菜单。
重新插入后,一切正常 - 但是,任何写入操作都会失败。磁盘管理报告它为只读。重新连接后,它会恢复正常,但写入操作会导致它再次变为只读。经过几次尝试,它在插入时开始变为只读。
尝试修复
这是我尝试上述方法的时候,尝试在格式错误的情况下重新格式化它。但是,即使在可启动磁盘上也无法这样做,这表明出现了更严重的问题。chkdsk
现在报告没有问题,fsck
仍然报告 MBR 不一致,但现在在告诉我 FAT 不同后总是自动选择第一个 FAT。之后它仍然会这样Free cluster summary wrong
。我不能再运行了,-p
因为它现在被标记为只读。它还在第一次尝试时以某种方式损坏了我的 VM 磁盘(是的,我确定我选择了 sda,它映射到一个 7.4GB 驱动器 - 我三倍检查过了)。感谢上帝给了我们快照?
我简直想不出主意了。在我这个缺乏经验的头脑里,驱动器固件中的某些东西似乎以某种方式将其设置为“永久”只读 - 有什么方法可以重置它吗?考虑到我已经重新格式化了两次,我并不特别在意保留数据。
此外,让我继续使用 Windows 的修复程序更好;它降低了我意外破坏主硬盘的风险。
更新 1:
出于好奇,我把驱动器拆开了。
如您所见,没有明显的写保护开关。如果这很重要的话,另一侧有一个 ALCOR 品牌的 IC,标签为 AU6989HL。如果似乎没有办法解决这个问题,我可能会拔出(粘住的)卡并将其放入读卡器中,以检查是卡还是控制器坏了。
更新 2:
我已将卡拔出,Windows 现在将该驱动器检测为读卡器。卡上的触点似乎未使用,卡本身有几排孔。将其放入读卡器只能检测到总共约 30MB 的 RAW。可能是原始驱动器错误地将卡报告为故障(好像打开了真正的 SD 卡的写保护)或某处接触不良。
如果没有其他事情,我现在有一张备用的 8GB Micro SD 卡……只要我弄清楚如何将其格式化为 8GB。这似乎是不可能的(Windows、Partedmagic、dd
DBAN……不,仍然是 30MB)。好吧。
更新 3
我还有好几个这样的。今天第二个也出现了类似的故障(只读)。剩下的两个被检测为空读卡器/未格式化的驱动器,具体取决于震动(接触不良?)。其中一个被检测为 1/3 满,并且卷名很奇怪。
H2testw 结果(这是我拥有的最后一个可以完全运行的结果!):
Warning: Only 7762 of 7812 MByte tested.
The media is likely to be defective.
7.5 GByte OK (15896472 sectors)
52 KByte DATA LOST (104 sectors)
Details:0 KByte overwritten (0 sectors)
0 KByte slightly changed (< 8 bit/sector, 0 sectors)
52 KByte corrupted (104 sectors)
0 KByte aliased memory (0 sectors)
First error at offset: 0x0000000186003000
Expected: 0x0000000186003000
Found: 0x00200800c40c3061
H2testw version 1.3
Writing speed: 3.95 MByte/s
Reading speed: 14.0 MByte/s
H2testw v1.4
虽然这有点令人担忧,但显然这些驱动器确实有近 8GB 的容量,这已通过一种经常用于成功检测假冒闪存驱动器的工具进行了验证。使用 Micro SD 卡而不是标记的闪存模块几乎不可能重新刷新驱动器,因为 Alcor 的驱动器刷新工具需要内存模型作为参数。我想我会把所有东西都扔掉。
答案1
您可以尝试使用芯片制造商 Alcor 的工具。您可以通过 Google 找到它,名称为“ AlcorMP_5T2F_6T2F_2011-11-10.02
”。
在那里,您首先打开 LoadDriver.exe 并输入您的 VID 和 PID(您可以使用 ChipGenius 或使用 Linux 并输入“lsusb -v”来找到这些值),然后单击安装。对于我的记忆棒,这些值为058F
、6387
。
然后运行 AlcorMP.exe,其中应该会列出您的设备。单击其左侧的按钮,然后 Start 会对您的设备进行低级格式化和坏块扫描。
答案2
我个人认为卡接触不良,无法使用。立即备份所有内容。
我会使用 Linux 的 dd 实用程序来重置设备。只读状态可能位于设备的引导扇区中,而 fsck 和 chkdsk 是文件系统级检查,因此作用不大。
启动你的 ubuntu ISO 并尝试:
dd if=/dev/zero of=/dev/sdx bs=1M
将 /dev/sdx 替换为您的 USB 驱动器对应的设备
/dev/sdx1 是分区,而 /dev/sdx 是整个驱动器。您需要确保分区已卸载才能实现这一点。如果您无法 dd 驱动器,因为它是只读的,我会将其归结为硬件故障,您可能会在 dmesg 输出中看到它。
答案3
RMPrepUSB具有快速驱动器容量测试,旨在测试“假”USB 闪存驱动器并测试其容量。
这是很多比运行 H2TESTW 更快(但不那么彻底)。如果它通过了 RMPrepUSB 测试,那么您可以随时运行 H2TESTW - 如果它未通过 RMPrepUSB Quick Drive 测试,那么它将不会通过 H2TESTW,而且无论如何 H2TESTW 都需要很长时间才能测试它。
答案4
当驱动器向 SCSI MODE SENSE 等命令返回无效数据时,可能会发生只读。可能是由损坏的固件或闪存引起的。确实没有解决办法。