Bob*_*Bob 53 windows-7 filesystem-corruption usb-flash-drive
我有一个全新的闪存驱动器(一周前),它已被 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
Run Code Online (Sandbox Code Playgroud)
真正让我困惑的是Current Read-only State : Yes和Read-only : No。
到目前为止,我已经尝试过:
在 Windows 中对其进行格式化(在磁盘管理中,右键单击时格式选项会变灰)。
磁盘部分清洁 ( 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.
Run Code Online (Sandbox Code Playgroud)
事件日志中没有任何内容。
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.
Run Code Online (Sandbox Code Playgroud)Windows chkdsk:详见下文
Kubuntu fsck(通过 VirtualBox USB 直通):详见下文
Acronis True Image 格式化、转换为 GPT、销毁和重建 MBR,基本上任何事情:失败(无法写入 MBR)
这是一个全新的通用 8GB 闪存驱动器,我想用它来创建多引导闪存驱动器。它被格式化为 FAT32,虽然奇怪的是比我遇到的大多数 8 GB 闪存驱动器大一点。大约 127MB 被 Windows 列为“已使用”。我从来没有发现原因。最终可用空间大约是我通常期望的 8GB 驱动器(大约 7.4 GIBIbytes)。
我已经抛出了相当多的 Linux 发行版,以及一份 Hiren 的副本。他们都会完美启动。他们穿上了YUMI。
当我尝试打开 Knoppix DVD 时,YUMI 在其引导命令中添加了一个奇怪的视频选项,这导致 Knoppix 在 X 上以黑屏引导。s tty1 到 6 仍然作为纯文本界面工作。
几天后,我花了一些时间取消了那个奇怪的视频选项,使引导命令与 Knoppix 附带的命令相匹配。在尝试引导时,Knoppix 报告了某种形式的 LZMA 损坏。
我在想 Knoppix 文件可能以某种方式损坏了,所以我尝试重新加载它。驱动器快满了(45MB 可用),所以我删除了一个也无法启动的通用 ISO。那很顺利。然后我通过 YUMI 来“卸载”Knoppix,即删除文件并从菜单中删除。首先是文件,然后成功清除了菜单。但是,可用空间停留在大约 700MB,与删除 Knoppix 之前相同。在旧的 Knoppix 文件夹中,有一个KNOPPIX无法删除的名为 0 字节的文件。
我尝试重新插入驱动器以删除此文件 - 没有安全删除,如果这有所作为(嘿,一切都是第一次)。运行标准 Windowschkdsk扫描,未发现/r或/f报告错误。运行/r只是让它卡住了。
我决定fsck试一试,所以我加载了我的 Kubuntu VM 并使用 VirtualBox 的 USB 2.0 passthrough 将驱动器连接到它。我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% 完成时冻结。等了大约 15 分钟后(比上次 3.5GB Knoppix ISO 占用的时间长),我把驱动器拔了出来。此时驱动器已经格式化,SYSLINUX 已经安装,等待解压 ISO 和修改启动菜单。
重新插入它,它正常出现 - 但是,任何写入操作都会失败。磁盘管理报告它为只读。重新连接时,它会正常出现,但写入操作会导致它再次变为只读。经过几次尝试,它开始在插入时变为只读。
这是我通过上面列出的尝试尝试重新格式化的时候,以防格式错误。然而,即使在可引导磁盘上也无法这样做,这表明出现了更严重的问题。chkdsk现在报告没有错误,fsck仍然报告MBR不一致,但现在总是在告诉我FAT不同后自动选择第一个FAT。之后它仍然这样做Free cluster summary wrong。我不能再运行了-p,因为它现在被标记为只读。在第一次尝试时,它还设法以某种方式损坏了我的 VM 的磁盘(是的,我确定我选择了 sda,它映射到 7.4GB 驱动器 - 我进行了三次检查)。感谢上帝提供快照?
我只是没有想法。在我没有经验的头脑看来,驱动器固件中的某些东西以某种方式将其设置为“永久”只读 - 有没有办法重置它?考虑到我已经重新格式化了两次,我并不特别关心保留数据。
此外,让我留在 Windows 中的修复更好;它降低了我不小心损坏主硬盘的风险。
出于好奇,我拆开了驱动器。

如您所见,没有明显的写保护开关。另一边有一个 IC,上面有 ALCOR 品牌,标有 AU6989HL,如果这很重要的话。如果似乎没有办法解决这个问题,我可能会拉出(粘住)卡并将其放入读卡器中,以检查是卡还是控制器坏了。
我已经拔掉了卡,Windows 现在检测到该驱动器是读卡器。卡上的触点好像没用过,卡本身有几排孔。将它放入读卡器只能检测到大约 30MB 的总容量,RAW。可能是原始驱动器错误地将卡报告为有故障(就像打开了真正的 SD 卡的写保护)或某处接触不良。
如果不出意外,我现在有一个备用的 8GB Micro SD 卡……一旦我弄清楚如何将其格式化为 8GB。这似乎是不可能的(Windows、Partedmagic dd、DBAN...不,仍然是 30MB)。呃,好吧。
我还有一些。今天第二个同样失败(只读)。在其余的中,有两个被检测为空读卡器/未格式化的驱动器,这取决于震动(接触不良?)。一个被检测为 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
Run Code Online (Sandbox Code Playgroud)
虽然这有点令人担忧,但显然这些驱动器确实具有接近 8GB 的容量,这一点已通过通常成功用于检测假闪存驱动器的工具验证。使用 Micro SD 卡而不是标记的闪存模块几乎不可能重新刷新驱动器,因为 Alcor 的驱动器刷新工具将内存模型作为参数。我想我会把所有的东西都扔掉。
小智 22
您可以尝试使用芯片制造商 Alcor 的工具。你可以通过谷歌找到它,名字是“ AlcorMP_5T2F_6T2F_2011-11-10.02”。
在那里,您首先打开 LoadDriver.exe 并输入您的 VID 和 PID(您可以使用 ChipGenius 或使用 Linux 并输入“lsusb -v”来找出这些值),然后单击安装。对于我的棍子,值是058F, 6387。
然后运行 AlcorMP.exe,您的设备应在其中列出。单击它左侧的按钮,然后开始在您的棒上进行低级格式化和坏块扫描。
Phi*_*ent 11
我个人认为卡和它的哑弹接触不良。立即备份所有内容。
我会使用 linux 的 dd 实用程序来重置设备。只读状态可能在设备的引导扇区中,而 fsck 和 chkdsk 是文件系统级别的检查,所以不会做太多。
启动到您的 ubuntu ISO 并尝试:
dd if=/dev/zero of=/dev/sdx bs=1M
Run Code Online (Sandbox Code Playgroud)
将 /dev/sdx 替换为与您的 USB 驱动器对应的设备
/dev/sdx1 是分区,而 /dev/sdx 是整个驱动器。您需要确保已卸载分区才能实现这一点。如果由于只读驱动器而无法添加驱动器,我会将其归结为硬件故障,您可能会在 dmesg 中看到。
| 归档时间: |
|
| 查看次数: |
168481 次 |
| 最近记录: |