修复虚拟磁盘LVM表

今天在一个Xen半虚拟机里编译内核时磁盘不够用了,不过幸亏分区时用了LVM,可以扩展空间。

原先的分区如下:

/dev/xvda1 ==> /boot (100M)

/dev/xvda2 ==> VolGroup00 ==>  root(2.8G) swap(1G)

root分区不够用了。

好,我看/root目录里正好有一个fuck.img可以挂载上去,我记得是1G的,没有检查,结果记错了。

经过如下步骤:

pvcreate /dev/xvdb

vgextend VolGroup00 /dev/xvdb

lvextend -L +1G /dev/VolGroup00/LogVol00

说没空间了,我用800M,也没空间了,看了下,xvdb是49M,蛋疼。

(如果顺利的话,下一步resize2fs /dev/VolGroup00/LogVol00就完成任务了)

我想把这个pv从VolGroup00里去掉,由于对lvm不熟,用pvremove /dev/xvdb不行,说是要加-ff,于是加上了,出了警告。

然后重启虚拟机,发现重启不了了。

这就是那个虚拟机的硬盘

可以看到有两个分区

第二个分区是lvm

vgscan找不到VolGroup00,是因为其中一个pv没找到,就是强制删除的缘故。

这时实际上可以通过vgscan --partial,把里面的lv分区以只读方式挂载,不过由于缺少的那个pv没有任何数据,不用考虑恢复数据,因此就好办多了。

这样就把损坏的lvm表修复了。

你可能感兴趣的:(xen,虚拟磁盘,kpartx,pvremove,lvm修复)