- 论坛徽章:
- 0
|
好久没来这了,想死大家了。
我最近大概鬼上身了,接连遇到不顺的事,最倒霉的是我刚装了有线通就中了Lovegate病毒,
结果我连续奋战数夜结果还是败下阵来,瑞星、熊猫、诺顿、信源都试过了还是杀不干净,
硬盘上有20G宝贝,实在不舍得低格,不知各位有没有高招啊,先在这谢过了。
昨天遇到一LVM的问题,现把解决过程简单写一下。
1. 系统启动时发现有一块磁盘无法加入原来的VG,
发现问题是在某一应用启动时报can not query /dev/vgXX/lvYY, 无法访问某一LV信息。
(由于当时情况比较紧急,所以具体的报错信息没有记录,只能凭记忆请大家原谅)
# lvdisplay -v /dev/vgXX/lvYY
发现该LV所属PV 显示??? (说明该LV所在PV的LVM信息无法获取)
# diskinfo /dev/rdsk/cXtYdZ
显示结果正常,说明磁盘没坏,只是VGDA(Volume Group Description Area)丢了。
# vgchange -a n vgXX
# vgexport -p -m /tmp/vgXX.map -f /tmp/pvlist vgXX
# vgexport vgXX
# mkdir /dev/vgXX ; mknod /dev/vgXX/group c 64 0x010000
# vgimport -m /tmp/vgXX.map vgXX `cat /tmp/pvlist | xargs`
试图让系统重读该PV上的LVM信息。
# vgdisplay -v /dev/vgXX
Cur PV: 24
Act PV: 23
# strings /etc/lvmtab
发现无该PV,磁盘上VGDA信息无法获取,当然此时可以pvcreate -f /dev/rdsk/cXtYdZ
然后重新vgextend 该盘,然后再用磁带导回数据,但如果不想这样麻烦,就必须要将LVM配置信息恢复回该PV
系统在每次LVM配置改变时会将LVM configuration 自动保存到 /etc/lvmconf目录下vgXX.conf文件。
# vgcfgrestore -n /dev/vgXX -l
显示Auto-saved LVM configuration file的内容,发现该盘在其中,但磁盘记录只有23条,
少了另1块磁盘的记录。找到这块盘,这块盘是后来新加的,奇怪,怎么会没有自动更新LVM信息(缺省是自动的啊)
来不及想那么多了,还是先恢复吧。
我想先把/etc/lvmconf/vgXX.conf中的LVM信息先恢复到import 不进来的PV上,
# vgcfgrestore -n /dev/vgXX /dev/dsk/cXtYdZ
系统报错: Invalid LVMRC for /dev/dsk/cXtYdZ,
没办法,只能用 -F 参数(具体用法见manual of vgcfgrestore)
Successful!
# vgextend /dev/vgXX /dev/dsk/cXtYdZ
系统报: Device Busy!
这好像是只有在PV未被pvcreate时报的错,PVRA(Physical Volume Reservation Area)信息可能也有问题。
Mmm.... 有没有办法呢,哈,有了,用vgimport, 反正现在该PV上已经有VGDA信息了,系统只要读到VGDA信息
就会将其import 到相应的VG, just try it!
# vgchange -a n vgXX
# vgexport -p -m /tmp/vgXX.map -f /tmp/pvlist vgXX
# vgexport vgXX
# mkdir /dev/vgXX ; mknod /dev/vgXX/group c 64 0x010000
# vgimport -m /tmp/vgXX.map vgXX `cat /tmp/pvlist | xargs`
Import successfully!
# vgdisplay -v /dev/vgXX
# lvdisplay -v /dev/vgXX/lvYY
Error Messages disappear.
启动应用,OK!
# vgcfgbackup /dev/vgXX
# lvlnboot -R
# vgcfgrestore -n /dev/vgXX -l
结果显示另一块PV的信息也Save 到 /etc/lvmconf/vgXX.conf。
但我怀疑刚才vgextend不进来的PV的PVRA受损,等下次有机会再试吧。
Commands Referred: vgscan, vgcfgbackup.vgcfgrestore,vgextend,vgexport,vgimport,mknod
Files Referred: /etc/lvmconf/vgXX.conf, /etc/lvmrc, /etc/lvmtab |
|