pv=clear后的修复
chdev -l hdiskX -a pv=clear
chdev -l hdiskX -a pv=yes
之后虽然数据还在,但是PVID被更改。如果能找回原来的PVID,并覆盖掉pv=yes后新的PVID,就能找回数据。整个过程分为三个步骤:
1,找到原来的PVID
2,覆盖新的PVID
3,更新ODM
对于老手,这些操作不是很复杂,但是对于我等新手就比较麻烦了。因此我写了个工具,来帮助完成某些工作。
其实说穿了也不神奇,每个PV的头部都记录了PVID,其位置是固定。每个PV的VGDA中都有PVID列表,记录了属于该VG的所有PV的PVID。VGDA的位置是随着VG的版本不同而不同的。根据VGDA中的PVID列表,一个个去找哪些PVID在系统中是还有的,那么剩下最后一个就是pv=clear前的PVID。将这个PVID写回PV头部。这就完成了第1和第2步。第3步通过odmchange修改ODM中的PVID,修改回原来的PVID
附件解开后是chkvgda.exe可执行文件。
测试流程:
#lspv
......
hdisk4 00c10fea8e2b48ca testvg active
hdisk5 00c10feac82cdafb testvg active
hdisk6 00c10fead24d2663 testvg active
hdisk7 00c10fead24d2831 testvg active
#lsvg -l testvg
testvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
jfs2test jfs2 2 2 2 open/syncd /tmp/jfs2test
loglv00 jfs2log 1 1 1 open/syncd N/A
#lslv -m jfs2test
jfs2test:/tmp/jfs2test
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0001 hdisk4
0002 0001 hdisk5
#ll /tmp/jfs2test
total 10400
drwxr-xr-x 2 root system 256 Jan 01 02:25 lost+found
-rw-r----- 1 root system 5324800 Jan 01 02:26 test.tar
#umount /tmp/jfs2test
#varyoffvg testvg
#chdev -l hdisk4 -a pv=clear
hdisk4 changed
#lspv
......
hdisk4 none None
hdisk5 00c10feac82cdafb testvg
hdisk6 00c10fead24d2663 testvg
hdisk7 00c10fead24d2831 testvg
#chdev -l hdisk4 -a pv=yes
hdisk4 changed
#lspv
hdisk4 00c10fea8e521b10 None
hdisk5 00c10feac82cdafb testvg
hdisk6 00c10fead24d2663 testvg
hdisk7 00c10fead24d2831 testvg
#varyonvg testvg
0516-008 varyonvg: LVM system call returned an unknown error code (3).
#exportvg
#importvg -y testvg hdisk5
PV Status: hdisk4 00c10fea8e521b10 INVPVID
hdisk5 00c10feac82cdafb PVACTIVE
hdisk6 00c10fead24d2663 PVACTIVE
hdisk7 00c10fead24d2831 PVACTIVE
00c10fea8e2b48ca NONAME
varyonvg: Volume group testvg is varied on.
0516-510 synclvodm: Physical volume not found for physical volume identifier 00c10fea8e2b48ca0000000000000000.
0516-548 synclvodm: Partially successful with updating volume group testvg.
testvg
PV Status: hdisk5 00c10feac82cdafb PVACTIVE
hdisk6 00c10fead24d2663 PVACTIVE
hdisk7 00c10fead24d2831 PVACTIVE
00c10fea8e2b48ca NONAME
varyonvg: Volume group testvg is varied on.
#lspv
hdisk4 00c10fea8e521b10 None
hdisk5 00c10feac82cdafb testvg active
hdisk6 00c10fead24d2663 testvg active
hdisk7 00c10fead24d2831 testvg active
#lsvg -l testvg
testvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
jfs2test jfs2 2 2 2 closed/syncd N/A
loglv00 jfs2log 1 1 1 closed/syncd N/A
#dd if=/dev/hdisk4 of/tmp/hdisk4 bs=4m count=1
#dd if=/dev/hdisk5 of/tmp/hdisk5 bs=4m count=1
#dd if=/dev/hdisk6 of/tmp/hdisk6 bs=4m count=1
#dd if=/dev/hdisk7 of/tmp/hdisk7 bs=4m count=1
将/tmp/下的hdisk4~hdisk7下载到本地的testvg目录中,testvg目录和chkvgda.exe在相同一个目录中。至少要有3个hdisk的头部,只支持svg
执行chkvgda两次,第一次会产生信息说hdisk4的pvid不正确,告知了正确的PVID,并修复。第二次就正常了,没有报错信息
将hdisk4上传到机器上,例如/tmp/hdisk4,并用dd覆盖掉/dev/hdisk4的头部
#dd if=/tmp/hdisk4 of=/dev/hdisk4 bs=4m count=1
#odmget -q "name=hdisk4 and attribute=pvid" CuAt > /tmp/CuAt.txt
#编辑/tmp/CuAt.txt,修改回正确的PVID
#odmchange -o CuAt -q "name=hdisk4 and attribute=pvid" /tmp/CuAt.txt
#lspv
hdisk4 00c10fea8e2b48ca None
hdisk5 00c10feac82cdafb testvg active
hdisk6 00c10fead24d2663 testvg active
hdisk7 00c10fead24d2831 testvg active
#exportvg
#importvg -y testvg hdisk5
testvg
#
#lsvg -l testvg
testvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
jfs2test jfs2 2 2 2 closed/syncd /tmp/jfs2test
loglv00 jfs2log 1 1 1 closed/syncd N/A
#mount /tmp/jfs2test
#df -k
......
/dev/jfs2test 131072 125524 5% 5 1% /tmp/jfs2test
[ 本帖最后由 mike79 于 2009-1-1 23:27 编辑 ]
pv=clear后的修复相关推荐
- 服务器断电重启修复,WIN取消100M隐藏分区、异常断电后绕过修复模式
1,安装win系统时取消100M的前置隐藏分区的办法: 安装系统时,进行到安装Windows界面时,不使用图形界面的新建(E)进行分区,直接按快捷键Shift+F10打开CMD命令行,输入以下命令进行 ...
- linux反复出现文件系统损坏,Linux日常维护之文件系统损坏后的修复
Linux文件系统损坏后的修复技巧详细介绍 在日常运维中,经常会遇到文件系统损坏的问题,如下图: Linux不正常关机,有时候再次启动时会报文件系统损坏,如何修复文件? 首先会让你输入root用户的密 ...
- 工具:语雀导出MarkDown文档后图片修复
微信公众号:乌鸦安全 扫取二维码获取更多信息! 01 描述 在比较早的时候,我比较纠结记笔记的产品,最初的时候是在使用Typora在本地写Markdown文档,后来试用了一下印象笔记,但是它的缺点 ...
- 如何使用计算机蠕虫病毒软件,incaseformat蠕虫病毒是什么?电脑若中病毒后如何修复。...
原标题:incaseformat蠕虫病毒是什么?电脑若中病毒后如何修复. 昨天开始 国内各家安全大厂都发出预警 提醒电脑用户"incaseformat"蠕虫病毒 已再度开始发作 什 ...
- 怎样恢复安装计算机,计算机安装双系统后如何修复系统引导 修复系统引导的方法...
知友提出问题:电脑双系统怎么用,我装的是win8和win7.win8安装在C盘上,可以正常使用,我把win7安装在一个新分区的盘符上G盘,为什么开机没有win7系统选择项启动,只有一个win8和GHO ...
- grub引导项修复详解_重新安装win7后,修复Grub启动项
重新安装win7后,修复Grub启动项 发布时间:2010-09-14 22:14:00来源:红联作者:null925 [i=s] 本帖最后由 null925 于 2010-9-14 22:18 编辑 ...
- 记csdn打不开或打开缓慢后的修复--如何查找dns并修改hosts文件
记csdn打开缓慢后的修复–如何查找dns并修改hosts文件 问题: CSDN文章打开的十分缓慢,经常出现无法打开页面的错误提示 (以前用的好好的,现在不知道公司局域网改了什么东西,导致我的电脑打开 ...
- laravel清理缓存(config:clear)后导致程序崩溃
laravel清理缓存(config:clear)后导致程序崩溃 前情提要:导致这个错误的可能性有很多,如此不人性化的提示是因为在config:clear后laravel重载出错,然后尝试从log输出 ...
- linux错误关机修复工具,Linux_Linux文件系统损坏后的修复技巧详细介绍, Linux不正常关机,有时候再 - phpStudy...
Linux文件系统损坏后的修复技巧详细介绍 Linux不正常关机,有时候再次启动时会报文件系统损坏,如何修复文件? 首先会让你输入root用户的密码. 1)出错的时候如果告诉你是哪一块硬盘的分区有问题 ...
最新文章
- angular4 note
- c语言作业 龟兔赛跑,c语言龟兔赛跑
- IDEA使用Maven打包时如何去掉测试阶段
- ELK技术栈—Logstash—基础介绍
- Android—Window、WindowManage、屏幕绘制及刷新
- “这张图告诉你什么?”
- 最全android Demo
- Visual Studio中相对路径中的宏定义,你不了解的宏定义都在这里!
- 论文发表在什么期刊上_设计论文发表【期刊论文】设计论文发表
- BZOJ3680 吊打XXX
- windows批量上传文件到linux,windows上传文件到linux云服务器上
- 2021华为软挑赛题_思路分析——实时更新,做多少更多少(八)
- BI—SSIS初步认识
- 微信机器自动问答机器人
- 以太坊存储项目Swarm (代币bzz)1.0 主网正式上线
- 大数据模型案例库-涵盖多行业,超百个实战项目案例
- Keil_V5 MDK编译时出现:关于core_cm3.c的错误
- BZOJ1050 旅行comf(kruskal)
- 设计模式--创建型设计模式
- 安装Debian系统
热门文章
- ElasticSearch实践(三)Rest API简介
- jpa 原生sql 查询返回一个实体_spring data系列之jpa
- uFrame近况(2016年4月8日更新)
- 上海大学计算机网络实验报告3,上海大学计算机组成原理实验报告(全)
- oracle按用户采集信息,oracle 11g 手动收集用户统计信息
- 使用TensorFlow.js进行人脸触摸检测第2部分:使用BodyPix
- 使用Github Actions构建、发布和部署NuGet软件包
- CentOS 7.7(1908)发布
- android平台java编程规范_Android Java类编写规范+优化建议
- jpa初学 hibernate学习