Raspberry Pi打破了SD卡?无法格式化

时间:2013-12-27 18:47:20

标签: raspberry-pi sd-card disk-partitioning

所以,我有一个来自CnMemory的8GB SDHC。我用它来做我的Raspberry Pi。它到目前为止工作。但后来我的覆盆子冻结了(无法通过ssh连接,apache也没有回应)。所以我把力量拉了出来。我重新启动了覆盆子。这次是我的显示器。 FS似乎腐败了。我做了fsck并解决了问题。使用shutdown -r重新启动。现在它根本不会开始。好的,所以我想我需要为它添加一个空白的新图像。

我做不到。 GParted告诉我,该卡只有1GB而不是8GB。

# fsck /dev/mmcblk0 
fsck from util-linux 2.20.1
e2fsck 1.42.8 (20-Jun-2013)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/mmcblk0

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>

fdisk和fdisk / dev / mmcblk0导致以下内容

# fdisk
[...]
Disk /dev/mmcblk0: 1073 MB, 1073741824 bytes
4 heads, 16 sectors/track, 32768 cylinders, total 2097152 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
Disk identifier: 0x00000000

Disk /dev/mmcblk0 doesn't contain a valid partition table

# fdisk /dev/mmcblk0 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xccf88a5e.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): w
The partition table has been altered!

它冻结了。它说它已被改变但它并没有被卡在那里。

Windowssystem无法将SDCard格式化为获取I / O错误。

这个问题是第二个 SD卡!

我希望你知道如何解决这个问题。 谢谢!


编辑:

当我尝试擦除分区表时,

dd也会冻结。

# dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=1

EDIT2:

dmesg显示invalid allocation unit size

如果我尝试使用mkfs编写,则会出现一些错误。

# mkfs /dev/mmcblk0 --type=ext4
mke2fs 1.42.8 (20-Jun-2013)
Warning: could not erase sector 2: Attempt to write block to filesystem resulted in short write
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: done                            
Warning: could not read block 0: Attempt to read block from filesystem resulted in  short read
Warning: could not erase sector 0: Attempt to write block to filesystem resulted in short write
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: 0/8
Warning, had trouble writing out superblocks.

# dmesg
mmc0: SD Status: Invalid Allocation Unit Size
[...]

几个小时后我完全打破了吗?

5 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,因为在RPI已经对其进行了校正之后我无法重新格式化完整的SD空间。尝试使用GPARTED Live系统并不成功。

最后,我找到了使用命令行工具

删除分区的解决方案
  

DISKPART

在Windows上。

使用非常简单直接。我按照

上的说明操作

this short tutorial。之后我能够重新格式化它。

Unfortunateley,我找不到unix系统的等效解决方案了。

答案 1 :(得分:2)

我遇到了这样的问题。
这是我的输出,

root@tygra:/path# dd bs=4M if=Gingerbread+EthernetManager.img of=/dev/mmcblk0
dd: failed to open ‘/dev/mmcblk0’: Read-only file system

我正在使用带有SD卡适配器的microSD 解决方案非常简单。适配器侧面有一个小开关, 将其转为未锁定

答案 2 :(得分:1)

根据我的经验,微型SD卡可以轻松停止运行。我现在已经两次使用不同的SD卡品牌了,写入sd停止运行,你的文件系统坏了,不能再做多了。有时您可以通过从其他设备复制数据来保存数据,只读安装卡。

我的假设是SD卡并不像操作系统/交换盘那样特别好,因为我认为写入总数和粒度都有限制。尽管如此,服务器现在还配备了ssd - 但这些可能会在内部大量缓存。

答案 3 :(得分:0)

我的Raspberry Pi发生了类似的事情。它对我有用的是SD协会的SD卡格式化器(https://www.sdcard.org/downloads/formatter_4/),可用于Mac和Windows,虽然我的4GB卡需要相当长的时间。

首先,下载安装并运行该应用程序。 插入SD卡并选择驱动器号,然后按格式化。 等到它达到100%。

如果报告的容量不正确,请尝试EaseUS Partition Master(http://www.partition-tool.com/)(它也捆绑了其他一些软件,因此请务必在安装时取消勾选/取消选择它们)。如果您看到任何未分区的空间,那么可能就是它。

如果我不推荐任何适用于Linux的工具,我很抱歉,我在Linux上也尝试过,但似乎没有什么对我有用。

这里的答案也可能对您有用:https://raspberrypi.stackexchange.com/questions/1446/how-can-i-reformat-my-sd-card-to-use-it-normally-again

或者这个:

https://raspberrypi.stackexchange.com/questions/9656/i-have-a-16gb-sd-card-that-is-now-only-55mb-how-do-i-get-15-945gb-back?lq=1

答案 4 :(得分:0)

以管理员身份启动CMD提示并按照以下步骤操作。每一行都是一个新命令。

diskpart

list disk

select disk {{disk_number}} //Select the disk you would like to remove the partition from

list part

select part {{partition_number}} //Select the partition you would like to remove from the selected disk

delete part //Make sure you remove the correct partition!

create part pri

exit