我正在尝试格式化 SD 卡这指导。我能够成功创建分区表,但尝试使用 mkfs 格式化 Linux 分区会产生以下输出:
mke2fs 1.42.9 (4-Feb-2014)
Discarding device blocks: 4096/1900544
它似乎无限期地挂起。我已经让该进程运行了一段时间,但没有任何变化。如果我弹出 SD 卡,则 mkfs 会将预期输出写入终端:
mke2fs 1.42.9 (4-Feb-2014)
Discarding device blocks: failed - Input/output error
Warning: could not erase sector 2: Attempt to write block to filesystem resulted in short write
warning: 512 blocks unused.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
476064 inodes, 1900544 blocks
95026 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1946157056
58 block groups
32768 blocks per group, 32768 fragments per group
8208 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
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 (32768 blocks): done
Writing superblocks and filesystem accounting information: 0/58
Warning, had trouble writing out superblocks.
为什么 mkfs 报告我们正在“丢弃”块以及可能导致挂起的原因是什么?
编辑
我能够成功创建两个分区——一个 100MB,另一个 7.3GB。然后我可以将 100MB 分区格式化并挂载为 FAT32——这是 ext4 7.3GB 分区遇到的问题。
dmesg 充斥着:
[ 9350.097112] mmc0: Got data interrupt 0x02000000 even though no data operation was in progress.
[ 9360.122946] mmc0: Timeout waiting for hardware interrupt.
[ 9360.125083] mmc_erase: erase error -110, status 0x0
[ 9360.125086] end_request: I/O error, dev mmcblk0, sector 3096576
编辑2
当我尝试格式化为 ext4 时,问题似乎出现了。以我将7.3GB分区格式化为FAT32为例,操作成功。
编辑2
有趣的是,我将 SD 卡插入 BeagleBone 并按照与 Mint 上完全相同的方式对其进行格式化,一切都完美运行。我取出 SD 卡,将其重新插入主机,然后将数据复制到新创建和格式化的分区。
答案1
我实际上怀疑您被内核 3 和 4 中经常讨论的 ext4 损坏错误所困扰。看看这个线程,
http://bugzilla.kernel.org/show_bug.cgi?id=89621
不断有关于 ext4 文件系统损坏错误的报告,这些错误的设置各不相同。很多人在论坛里抱怨。该错误似乎会影响更多使用 RAID 配置的人。
然而,据说它们在 4.0.3 中得到了修复。
“4.0.3 修复了一个严重的 ext4 错误,该错误可能导致重大数据丢失。”
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785672
还有其他 ext4 错误,包括截至 [2015 年] 11 月 30 日修复的错误。
https://lists.ubuntu.com/archives/foundations-bugs/2015-November/259035.html
这里还有一篇非常有趣的文章,讨论了 ext4 中的配置选项,以及电源故障可能导致的损坏。
http://www.pointsoftware.ch/en/4-ext4-vs-ext3-filesystem-and-why-delayed-allocation-is-bad/
我会使用 ext4 以外的其他文件系统(也许是 ext3)来测试该卡。
ext4 的这些系统错误是我在工作的服务器场中使用来自 Jessie 的 debian backports 存储库的 linux-image-4.3.0-0.bpo.1-amd64 的原因之一。
特别是您的版本,内核 3.13 似乎更容易受到该错误的影响。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1298972 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1389787
我不会把它放在一边,也许你身边的某些配置和硬件组合比平时更容易触发该错误。
SD 卡也会因磨损而损坏,并且由于日志文件系统的原因,ext4fs 系统并不是 SD 卡的理想选择。出于好奇,我使用的是 Lamobo R1,并使用 SD 卡来启动内核,并使用 SSD 磁盘。