Micro SD 重叠为“锁定”和“只读状态” - 如何修复?

Micro SD 重叠为“锁定”和“只读状态” - 如何修复?

我有一张 Micro SD 卡 (/dev/sdb),处于“锁定”状态,处于“只读”状态。当我尝试使用 Gparted 或其他图形软件对其进行格式化时,它会报告“不能有重叠分区”。通过互联网和此网站,我找到了使用以下命令的可能解决方案:

sudo fdisk -l -u /dev/sdb
sudo sfdisk -d /dev/sdb > sdb-backup.txt

然后将 .txt 文件更改为有效的文件以修复重叠分区并应用以下命令:

sudo sfdisk /dev/sdb < sdb-backup.txt

尝试此方法后,我仍无法修复我的 Micro SD 卡。结果如下:第一次尝试修复 Micro SD 卡:

sudo fdisk -l -u /dev/sdb
Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty


sudo sfdisk /dev/sdb < sdb-backup.txt
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Old situation:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x00000000.
Created a new partition 1 of type 'Linux' and of size 12,2 MiB.
/dev/sdb2: Created a new partition 3 of type 'Empty' and of size 512 B.
/dev/sdb4: 
New situation:

Device     Boot Start   End Sectors  Size Id Type
/dev/sdb1          16 24896   24881 12,2M 83 Linux
/dev/sdb3       24897 24897       1  512B  0 Empty

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Syncing disks.

=> 由于我没有成功修复 Micro SD 卡,所以我尝试了第二次尝试。第二次尝试修复 Micro SD 卡:

sudo fdisk -l -u /dev/sdb
Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

sudo sfdisk /dev/sdb < sdb-backup.txt
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Old situation:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x00000000.
Created a new partition 1 of type 'Linux' and of size 6,5 GiB.
/dev/sdb2: Created a new partition 3 of type 'Linux' and of size 965,3 MiB.
/dev/sdb4: 
New situation:

Device     Boot    Start      End  Sectors   Size Id Type
/dev/sdb1             16 13546943 13546928   6,5G 83 Linux
/dev/sdb3       13546945 15523839  1976895 965,3M 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

=> 我再次没有成功。

问题:我想知道:还有什么可以使用 FDISK 或其他工具(图形或命令行)来尝试恢复我的 SD 卡吗,或者我必须认为它已被损坏并购买另一个?

PS1:也许我设置了一些错误的命令,所以如果你能找到它并能帮助我,我非常感谢你。感谢您花时间阅读和回答我的问题。

PS2:我不知道这里是否是正确的空间,但为了回应建议该帖子的用户如果我的 USB 闪存驱动器被写保护或只读,我该怎么办?解决我的情况,尽管这篇文章很好地解释了类似的只读情况,但它没有包含解决我的 MicroSDCard 问题的方法。我想解释一下我的 SD 卡是 MicroSD,不包含外部引脚来阻止其写入状态。我不懂计算技术,无法证明它不包含我的情况的答案,但在阅读上述帖子后,我还没有找到任何方法或解决方案来继续解决我的问题。如果你想帮助我,只需询问你需要有关我的 MicroSDcard 的更多信息或我为那些有兴趣提供帮助的人发布的命令行信息。

===================== PS3:解决我的问题 ======================

到目前为止(2017 年 1 月 4 日),还没有解决方案可以修复我的 MicroSD 卡。我尝试使用 bwDraco 和 AFH 发布的建议,但无法恢复我的 MicroSD 功能。

我的 MicroSD 卡问题和解决方案怎么样?好吧,我会再等一会儿,看看是否有其他人在这里提出不同的解决方案。如果其他人有更多建议作为其功能的恢复选项,我仍然可以进行恢复。

无论如何,我会考虑再买一张 SD 卡。正如 bwDraco 所说,[可能],“卡坏了。存储卡经常出现这种令人担忧的故障,但至少更换并不昂贵。”“东西时不时就会出故障,这不一定是你的错。”

幸运的是,在这次损坏之前,我的 MicroSD 上没有重要数据,所以我没有丢失任何重要的东西。无论如何,丢失存储设备是一件坏事,我不喜欢这样,但至少这只是一个 MicroSD 的损失,并不代表巨大的损失。

除此之外,我还要感谢所有帮助过我的人!

================================================================

答案1

你的一条评论(已编辑格式):

应用sudo dd if=/dev/zero of=/sdb bs=64M您建议的代码并且终端工作了一段时间后,它向我显示了响应:

dd: error writing '/sdb': No space left on device
453+0 records in
452+0 records out
30384529408 bytes (30 GB, 28 GiB) copied, 278,123 s, 109 MB/s

我现在应该怎么做?

应该是of=/dev/sdb,而不是of=/sdb。此命令会填满系统磁盘,可能会导致机器崩溃。运行sudo rm /sdb以删除多余的文件。如果此操作失败,您可能需要启动到实时 CD 以从系统驱动器中删除该文件。请参阅这个 Ask Ubuntu 问题有关如何处理完整根文件系统的更多信息。


删除多余的文件后,重新启动到原来的 Linux 系统并尝试运行以下命令:

sudo dd if=/dev/zero of=/dev/sdb bs=64M count=16

如果此操作失败并显示类似 的内容Input/output error,则表示卡已损坏,需要更换。否则,您应该能够重新格式化卡并正常使用它。

相关内容