web-dev-qa-db-ja.com

mkfsを使用したSDカードのフォーマットが無期限にハングする

this ガイドに従って、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の2つのパーティションを作成できました。次に、100 MBのパーティションをFAT32としてフォーマットしてマウントします。この問題が発生しているのはext4 7.3 GBのパーティションです。

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カードを取り外してメインマシンに再挿入し、新しく作成およびフォーマットされたパーティションへのデータのコピーを完了しました。

7
sherrellbc

カーネル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

[2015年11月30日]に修正されたバグを含む、他のext4バグがあります。

https://lists.ubuntu.com/archives/foundations-bugs/2015-November/259035.html

また、ext4の構成オプション、および電源障害によるext4の破損の可能性について話している非常に興味深い記事もあります。

http://www.pointsoftware.ch/en/4-ext4-vs-ext3-filesystem-and-why-delayed-allocation-is-bad/

私はext4以外のファイルシステム、おそらくext3でカードをテストします。

Ext4でのこれらの体系的なバグは、私が作業しているサーバーファームのJessieのdebianバックポートリポジトリからlinux-image-4.3.0-0.bpo.1-AMD64を使用している理由の1つです。

特にあなたのバージョン、カーネル3.13はバグの影響をより受けているようです。

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1298972https://bugs.launchpad.net/ubuntu/+source/linux/+バグ/ 1389787

多分あなたの側の設定とハードウェアのいくつかの組み合わせが通常よりも多くバグを引き起こしていることはさておきません。

また、SDカードは磨耗により破損します。ジャーナリングファイルシステムのため、ext4fsシステムはSDカードには理想的ではありません。好奇心として、私はLamobo R1を使用しており、SSDディスクでカーネルを起動するためだけにSDカードを使用しています。

http://linux-sunxi.org/Lamobo_R1

3
Rui F Ribeiro