ファイルシステムを縮小したいのですが、残念ながら次のステップを見逃しました。
ファイルシステムのサイズを変更する代わりに、論理ボリュームを縮小しました。
その結果、システムが起動しなくなり、ファイルシステムが破損しているというメッセージが表示されます。
[root@node2 ~]# mount -a
mount: wrong fs type, bad option, bad superblock on /dev/mapper/vgprod-prod,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
[root@node2 ~]# e2fsck -f /dev/mapper/vgprod-prod
e2fsck 1.42.9 (28-Dec-2013)
Error reading block 65536 (Invalid argument). Ignore error<y>? yes
Force rewrite<y>? yes
Superblock has an invalid journal (inode 8).
Clear<y>? yes
*** ext3 journal has been deleted - filesystem is now ext2 only ***
Superblock has_journal flag is clear, but a journal inode is present.
Clear<y>? yes
The filesystem size (according to the superblock) is 115712 blocks
The physical size of the device is 64512 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? yes
Error writing block 65536 (Invalid argument). Ignore error<y>? yes
/dev/mapper/vgprod-prod: ***** FILE SYSTEM WAS MODIFIED *****
これらの問題を解決する方法を教えてください。
答え1
広範囲の損傷を引き起こす可能性がある変更を行う前に、現在の状態の物理ボリューム(例:)をセクタごとにコピーして、変更されていないdd if=/dev/sdXY of=/path/to/safe/place.img
場所に保存してください。pvdisplay
コピーするパーティションを知るために使用されます。最悪の場合(ファイルシステムが損傷しすぎて内容が理解できない場合)にも使用できます。テストディスク(ファイルシステムがLVMパーティションの連続ブロックにある場合):
- 走る
testdisk /path/to/image.img
- 「パーティション化されていないメディア」の選択:
testdisk
LVMに書き込む方法がわかりませんが、見つかったパーティションから読み続けます。 - 分析を使用してパーティションを検索します。ファイルシステムが見つからない場合は、詳細検索を使用します。
- Pを使用してファイルを一覧表示し、/:選択aし、c/Cファイルをコピーします。
失敗したLVMパーティションがrootfsをホストしていないと仮定し、/etc/lvm
ディレクトリもバックアップします。このパーティションがrootfsをホストしている場合は、以前のバックアップにこのディレクトリが含まれている可能性があります。私たちはそれが必要です。他のすべての方法が失敗しても、/etc/lvm/
16進エディタと文字列検索を使用してファイルの内容を検索することはまだ可能ですdescription =
が(断片化されていないと仮定)、非常に長いプロセスです。
まだinitramfsシェルにあり、画像を保存するのに十分な空きHDDスペースがない場合は、幸運な場合(USBストレージやその他のモジュールがinitramfsにあります)、USB-HDDをインストールできます。
- ドライブを接続して回転するまで数秒間待ちます。
- カーネルメッセージが表示されることがあります。それ以外の場合は、以下を実行してください。
dmesg | tail
- 次の行を見つけてください(サイズを比較してUSB-HDDであることを
[ 8391.759613] sd 6:0:0:0: [sdX] 15826944 512-byte logical blocks: (8.10 GB/7.55 GiB)
確認してください)。 (ここでsdX1 ... sdXnはパーティションのリストです。)sdX
[ 8391.770279] sdX: sdX1
ランニング:
mkdir -p /mnt/usb-hdd # ensure existing mountpoint mount /dev/sdXN /mnt/usb-hdd # substitute X for the drive letter and N for the partition number from (3)
バックアップイメージの書き込みおよび/または
/etc/lvm
回復されたバックアップのコピー/mnt/usb-hdd
- 完了したら、サムドライブをマウント解除することを忘れないでください。
umount /mnt/usb-hdd
完了したら、現在のコンテンツ/etc/lvm/backup
と/etc/lvm/archive
rootfsまたはバックアップから取得した内容を確認してください。実行前にバックアップメタデータが作成され、lvresize
破損する可能性があります。説明を一覧表示するdescription =
には、このディレクトリ内のファイルを見てくださいgrep description .../etc/lvm/*/*
。まだinitramfsシェルにある場合、または(失敗した場合)および+ / +を使用してless
テキストmore
ファイルcat
をShift確認PgUpしShiftてくださいPgDn。ファイルがありますかCreated *before* executing 'lvresize -l <something> /dev/vgprod/prod'
?実行してvgcfgrestore -f /etc/lvm/archive/<suitable archive file> vgprod
メタデータを以前の値に復元し、マウントを試みます/dev/vgprod/prod
。
fsck
この場合、ファイルを正常にコピーし、そのファイルが安全であることを確認または回復できると確信しているパーティションのイメージを作成するまで、何もしないでください。fsck
切り捨てられたファイルシステムでは、状況がさらに悪化する可能性があります。