SDカードベースのデバイスでのクリーンでないシャットダウンに続いて、SDカードをfsck
ルートファイルシステムに取り出しました。これにより、以下のバリエーションが生まれました。
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
ここでは両方とも「いいえ」と答えましたが、すぐに同じ結果につながらないはい/いいえのシーケンスはありません。
ファイルシステムはマウントすることができ、何気ない検査で大丈夫に見えます。これはデバイスでも正常に動作し、それがルートファイルシステムです(実際には、それほどうまくいかないことが判明しました。コメントを参照してください。回復不能な破損ディレクトリがいくつかあります)。
私はdd
「ファイルへのパーティション(8ギガバイト)をD、およびその上で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
別のボックスから再試行すると、同じエラーが表示されます。
オリジナルが別のマシンにマウントされると、syslogは次のように記録します。
kernel: EXT4-fs (sdc2): 4 orphan inodes deleted
kernel: EXT4-fs (sdc2): recovery complete
私はそれをすべてバックアップしているので、私はここで何でも試すことにオープンです。私はこれを忘れて、明らかに修正されたイメージからパーティションを再書き込みすることもできますが、それはfsckが軽微な問題の解決に不可解に失敗したと仮定することを意味するため、非常に満足のいく解決策ではないようです。
これは、recovery_flagの必要性などの「公式ドキュメントのリクエスト」の質問(または単に「これはどういう意味ですか?」の質問)に変わるのではないかと思います。
apt upgrade
)。その後、通常のブートをログに記録し、systemd-fsckは「クリーン」と表示します(編集します)が、そのコンテキスト外でfsckを試行すると失敗します。