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.
論理ボリュームをまったくマウントできないのですが、誰かがこの問題の解決を手伝ってくれますか?
ボリュームとファイルシステムのサイズを間違った順序で変更しようとしたようです。
縮小の場合、この順序でアクションを実行する必要があります
growingの場合、この順序でアクションを実行する必要があります
私が最初に行うことは、dd
を使用してドライブ全体をスペアドライブに複製し、このドライブでリカバリを行うことです。
運が良ければ、LVの使用可能なエクステントをまったく使用せず、ディスク上のブロックが変更されていない場合は、LVのサイズを以前のサイズに戻してから、fsck
(ファイルシステム上)。 fsck
に合格すると、ファイルシステムのサイズを変更できます。
それでもfsck
でエラーが発生する場合は、修復不可能な損傷を与えている可能性があります。
lvresize
は、追加の引数-r|--resizefs
を渡すときにファイルシステムのサイズ変更をサポートするようになりました。これにより、特定の順序でサイズを変更する必要がなくなり、エラーの可能性が大幅に減少します。
論理ディスクのサイズを変更しました、/dev/mapper
そして私はエラーを受け取りました:
スーパーブロックまたはパーティションテーブルのいずれかが破損している可能性があります。
解決策は、破損したパーティションでこの順序を作ることでした:
[root@localhost]# mke2fs /dev/mapper/VolGroup-lv_home && fsck /dev/mapper/VolGroup-lv_home
そしてそれがすべてです。
考えられる解決策の1つは、ファイルシステムを100 GB拡張することですが、データが失われる可能性があります。目的のファイルシステムのバックアップをとってください。
# lvextend -L +100G /dev/vg_dev/lv_home
# resize2fs /dev/vg_dev/lv_home
その後、ファイルシステムをマウントできます。
これで問題が解決することを願っています。
明らかに、ファイルシステムのスーパーブロックのみが破損しています。この問題を修正するには、ext2/3ファイルシステムの場合、次のコマンドを実行します。
mke2fs -S/dev/XXX && fsck/dev/XXX
/ dev/XXXは、対応するデバイスに置き換える必要があります。他のFSの場合、対応するmkfsコマンドを使用することが想定されています。 「-S」オプションを使用すると、スーパーブロックとグループ記述子のみが再初期化されます。グループ記述子を修正/調整するために、最初のコマンドの直後に "fsck"コマンドを実行します。