ファイルシステムのサイズ変更を完了する前に、サーバーを誤って再起動しました。再起動する前に正常に実行されたコマンドは次のとおりです。
lvresize -L -400GB /dev/mapper/vg_yavin-lv_home
起動時に、このエラーが発生します
/dev/mapper/vg_yavin-lv_home: UNEXPECTED INCONSITENCY run fsck MANUALLY
fsck -y /dev/mapper/vg_yavin-lv_home
を試みると、次のようになります。
e2fsck 1.41.12 (17-May-2010)
Error reading block 63471616 (Invalid argument). Ignore error? yes
Force rewrite? yes
Error writing block 63471616 (Invalid argument). Ignore error? yes
Superblock has an invalid journal (inode 8).
Clear? yes
*** ext3 journal has been deleted - filesystem is now ext2 only ***
Superblock has_journal flag is clear, but a journal inode is present.
Clear? yes
The filesystem size (according to the superblock) is 127047680 blocks
The physical size of the device is 22190080 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort? yes
Error writing block 63471616 (Invalid argument). Ignore error? yes
Fstabでそのファイルシステムをコメントアウトすると、起動できますが、そのファイルシステムを回復する方法はありますか?
ProTip:それが言うとき
fsck
を手動で実行する
それが実際に意味することは
fsck
をインタラクティブモードで実行し、出力を評価して、実行する処理を決定します
「盲目的に-y
それは他の誰もがしているようで、何も傷つけないからです。」.fsck -y
は破壊的である可能性があります。これがデフォルトの動作ではない理由です。
かなり深刻な破損があるようです(「ブロック63471616の読み取りエラー」ビットにより、物理的なディスクの損傷の可能性があると思われます)。率直に言って、fsck
によって状況が悪化した可能性があります。
バックアップがある場合は、今がそれらを使用する時です。そうでない場合、データが重要であれば、パーティションをイメージ化します(イメージで debugfs のような回復ツールを実行してみてください)。
最終的には、おそらくnewfs
(またはmkextfs
、Linuxの同等機能が何であれ)パーティション-ifこれは、物理ディスクの障害が原因ではないことは確かです。
次の方法ではデータが返されないことに注意してください。ボリュームグループのメタデータが復元される場合があります。製品ガイドのlvmドキュメントをいつでも読むことができます。これから説明するコマンドの詳細な説明があります。
Fstabでfsをコメント化してから起動します。次に、lvresizeを実行したVGを見つけます。 vg_yavinだと思います。
これを実行
vgcfgrestore --list <VG-NAME>
これにより、重要な操作が実行される前のVGのブレークポイントのリストが表示されます。 lvresize操作に対応するファイルを見つける必要があります。理論的には最新のものである必要があります。
そのファイルで実行
vgcfgrestore --file /etc/lvm/archive/<file-name> <VG-NAME>
これにより、lvresizeの前にVGのメタデータが復元されます。
正常に起動し、機能するかどうかを確認します。
エラーメッセージで、fsのデフォルトのスーパーブロックが破損しています。 dumpe2fs出力が機能している場合は、存在するはずのバックアップスーパーブロックで起動してみてください。その後
e2fsck -b <backup_sb> <disk-name>
しかし、腐敗とfsがいかにひどいかによって、それはすべて確率です。
最後の質問を考えると、おそらくresize2fs
指示通りに。現在、ボリュームは縮小していますが、ファイルシステムはそれに合わせて縮小していません。そうして、もう一度fsck
を実行すれば、うまくいけば大丈夫です。