作者:张宇,北亚服务器数据恢复中心([url]http://www.datahf.net[/url]),转载请联系作者,如果实在不想联系作者,至少请保留版权,谢谢。
[问题]
当AIX 系统上的数据出现丢失,或VG结构损坏后,最安全地做法是对AIX损坏数据区镜像后,用镜像进行数据恢复操作。在数据恢复工作开展之前,如何安全的做AIX系统下的数据镜像?
[回答]
使用的工具是AIX下的dd命令,关于dd命令的详解,请参考:
1、先将出故障的lv 文件系统umount下来。
    2、检查/etc/secuity/limits里面是否对root用户设置了传输大小的限制,默认是1G,类似于这样:fsize = 2097151的把他改成(建议先备份原来的):
       fsize = -1
       core = -1
       cpu = -1
       data = -1
       rss = -1
       stack = -1
       nofiles = -1
       fsize_hard = -1
       core_hard = -1
       cpu_hard = -1
       data_hard = -1
       rss_hard = -1
       stack_hard =    -1
       nofiles_hard = -1
       当然,为了资源的均衡,dd之后可以改回原来的limits  。
       改动后,需要root用户重新登陆才能生效。
    3、如果因本地磁盘空间不足,可以将目标dd到NFS空间上(这样就可以直接备份到PC的WINDOWS或LINUX上了)。将NFS服务器MOUNT上来,大致命令为:
       mount 10.10.0.1:/nfs /tmp  (其中10.10.0.1改为目标NFS的IP,/nfs为NFS服务器上的共享名称)
       可以在mount之前用showmount -e 10.10.0.1 来查看10.10.0.1上的NFS共享资源及其权限。
    4、执行dd命令:
       dd if=/dev/lv01 of=/tmp/data.img   bs=1024k   (其中/dev/lv01为出错的lv的设备名称,/tmp/data.img为生成的目标文件,其他参数全部用默认即可)
    5、查看IO速度,估计一下时间即可。最好等它做几十G没问题,再离开。
    6、可在dd时加入conv参数,以处理坏道。修正命令如下:dd if=/dev/lv01 of=/tmp/data.img   bs=1024k   conv=noerror,sync
conv中参数的作用:
noerror
拷贝时遇到错误,则跳过,并继续执行
sync
拷贝时遇到错误,跳过此块可能导致后面的数据整体位置改变,加此参数可以用空数据填充目标文件中与错误块位置相同的部分,保证文件系统结构稳定。