无法格式化损坏的 32Gb SD 卡

无法格式化损坏的 32Gb SD 卡

我无法格式化损坏的 Sandisk SDHC ULTRA 32Gb 微型卡。所以我在Ubuntu系统中使用了gparted。我删除了分区(/dev/sdf1),重新创建它并将其格式化为 fat32。它仍然保留原来的标签和 24% 的已使用空间。

sudo parted /dev/sdf1 unit s print

型号:未知(未知)

磁盘 /dev/sdf1: 62325760s

扇区大小(逻辑/物理):512B/512B

分区表:msdos

编号 开始 结束 大小 类型 文件系统 标志

sudo fdisk -l -u /dev/sdf

磁盘 /dev/sdf:31.9 GB,31914983424 字节 255 个磁头,63 个扇区/磁道,3880 个柱面,总共 62333952 个扇区

单位 = 1 * 512 = 512 字节的扇区

扇区大小(逻辑/物理):512 字节/512 字节

I/O 大小(最小/最佳):512 字节/512 字节

磁盘标识符:0x00000000

设备引导开始结束块 ID 系统

/dev/sdf1 * 8192 62333951 31162880 c W95 FAT32 (LBA)

sudo dd if=/dev/zero of=/dev/sdf bs=512 count=1

1+0 条记录

1+0 记录复制了 512 字节 (512 B),0.0122556 s,41.8 kB/s

sudo shred -vzn 0 /dev/sdf

然后我尝试再次格式化(gparted)以获取日志信息: gparted信息 分区日志

sudo fsck -a /dev/sdf1

来自 util-linux 2.20.1 的 fsck

dosfsck 3.0.12,2011 年 10 月 29 日,FAT32,LFN

引导扇区与其备份扇区之间存在差异。

差异:(偏移:原始/备份)71:33/4e、72:32/4f、73:47/20、74:42/4e、75:5f/41、76:47/4d、77:4f/45 , 78:50/20, 79:4c/20, 80:55/20, 81:53/20

不会自动修复此问题。

孤立的长文件名部分“173GOPRO”
自动删除。

…………

自由集群摘要错误(813022 与实际 744969)

自动更正。

执行更改。

/dev/sdf1:417 个文件,228615/973584 个簇

sudo mkfs.vfat -I /dev/sdf

mkfs.vfat 3.0.12(2011 年 10 月 29 日)

此后,刷新 gparted 设备需要很长时间才能显示它们。什么也没有变。

所以我设置了两个操作:删除分区并重新创建它。这是结果: 格式1 格式2 分区日志

这是出现“重叠”信息的地方

正如 burlian.vlastimil 的回答所建议的,我尝试过

http://gparted.org/h2-fix-msdos-pt.php#overlapping-partitions

$ sudo parted /dev/sda 单位打印

错误:不能有重叠的分区。

但正如您在上面看到的,我的 sdf 单元没有收到此错误消息

所以,我现在被困住了。

编辑 1:在我的 Mac 中,卡被识别并显示目录和文件树、正确的文件大小和日期。在尝试我描述的任何操作之前,我可以恢复一些我需要的 jpg,所以我不想失去一切

编辑 2:添加了 testdisk /log 的一些屏幕截图

在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述

答案1

分区不能重叠

根本原因是分区表至少包含一个分区的末尾与另一个分区的开头重叠的情况。

来源:如何修复无效的 MSDOS 分区表

还有一个关于如何修复它的指南: 如何修复重叠分区

答案2

在相机和手机中工作的多个 SD 上也遇到类似问题,但在 Ubuntu/Mint 上根本无法安装。

在尝试格式化时,得到:

分区不能重叠

无法使用任一方法进行格式化磁盘或者gparted

解决并安装,一步一步:

首先确保您拥有必要的软件包:

sudo apt-get install exfat-fuse exfat-utils

跑过磁盘gui,可以在应用程序中找到。

请注意 SD 设备磁盘标签:(示例/dev/sde

运行此命令以获取当前分配的大小:

sudo fdisk -l -u /dev/sde 

减去结尾开始, 例子:

Device Boot Start End Sectors Size Id Type
/dev/sde1 * 8192 15572991 15564800 7.4G b W95 FAT32

所以,在这种情况下:

15572991 - 8192 =15564799

要进行编辑,请将输出写入文件:

sudo sfdisk -d /dev/sde > sde-bckup.txt 

打开sde-bckup.txt使用任何文本编辑器在主文件夹上。

输入示例:

label: dos
label-id: 0x00000000
device: /dev/sde
unit: sectors

/dev/sde1 : start=        8192, size=    15564800, type=b, bootable

编辑后:

label: dos
label-id: 0x00000000
device: /dev/sde
unit: sectors

/dev/sde1 : start=        8192, size=    15564799, type=b, bootable

完成后,使用以下命令将分区表写回设备:

sudo sfdisk /dev/sde < sde-bckup.txt

如果成功:

分区表已被更改。

就我而言,立即安装了 SD 卡并可在文件资源管理器中使用。

之后,使用磁盘公用事业,删除所有分区并格式化并完全擦除。此操作对于以后的使用是必需的。奇怪的是,当用其他设备向SD写入数据时,问题又出现了。

可能的原因?

https://www.bunniestudios.com/blog/?page_id=1022

https://www.youtube.com/watch?v=nuruzFqMgIw

相关内容