web-dev-qa-db-ja.com

lvreduce後にLVM論理ボリュームパーティションが破損する

1つの論理ボリュームを縮小しようとすると、問題が発生します。私は次の手順が示すように行動を起こしました:

# unmount /home
# lvreduce --size -100G /dev/vg_dev/lv_home 
# lvdisplay /dev/vg_dev/lv_home 

--- Logical volume ---
LV Path                /dev/vg_dev/lv_home
LV Name                lv_home
VG Name                vg_dev
LV UUID                QOxrP3-nS36-nZTG-yL7e-sDi0-Wl9z-LXp4pJ
LV Write Access        read/write
LV Creation Host, time , 
LV Status              available
# open                 1
LV Size                197.98 GiB
Current LE             50683
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:4

# e2fsck -f /dev/vg_dev/lv_home

e2fsck 1.41.12 (17-May-2010)
The filesystem size (according to the superblock) is 78113792 blocks
The physical size of the device is 51899392 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>?

# resize2fs /dev/vg_dev/lv_home

resize2fs 1.41.12 (17-May-2010)
Please run 'e2fsck -f /dev/vg_dev/lv_home' first.

Picture of console.

論理ボリュームをまったくマウントできないのですが、誰かがこの問題の解決を手伝ってくれますか?

6
James Tang

ボリュームとファイルシステムのサイズを間違った順序で変更しようとしたようです。

縮小の場合、この順序でアクションを実行する必要があります

  1. ファイルシステムのサイズを変更する
  2. 論理ボリュームのサイズを変更する

growingの場合、この順序でアクションを実行する必要があります

  1. 論理ボリュームのサイズを変更する
  2. ファイルシステムのサイズを変更する

あなたの問題について

私が最初に行うことは、ddを使用してドライブ全体をスペアドライブに複製し、このドライブでリカバリを行うことです。

運が良ければ、LVの使用可能なエクステントをまったく使用せず、ディスク上のブロックが変更されていない場合は、LVのサイズを以前のサイズに戻してから、fsck(ファイルシステム上)。 fsckに合格すると、ファイルシステムのサイズを変更できます。

それでもfsckでエラーが発生する場合は、修復不可能な損傷を与えている可能性があります。

NB

lvresizeは、追加の引数-r|--resizefsを渡すときにファイルシステムのサイズ変更をサポートするようになりました。これにより、特定の順序でサイズを変更する必要がなくなり、エラーの可能性が大幅に減少します。

14

論理ディスクのサイズを変更しました、/dev/mapperそして私はエラーを受け取りました:

スーパーブロックまたはパーティションテーブルのいずれかが破損している可能性があります。

解決策は、破損したパーティションでこの順序を作ることでした:

[root@localhost]# mke2fs /dev/mapper/VolGroup-lv_home && fsck /dev/mapper/VolGroup-lv_home

そしてそれがすべてです。

ソース: スーパーブロックのサイズはパーティションの物理サイズとは異なります

2
davidleosam

考えられる解決策の1つは、ファイルシステムを100 GB拡張することですが、データが失われる可能性があります。目的のファイルシステムのバックアップをとってください。

# lvextend -L +100G /dev/vg_dev/lv_home 
# resize2fs /dev/vg_dev/lv_home 

その後、ファイルシステムをマウントできます。

これで問題が解決することを願っています。

1
user297751

明らかに、ファイルシステムのスーパーブロックのみが破損しています。この問題を修正するには、ext2/3ファイルシステムの場合、次のコマンドを実行します。

mke2fs -S/dev/XXX && fsck/dev/XXX

/ dev/XXXは、対応するデバイスに置き換える必要があります。他のFSの場合、対応するmkfsコマンドを使用することが想定されています。 「-S」オプションを使用すると、スーパーブロックとグループ記述子のみが再初期化されます。グループ記述子を修正/調整するために、最初のコマンドの直後に "fsck"コマンドを実行します。

0
Juri