CentOS-6にて、LVMでパーティション構成している環境で、うっかり(?)LVM関連パッケージを削除してしまった場合の復旧方法。
まずは、df コマンドの結果。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 645M 46G 2% / tmpfs 939M 0 939M 0% /dev/shm /dev/sda1 477M 25M 427M 6% /boot /dev/mapper/VolGroup-lv_home 2491G 63M 276G 1% /home
LVM関連のパッケージ
# rpm -qa | grep lvm
lvm2-libs-2.02.111-2.el6_6.3.x86_64
lvm2-2.02.111-2.el6_6.3.x86_64
ここで、LVM関連のパッケージを誤って削除してしまったとする。
# yum remove lvm2 lvm2-libs
OSを再起動すると、起動時のコンソールで以下のようなエラーが発生し、起動できなくなる。
・・・略 Checking filesystems /dev/mapper/VolGroup-lv_root: clean, 26706/32768000 files, 506800/13107200 blocks /dev/sda1: clean, 44/128016 files, 72131/512000 blocks fsck.ext4: No such file or directory while trying to open /dev/mapper/VolGroup-lv_home /dev/mapper/VolGroup-lv_home: The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 <device> [FAILED] *** An error occurred during the file system check. *** Dropping you to a shell; the system will reboot *** when you leave the shell. Give root password for maintenance (or type Control-D to continue):
このような場合には、以下のような手順で復旧できる。
起動メッセージが止まったところで、rootユーザのパスワードを入力して、シェルへ入る。
dfコマンドの結果を確認すると、/dev/mapper/VolGroup-lv_home がマウントできていない。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 645M 46G 2% /
LVM関連のパッケージを再インストールするよう試みる。
# yum install lvm2 lvm2-lib Loaded plugins: fastestmirror Cannot open logfile /var/log/yum.log Could not create lock at /var/run/yum.pid: [Errno 30] Read-only file system: '/var/run/yum.pid' Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 20M RSS (306 MB VSZ) Started: Fri Jul 24 22:27:54 2015 - 00:00 ago State :Running, pid: 694
正常にyumで処理されないので、Ctrl+Cで強制停止。
ファイルシステムがRead-Onlyでマウントされいるため、yum を実行できない模様。書き込みできるよう再マウントする。
# mount -o remount,rw /dev/mapper/VolGroup-lv_root: /
ネットワークサービスが起動していないので、手動で起動する。
# /etc/init.d/network start
LVM関連のパッケージを再インストールして再起動。
# yum install lvm2 lvm2-lib # reboot
これで正常にマウントされて起動する。