如何格式化USB记忆棒


11

我的USB记忆棒看起来已经坏了:

victor@X301A1:~$ umount /dev/sdc1

victor@X301A1:~$ sudo mkfs -t vfat /dev/sdc1
mkfs.vfat 3.0.12 (29 Oct 2011)
mkfs.vfat: unable to open /dev/sdc1: Read-only file system

victor@X301A1:~$ sudo hdparm -r0 /dev/sdc1
/dev/sdc1:
 setting readonly to 0 (off)
 readonly      =  0 (off)

victor@X301A1:~$ sudo fsck -n /dev/sdc1
fsck de util-linux 2.20.1
dosfsck 3.0.12, 29 Oct 2011, FAT32, LFN
/.Trash-1000/files/sans_titre
 Start does point to root directory. Deleting dir. 
/.Trash-1000/files/Bus CAN
 Start does point to root directory. Deleting dir. 
Reclaimed 190903 unused clusters (781938688 bytes).
Free cluster summary wrong (1001897 vs. really 1383698)
  Auto-correcting.
Leaving file system unchanged.
/dev/sdc1: 8052 files, 566660/1950358 clusters

反正我有恢复USB记忆棒的方法吗?谢谢


我的问题是一个只读的怪物128gb(aka pos)。似乎需要结合起来。我使用更改权限的“ sudo nautilus”更改了所有可能的内容,进行了无数次安装(均无效果)。只有当驱动器转到rw时,我才能做dd,这花了很长时间。
dwpbike

Answers:


27

好吧,您可以尝试将原始块设备清零,以查看是否可以正常工作。如果可以写入,则可以创建一个干净的分区表,创建一个新的分区并对其进行格式化。

假设USB棒位于/ dev / sdc上,请首先确保已卸载/ dev / sdc1:

umount /dev/sdc1

看看是否可以清除分区表,例如在前几个K上复制一堆零

sudo dd if=/dev/zero of=/dev/sdc bs=512 count=16

如果可行,请查看是否可以将零写入整个设备而不会失败。要轻松查看内核是否无法写入设备,请首先清除当前内核消息,然后使用以下命令将其丢弃:

sudo dmesg -c > /dev/null

..然后将整个设备清零:

sudo dd if=/dev/zero of=/dev/sdc bs=1M

..这将需要一段时间。当原始块设备已完全写入或发生错误时,dd将完成。

然后,使用以下命令检查内核是否抱怨了该设备:

dmesg

..如果看到大量错误消息,则说明USB记忆棒可能处于不良状态。

但是,如果这可以正常运行,请运行fdisk或分开创建干净的分区,例如使用fdisk,我使用:

sudo fdisk /dev/sdc
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-7796735, default 2048): <return>
Last sector, +sectors or +size{K,M,G} (2048-7796735, default 7796735): <return>
Command (m for help): t
Hex code (type L to list codes): 6
Command (m for help): w

..note只需按回车键来回答第一个和最后一个扇区的问题,fdisk将选择正确的默认值(这与上面的示例不同)。然后使用VFAT格式化分区:

sudo mkfs.vfat /dev/sdc1

然后卸下并重新插入驱动器。应该将其格式化干净。


PériphériqueAmorceDébutFin Blocs IdSystème/ dev / sdb1 * 32 15633407 7816688 b W95 FAT32 victor @ X301A1:〜$ sudo dd if = / dev / zero of = / dev / sdb bs = 512 count = 16 dd:输出«/ dev / sdb»:演讲过程中可以访问文件系统(意味着:只读文件系统)
Victor Lamoine 2012年

现象上详尽而准确的答案。我需要知道将分区表信息清零,剩下的就留了下来。精确到最后一条命令。
Kaobear 2014年

1
status=progress选项添加到dd(需要GNU Coreutils 8.24+)以显示进度。
naXa

status=progress似乎没有显示进度
030

警告:该dd命令可能需要一段时间。对于我的128GB USB记忆棒,大约需要50分钟!
巴赫(Bach)

2

您可以简单地使用gparted对其进行格式化。如果不起作用,如此处所述,您可以:

  1. 插入您的USB驱动器。观看它出现在您的桌​​面上。
  2. 选择“系统”>“管理”>“分区编辑器”(输入密码)。
  3. 在“分区编辑器”中,选择“ Gparted”>“设备”,然后选择与您的闪存驱动器相对应的设备(我通过查看磁盘的总大小来确定)
  4. 卸载驱动器:在列表中选择它,然后选择“分区”>“卸载”。
  5. 选择“分区>检查”。底部将弹出一个窗口,表明该任务正在处理中。确保没有其他任务待处理。
  6. 单击“应用”,然后在确认对话框窗口中再次单击“应用”。
  7. 完成Gparted的检查后,它将重新安装驱动器并在新窗口中打开它。

Gparted无法格式化USB密钥,因为它是只读设备。我没有钥匙上的硬件开关
Victor Lamoine 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.