LVM関連パッケージを削除してしまった場合の復旧方法

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):

f:id:savakan:20150728223125p:plain


このような場合には、以下のような手順で復旧できる。

起動メッセージが止まったところで、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

これで正常にマウントされて起動する。