fsckはfsckを実行しません(スーパーブロックフラグを設定できません)。

fsckはfsckを実行しません(スーパーブロックフラグを設定できません)。

fsckSDカードベースのデバイスが異常終了した後、ルートファイルシステムからSDカードを取り外しました。これにより、以下が変更されました。

e2fsck 1.43.1 (08-Jun-2016)
/dev/sdc2: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? no
Clear journal<y>? no
e2fsck: unable to set superblock flags on /dev/sdc2

ここで私は両方とも「いいえ」と答えましたが、すぐに同じ結果につながるYES / NOシーケンスはありません。

ファイルシステムがマウントされ、通常のチェックでは問題がないことがわかりました。ルートファイルシステムであるデバイスでも正常に動作します(実際には悪いです。コメントを参照してください。修復できないほど破損したいくつかのディレクトリがあります)。

ddパーティション(8GB)をファイルに書き込み、fsckを試しました。楽しく:

e2fsck 1.43.1 (08-Jun-2016)
plush.rootfs: recovering journal
Clearing orphaned inode 18290 (uid=0, gid=0, mode=0100644, size=34096)
Clearing orphaned inode 18270 (uid=0, gid=0, mode=0100644, size=38916)
Clearing orphaned inode 18250 (uid=0, gid=0, mode=0100644, size=1128076)
Clearing orphaned inode 11411 (uid=0, gid=0, mode=0100644, size=293108)
Setting free inodes count to 406127 (was 408580)
Setting free blocks count to 1305622 (was 1347486)
plush.rootfs: clean, 60209/466336 files, 604906/1910528 blocks (check after next mount)

その後、fsckクリーニングを介して画像をマウントしてfsck -f通過させることもできます。

ただし、ネイティブブロックコピーイメージが作成されたカードのファイルシステムにはまだ同じ問題があります。ただし、systemd-fsck起動中にファイルシステムが「クリーン」として記録される場合は除外されます。ただし、正しく閉じた後にカードを取り出し、fsck別のボックスで再試行すると、同じエラーが発生します。

ソースファイルが別のシステムにインストールされるたびに、システムログに次のものが記録されます。

kernel: EXT4-fs (sdc2): 4 orphan inodes deleted
kernel: EXT4-fs (sdc2): recovery complete

すべてがバックアップされているので、ここでは何でも試してみたいと思います。単純に忘れて修正されたように見えるイメージからパーティションを再度書き込むことができますが、fsckが奇妙にもマイナーに見える問題を解決できないと仮定するのはそれほど満足のいく解決策ではないようです。

私はこれが次のことに関連する「公式文書の要求」の問題になると思います。フラグを復元する必要があります(または単なる「これはどういう意味ですか?」という質問)ですから、これらの内容の提案をいただきありがとうございます。

ベストアンサー1

ちょうど同じ問題が発生しました。メンテナンス担当者と一緒に問題をデバッグした結果、e2fsckSDカードが破損していることがわかりました。エラーなしで書き込みを許可しますが、実際にカードにデータを書き込むことはありません。 SDカードは実際に読み取り専用です。

カードが一種のセーフモードに切り替わったようで、まだデータを読み取ることはできますが、何も書き込めません。

このe2fsckメッセージは、unable to set superblock flagsログを処理済みとしてマークするためにスーパーブロックを書き込もうとします。これはエラーがないことを意味しますが、スーパーブロックの再読み込み時にまだログを再生する必要があることを示します。つまり、スーパーブロックに書き込まれた変更は記憶媒体に保存されません。

私が使っているこの問題のあるカードは、Samsung Evo 16GB microSDです。このカードの一般的な問題である場合に備えて言及します。

ddブロック0のカードに4096バイトを書き込んでから、カードから読み直してそれをテストすることができました/dev/zero

これで、データを新しいカードに転送し、SDカードに10年保証を提供すると思われるサムスンから交換用カードを受け取ることができるかどうかを確認しています。

アップデート:サムスンは、同じEvoシリーズで16GBカードを32GBカードに交換したため、大いに文句を言うことはできないようです!

おすすめ記事