我有一根 8GB 的记忆棒 pro duo,无法正确格式化或读取。当我从 Playstation Portable 中删除一个文件时,电池意外没电了。现在,什么都无法读取它。当我尝试格式化它时,我收到此消息:
Error creating file system:
helper exited with exit code 1: helper failed with:
mkfs.vfat: failed whilst writing FAT
mkfs.vfat 3.0.9 (31 Jan 2010)
读取记忆棒的两种方法是将其直接插入计算机或将其放入我的 playstation 并通过电线连接到它。当我使用后一种方法并尝试打开它时,我可以看到一堆以随机符号作为名称的文件(论坛不允许我发布屏幕截图)。有人知道我该如何解决这个问题吗?请提供具体的说明,尤其是涉及终端的说明,因为我是 Linux 新手。
提前谢谢。
答案1
将棒连接到 PC 后尝试输入以下命令(如果我的其余回答没有帮助)将输出添加到您的问题中:
sudo fdisk -l
搜索此 8 Gb 棒的设备名称。我们假设它sdc1
执行以下任务:
cd /
sudo umount -l /dev/sdc1
sudo swapoff /dev/sdc1
sudo sfdisk -R /dev/sdc
- 第一个命令是确保您没有插入 USB 驱动器。如果您愿意,
cd
可以插入。cd /tmp/
- 第二条命令是无害的卸载。
- 执行第二和第三个命令可能会出现错误消息。
关于最后一条命令:
sfdisk
是一个分区表操作器。- 最后一个命令将使内核重新读取分区表,并且不会出现错误。重要的是不要出现任何错误,如果出现错误,请将其添加到您的问题中。它可能显示的典型错误是:
device busy for revalidation (usage = 2)
。
如果需要的话:
cat /proc/partitions
sudo sfdisk -uM -s /dev/sdc
sudo sfdisk -uM -s /dev/sdc1
如果您对实际设备名称有疑问,则每个命令都应报告文件大小。第一个命令还会显示其他分区,因此您也可以将其用作第二个命令的替代方法(sudo fdisk -l
)。或者作为确认您操作正确的方法 :)
到目前为止,一切都无法挽回。
如果您没有收到任何错误,请输入:
sudo sfdisk /dev/sdc <<EOF
,, c
EOF
这将彻底破坏分区表,因此请小心输入正确。如果您决定复制/粘贴此内容,请不要将其作为一个块进行复制/粘贴,而应分别执行每一行。
接下来重新读取分区表:
sudo sfdisk -R /dev/sdc1
并且这个命令应该开始格式化它:
sudo mkfs.vfat -c -F 32 -n LABEL -v /dev/sdc1
- 我当然没有测试过这个,但我确信我没有犯任何拼写错误:)
- 再说一遍:这将删除 USB 闪存驱动器上的所有内容。
答案2
我见过一些内存条在存入 ISO9660 图像后无法格式化,我解决这个问题的方法是先写入零。
dd if=/dev/zero of=/dev/装置BS=512
让它运行一分钟左右,然后按 ctrl-z 停止它
然后尝试再次格式化。
答案3
我之前也遇到过同样的问题。我使用了以下命令,成功了:
sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1