今天在一个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表修复了。
转载于:https://blog.51cto.com/nxlhero/780849