SD 卡分区表和分配扇区严重损坏

SD 卡分区表和分配扇区严重损坏

我几乎已经束手无策了,fdisk 给出了这个结果。无论我做什么,我尝试过的所有方法都返回了这样的结果。卡上甚至还有一些音乐,我仍然可以播放。我只想把它擦掉,让它再次可用。更新 - 我试过这两个答案,我有相同的 fdisk 输出,我仍然可以听上面的音乐。

Command (m for help): p
Disk /dev/sdb: 59.5 GiB, 63864569856 bytes, 124735488 sectors
Geometry: 64 heads, 32 sectors/track, 60906 cylinders
Units: cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6b736964

Device     Boot   Start     End Cylinders   Size Id Type
/dev/sdb1  ?     831055 1626717    795663   777G 83 Linux
/dev/sdb2  ?     649505  912677    263173   257G 65 Novell Netware 386
/dev/sdb3  ?     263179  945973    682795 666.8G 53 OnTrack DM6 Aux3
/dev/sdb4  ?    1908750 1908782        32  31.9M bb Boot Wizard hidden

Partition table entries are not in disk order.

Command (m for help): v
Partition 1: overlaps partition 2.
Partition 1: overlaps partition 3.
Total allocated sectors 4866404289 greater than the maximum 124735488.

-

hartofwave@hartofwave-Flaming-Blade-GTI:~$ sudo sgdisk -Z /dev/sdb

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************

Exact type match not found for type code 7400; assigning type code for
'Linux filesystem'
Exact type match not found for type code 6500; assigning type code for
'Linux filesystem'
Exact type match not found for type code 5300; assigning type code for
'Linux filesystem'
Exact type match not found for type code BB00; assigning type code for
'Linux filesystem'

Warning! Secondary partition table overlaps the last partition by
3784448450 blocks!
You will need to delete this partition or resize it in another utility.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.

答案1

此 SD 卡直接格式化为单个文件系统,实际上没有分区表。您看到的是普通的文件系统数据,它fdisk期望主引导记录存在,但却被它混淆了。这就是为什么您看到的分区信息毫无意义,但卡仍然可以工作。

要擦除卡,请输入以下命令:
dd if=/dev/zero of=/dev/sdb bs=8192

这将使设备上的每个块都归零。

笔记:bs=8192一个任意数。 dd的默认块大小为 512 字节,这很慢。 BS=8192将以 4K 块的形式擦除设备,这应该要快得多。

笔记2:SD 卡是一种基于闪存的介质,就像 SSD 一样。闪存单元的“磨损”会随着写入次数的增加而增加。因此,不要多次执行此操作,否则会降低卡的性能。

答案2

如果您想要擦除磁盘,请尝试以下root步骤sudo

sgdisk -Z /dev/sdb

然后,您应该能够重新对磁盘进行分区。如果不能,请检查磁盘上是否有只读标签,就像某些(所有?)SD 卡一样。如果有这样的标签,请将其滑到另一个位置,然后重试。

如果失败了,那么我的直觉就是磁盘坏了;你应该把它扔进垃圾桶并买一个新的。

相关内容