我的 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 记忆棒吗?谢谢
答案1
好吧,你可以尝试将原始块设备清零,看看是否可行。如果你可以写入该设备,那么你也许可以创建一个干净的分区表,创建一个新分区并对其进行格式化。
假设 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 或 parted 来从干净的位置创建分区,例如我使用 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
..请注意,对于第一个和最后一个扇区问题,只需按回车键,fdisk 将选择正确的默认值(这与我上面的示例不同)。然后使用 VFAT 格式化分区:
sudo mkfs.vfat /dev/sdc1
然后移除并重新插入驱动器。它应该被干净地格式化。