概要
- online(mount中)のlogical volumeのサイズをいきなり変更したら、ファイルシステムがバグってしまってOSがおかしくなって起動しなくなりました。
- そもそもumountしろという感じですが、EC2のEBSはオンラインで容量が拡張できるから逆に縮小もできると思い、実行してみたけど順番が違かった。。。
- raidのディスク構成を変更したかったので、830GB位あるlogical volumeを300GBに変更したかったのです。
問題のコマンドはこちら
↓オンライン中に実行してはいけません。
root@dell /h/matsu# lvreduce -L 300G /dev/mapper/dell--vg-root WARNING: Reducing active and open logical volume to 300.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce dell-vg/root? [y/n]: y Size of logical volume dell-vg/root changed from 834.44 GiB (213617 extents) to 300.00 GiB (76800 extents). /etc/lvm/backup/dell-vg.tmp: fsync failed: Input/output error /etc/lvm/backup/dell-vg.tmp: fclose failed: Read-only file system Backup of volume group dell-vg metadata failed. Logical volume dell-vg/root successfully resized.
THIS MAY DESTROY YOUR DATA (filesystem etc.) って書いてあるし。。。。コマンド実行中にもIOエラーが表示されちゃってますね。やばいです。
lvmの構成情報は/etc/lvm/backup以下にバックアップされるのですが、/etc/にすでに書き込めなくなっちゃっているようです。その後はshellがおかしくなり、コマンドが徐々に打てなくなってきたのでrebootしました。
もちろん、rebootしても正常に起動できないのでinitramfsが起動します。fsckを実行しても訂正されることはありません。fsckでチェックする領域は別のようです。
本来の手順
こちらの書き込みでは、以下のように説明されています。
- unmountするか、オンラインでやるなら最初にresize2fs(使っているファイルシステムによってコマンドは異なる)などでファイルシステムのサイズを変更する。
- logical volumeを縮小する
- phisical volumeを縮小する
上記の記事から、認知していないといけないレイヤーの整理をいかに記載します。
- ファイルシステム
- Logical Volume
- Volume Group
- Phisical Volume
- Partition
今回は、ファイルシステム上では変更前の800GBですが、Logical Volumeがいきなり300GBになったのでおかしくなりました。
復旧へ
- Ubuntuのboot diskをUSBメモリに焼いて起動します。
- 端末を立ち上げて、コマンドを打ちます。
ということで、Logical Volumeを、空き領域に対して全部使うように変更します。
root@ubuntu:/home/ubuntu# lvscan ACTIVE '/dev/data-vg/data' [<3.64 TiB] inherit ACTIVE '/dev/dell-vg/root' [534.45 GiB] inherit ACTIVE '/dev/dell-vg/swap_1' [976.00 MiB] inherit root@ubuntu:/home/ubuntu# lvresize -l +100%FREE /dev/mapper/dell--vg-root Size of logical volume dell-vg/root changed from 534.45 GiB (136820 extents) to 834.45 GiB (213620 extents). Logical volume dell-vg/root successfully resized. root@ubuntu:/home/ubuntu# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data data-vg -wi-a----- <3.64t root dell-vg -wi-a----- 834.45g swap_1 dell-vg -wi-a----- 976.00m
fsckしてrebootします。
root@ubuntu:/home/ubuntu# fsck /dev/mapper/dell--vg-root fsck from util-linux 2.34 e2fsck 1.45.5 (07-Jan-2020) Clearing orphaned iノード 46935860 (uid=1000, gid=1000, mode=0100644, size=400721) Clearing orphaned iノード 46932279 (uid=1000, gid=1000, mode=0100644, size=400542) Clearing orphaned iノード 51380233 (uid=115, gid=125, mode=0100600, size=0) Clearing orphaned iノード 51381297 (uid=115, gid=125, mode=0100600, size=0) Clearing orphaned iノード 51381296 (uid=115, gid=125, mode=0100600, size=0) Clearing orphaned iノード 51380238 (uid=115, gid=125, mode=0100600, size=4563) Clearing orphaned iノード 17703601 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 17703596 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 17703594 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 17703593 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 17312060 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 17312056 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 17312055 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 17312054 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 15213286 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 15213285 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 15213284 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 15213283 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 12459447 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 12459443 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 12459439 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 12459438 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 18095575 (uid=0, gid=0, mode=0100644, size=776264) Clearing orphaned iノード 12194905 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 12194904 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 12194903 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 12194895 (uid=999, gid=999, mode=0100600, size=0) Clearing orphaned iノード 2883690 (uid=104, gid=4, mode=0100640, size=1642249) Clearing orphaned iノード 2884265 (uid=0, gid=0, mode=0100644, size=339) Clearing orphaned iノード 51380226 (uid=0, gid=0, mode=0100666, size=0) Setting free iノードs count to 52970465 (was 53008249) Setting free blocks count to 172967006 (was 173674078) /dev/mapper/dell--vg-root: clean, 1719327/54689792 files, 45776802/218743808 blocks root@ubuntu:/home/ubuntu# reboot
エラーがたくさんありますが、だいたい良い感じに直ったようです。
まとめ
- lvresizeでもとに戻して、ちゃんと起動しました。よかった。。。
Comments