恢复丢失的VMFS分区-适用于esxi5html
标记命令linux
fdisk -lshell
ls /vmfs/devices/disks/ide
23437492224学习
23437492190spa
partedUtil getptbl /vmfs/devices/disks/naa.600605b00516e70b1fd810a50d36a227orm
partedUtil setptbl "/vmfs/devices/disks/naa.600605b00516e70b1fd810a50d36a227" gpt "1 2048 23437492190 AA31E02A400F11DB9590000C2911D1B8 0"htm
312581808文档
312581774get
partedUtil getptbl /vmfs/devices/disks/naa.5000cca329cbcdc3
partedUtil setptbl "/vmfs/devices/disks/naa.5000cca329cbcdc3" gpt "1 2048 312581774 AA31E02A400F11DB9590000C2911D1B8 0"
如今网上这样的文章不多,大部分针对vmfs-3的恢复方法,尚未vmfs-5的分区恢复办法,由于从vmfs-5后它支持了GPT,fdisk这样的命令已经不能用了。看下图吧。咱们用全新的partedutil命令。
注意:我不能保证100%能恢复您公司的数据,可是我用实验能完整模拟vmfs-5分区表删除后恢复方法。因此使用前请君明察。
命令学习:
参考地址:http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1036609
http://bbs.vmanager.cn/thread-5709-1-1.html
http://wenku.baidu.com/view/5d14264669eae009581bec1f.html
这是我重建的vmfs分区分别是LUN01_50GB,LUN02_70GB。在client中看到的如图,注意带”:1”
这是我挂载的两个iscsi设备红框内2个。经过esxi shell 看看命令下的分区。
红色的就是上两张图分别表示的,带“:1”的表示是vmfs分区,
~ # ls /vmfs/devices/disks/
mpx.vmhba1:C0:T0:L0 vml.0000000000766d686261313a303a30
mpx.vmhba1:C0:T0:L0:1 vml.0000000000766d686261313a303a30:1
mpx.vmhba1:C0:T0:L0:2 vml.0000000000766d686261313a303a30:2
mpx.vmhba1:C0:T0:L0:3 vml.0000000000766d686261313a303a30:3
mpx.vmhba1:C0:T0:L0:5 vml.0000000000766d686261313a303a30:5
mpx.vmhba1:C0:T0:L0:6 vml.0000000000766d686261313a303a30:6
mpx.vmhba1:C0:T0:L0:7 vml.0000000000766d686261313a303a30:7
mpx.vmhba1:C0:T0:L0:8 vml.0000000000766d686261313a303a30:8
t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________ vml.020000000030000000f85265f3695343534920
t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________:1 vml.020000000030000000f85265f3695343534920:1
t10.FreeBSD_iSCSI_Disk______000c29ae3a55001_________________ vml.0200010000300000000a39e6f0695343534920
t10.FreeBSD_iSCSI_Disk______000c29ae3a55001_________________:1 vml.0200010000300000000a39e6f0695343534920:1
~ #
注释:
/vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________ ------>datastore
/vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________:1 ------>partition
查看datastore的扇区。红色部分为Device id,
~ # partedUtil getptbl /vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________
gpt
6527 255 63 104857600
1 2048 104857566 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
~ #
如上所示“1—partition number, 2048—vmfs 5.0 starting sector, 104857566 — ending sector”
接下来,咱们查看一下咱们LUN01_50GB分区下的虚拟机文件,是我们未来放虚拟机的地方,数据重要。
而后,咱们把LUN01_50GB分区邮件删除分区,进行分区删除。模拟分区丢失!!!必定要在注意风险,切勿实际工做中使用。
删除后【数据存储】这里就看不到LUN01_50GB了,但在【设备】是能够看到的。
这里看到的相应Divce ID下已经无主分区了。
刷新后在挂载的设备已经看不到分区了。
这是LUN02(参照)的对比。
那如今命令查看一下吧:
~ #
~ # ls /vmfs/devices/disks/
mpx.vmhba1:C0:T0:L0 vml.0000000000766d686261313a303a30
mpx.vmhba1:C0:T0:L0:1 vml.0000000000766d686261313a303a30:1
mpx.vmhba1:C0:T0:L0:2 vml.0000000000766d686261313a303a30:2
mpx.vmhba1:C0:T0:L0:3 vml.0000000000766d686261313a303a30:3
mpx.vmhba1:C0:T0:L0:5 vml.0000000000766d686261313a303a30:5
mpx.vmhba1:C0:T0:L0:6 vml.0000000000766d686261313a303a30:6
mpx.vmhba1:C0:T0:L0:7 vml.0000000000766d686261313a303a30:7
mpx.vmhba1:C0:T0:L0:8 vml.0000000000766d686261313a303a30:8
t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________ vml.020000000030000000f85265f3695343534920
t10.FreeBSD_iSCSI_Disk______000c29ae3a55001_________________ vml.0200010000300000000a39e6f0695343534920
t10.FreeBSD_iSCSI_Disk______000c29ae3a55001_________________:1 vml.0200010000300000000a39e6f0695343534920:1
~ #
t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________ vml.020000000030000000f85265f3695343534920
这个下面已经没有:1了。
查看后没有了分区
~ # partedUtil getptbl /vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________
gpt
6527 255 63 104857600
~ #
已经看不到vmfs卷下的扇区了,而LUN02_70GB下就有。
这个是LUN02(参照)后
~ #
~ # partedUtil getptbl /vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55001_________________
gpt
9137 255 63 146800640
1 2048 146800606 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
~ #
~ #
~ #
~ # partedUtil getptbl /vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________
gpt
6527 255 63 104857600
~ #
其实此次把lun01_50GB删除后,只是把VMFS分区表删除了,咱们把他恢复出来吧。
----恢复分区---
这里必定要参照http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1036609 官方文档有明确说明。
利用partedUtil建立新的分区表:
~ #
partedUtil setptbl “/vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55001_________________ “gpt " 1 2048 146800606 AA31E02A400F11DB9590000C2911D1B8 vmfs 0 "
~ #
~ #
partedUtil setptbl “/vmfs/devices/disks/divce id “gpt " 1 2048 104857566 AA31E02A400F11DB9590000C2911D1B8 0 "
1 表示第一个分区,是主分区。2048表示vmfs-5分区开始扇区 。AA31E02A400F11DB9590000C2911D1B8 是VMFS GUID 其余都照着写就是了。
除了红的之外都是固定格式,104857566 这个是LUN01_50GB扇区数,这个数是VMFS卷扇区数减去vmfs头部占用的34个分区得来的。
看这条命令吧,这里的这些参数都是从下图这里得来
知道了参数后,咱们就能够执行咱们完整的命令了
新建丢失的分区表。
~ # partedUtil setptbl "/vmfs/devices/disks/t10.FreeBSD_iSCSI_Disk______000c29ae3a55000_________________" gpt "1 2048 104857566 AA31E02A400F11DB9590000C2911D1B8 0" 回车
gpt
0 0 0 0
1 2048 104857566 AA31E02A400F11DB9590000C2911D1B8 0
~ #
~ #
刷新一下,看看吧,原来的删除的分区出现了,下一步咱们把它从新挂载一下,看看里面的虚拟机还在吗?
命令看看:
挂载一下吧:
恢复出LUN0_50GB分区了
看看数据是否在。
vmfs-5分区恢复成功,数据也恢复成功了。
注意一下,此次都是实验环境,不是生产环境,因此你们在作恢复的时候进来先用实验去验证一下,等到都明白后在去恢复重要的数据,切记恢复前必定要作备份。