记忆棒不格式化?

sam*_*sam 5 file-format

我有一个 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)
Run Code Online (Sandbox Code Playgroud)

两种读取棒的方法是将其直接插入计算机或将其放入我的游戏机并通过电线连接到它。当我使用后一种方法并尝试打开它时,我可以看到一堆带有随机符号作为名称的文件(论坛不允许我发布屏幕截图)。有谁知道我该如何解决这个问题?请具体说明说明,尤其是涉及终端的说明,因为我是 Linux 新手。
提前致谢。

Rin*_*ind 3

将棒连接到电脑后,尝试发出以下命令(如果我的其余答案没有帮助)将输出添加到您的问题中:

sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)

搜索此 8 Gb 记忆棒的设备名称。让我们假设它是sdc1这样做的:

cd / 
sudo umount -l /dev/sdc1 
sudo swapoff /dev/sdc1 
sudo sfdisk -R /dev/sdc
Run Code Online (Sandbox Code Playgroud)
  • 第一个命令是确保您没有cd插入 USB 记忆棒。如果你愿意的话也可以cd /tmp/
  • 第二个命令是无害的卸载。
  • 执行第二条和第三条命令可能会收到错误消息。

关于最后一个命令:

  • sfdisk是一个分区表操纵器。
  • 最后一个命令将使内核重新读取分区表,并且不应以错误结束。重要的是不要给出任何错误,如果确实出现错误,请将其添加到您的问题中。它可能显示的典型错误是:device busy for revalidation (usage = 2)

如果需要的话:

cat /proc/partitions
sudo sfdisk -uM -s /dev/sdc
sudo sfdisk -uM -s /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

如果您对实际设备名称有疑问,每个设备都应该报告文件大小。第一个命令还将显示其他分区,因此您也可以使用它作为第二个命令 ( sudo fdisk -l) 的替代命令。或者作为确认您做得正确:)

到这里为止,一切都是不可撤销的。

如果您没有收到任何错误,请输入:

sudo sfdisk /dev/sdc <<EOF 
,, c 
EOF
Run Code Online (Sandbox Code Playgroud)

这将完全杀死分区表,因此请小心正确输入。如果您决定复制/粘贴,请不要将其复制/粘贴为一个块,而是单独执行每一行。

接下来是重新读取分区表:

sudo sfdisk -R /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

这个命令应该开始格式化它:

sudo mkfs.vfat -c -F 32 -n LABEL -v /dev/sdc1
Run Code Online (Sandbox Code Playgroud)
  • 我当然没有测试过这个,但我相当确定我没有犯错:)
  • 再说一次:这将删除 USB 闪存驱动器上的所有内容。

  • sfdisk 不再提供 -R 或 --re-read 选项,请改用 `sudo blockdev --rereadpt /dev/sdc1`。来源:https://serverfault.com/a/534591 (2认同)

use*_*421 0

我见过记忆棒在存有 ISO9660 图像后无法格式化,对我来说解决这个问题的方法是先写零。

dd if=/dev/zero of=/dev/ the-device bs=512

让它运行一分钟左右,然后按 ctrl-z 停止它

然后再次尝试格式化。