首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SD格式问题

SD格式问题
EN

Unix & Linux用户
提问于 2016-12-11 11:37:35
回答 2查看 998关注 0票数 0

我有一个8千兆SD卡,我一直试图格式化,但由于某种原因,似乎什么也做不到。我试过检查重叠的开始和结束位,但很明显,它们中没有重叠。

我尝试过的事情:

  1. fdisk可以删除分区,也可以创建新的分区,但是数据仍然存在,并且没有显示错误。

  1. 尝试与上面使用GParted相同,但是当只有分区时,gparted会给出一个重叠的分区错误,也有一个由GParted生成的“寻找而写的无效参数”错误。

  1. 使用dd以0填充设备,但仍然无法格式化卡。

  1. 使用shred作为替代,也没有运气。

我想知道问题到底是什么,或者还有什么解决办法(S),我可以试试。

更新

我在设备上尝试了sgdisk -Z,这就是我所得到的错误:

代码语言:javascript
复制
Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.
GPT data structures destroyed! You may now partition the disk using fdisk     or
other utilities.

尝试使用GParted和Fdisk调整开始和结束位的大小,但是它们不会改变任何东西,并且开始和结束保持不变。

代码语言:javascript
复制
Disk /dev/sdb: 7.5 GiB, 8026849280 bytes, 15677440 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        8192 15677439 15669248  7.5G  b W95 FAT32

作为可见的,不存在其他分区。

EN

回答 2

Unix & Linux用户

发布于 2016-12-11 16:24:14

您可以通过执行dd if=/dev/zero of=/dev/sdX bs=512 count=2来销毁违规的分区表,然后使用fdisk或gparted创建一个新的分区表。一定要把X弄对。

票数 1
EN

Unix & Linux用户

发布于 2016-12-11 12:20:31

SD卡可以有物理写锁开关。这个锁上了吗?抱歉,如果这听起来很傻。

尝试下面的命令完全Zap所有分区信息。作为根(或者使用sudo或系统上的任何其他解决方案)。警告: SD卡上的所有数据都将丢失,如果没有输入正确的设备,您可能会销毁系统上的所有数据。

代码语言:javascript
复制
    sgdisk -Z /dev/XXXX

其中,/dev/XXXX是与SD卡相对应的设备,比如/dev/sde等。重新启动计算机并尝试用常用的工具格式化SD卡。

如果事情仍然很糟糕,要么你没有使用正确的设备文件,要么你的lunix系统无法写入SD卡,也许它被损坏了。使用dmesg | tail -100查看系统消息。

更新,(响应您的更新)

您的SD卡有一个GPT分区表,sgdisk警告(顺便说一下,不存在错误)证明:

代码语言:javascript
复制
    Warning! Secondary partition table overlaps the last partition by
    33 blocks!
    You will need to delete this partition or resize it in another 
    utility.

其结果是成功的:

代码语言:javascript
复制
    GPT data structures destroyed! You may now partition the disk using fdisk
    or other utilities.

GPT表(用gdisk管理)在设备上写了两次,一次在开始,另一次用相反的顺序写。所以GPT表比MBR分区(用旧的fdisk管理)更强大,并且抵制诸如:dd if=/dev/zero of=/dev/sdx count=20 bs=512这样的命令,因为备份副本是在后面写的,而不是擦除的。

在用sgdisk -Z重击了这些参数之后,你重新启动了计算机吗?如果您不这样做,linux内核可能仍然使用它自己的、内存中的卡片上的分区概念。要确保linux知道这张卡已经被删除,最好的方法就是重新启动。

在某些情况下,可以混合MBR和GPT分区表,但这两个表必须同意,只有非常有经验的用户才能混合使用MBR和GPT分区。

还不清楚您的fdisk版本是否识别GPT。您可能尝试用fdisk编辑MBR分区,而linux内核使用GPT (备份)分区表。

所以,再一次:

  1. Zap分区表,sgdisk -Z
  2. 还不要使用其他分区工具。相反,重新启动
  3. 使用你喜欢的分区工具。

如果问题继续存在,dmesg可能会有所帮助。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/329593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档