方法一. 通过Ubuntu挂载硬盘恢复VM【成功】 1. 准备Ubuntu主机 并挂载ESXi磁盘1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 lsblk -o NAME,SIZE,TYPE,MODEL sylar@ubuntu:~$ lsblk -o NAME,SIZE,TYPE,MODEL NAME SIZE TYPE MODEL loop0 49.9M loop loop1 63.3M loop loop2 91.9M loop loop3 49.3M loop loop4 91.9M loop loop5 63.8M loop sda 1.8T disk RSYE38362-1920 ├─sda1 4M part ├─sda2 4G part ├─sda3 1.8T part ├─sda5 250M part ├─sda6 250M part ├─sda7 110M part ├─sda8 286M part └─sda9 2.5G part sdb 931.5G disk ST1000DM010-2EP1 ├─sdb1 1M part ├─sdb2 2G part └─sdb3 929.5G part └─ubuntu--vg-ubuntu--lv 100G lvm sylar@ubuntu:~$ fdisk -l /dev/sda | grep "sda3" /dev/sda3 15472640 3748046814 3732574175 1.8T VMware VMFS
1 2 3 4 5 6 7 8 9 sudo apt update && sudo apt install -y vmfs6-tools sudo mkdir /mnt/vmfs_recover sudo vmfs6-fuse -o ro,allow_other /dev/sda3 /mnt/vmfs_recover
3. 通过SSH复制VM虚拟机文件夹到可用的ESXi主机(ESXi主机需开启SSH服务) 复制文件期间带宽占用非常高,建议目标主机为非主业务机
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ls /mnt/vmfs_recover/ 例: IT_ED_20.18 IT_ED_30.196 sudo scp -r /mnt/vmfs_recover/IT_ED_20.18 [email protected] :/vmfs/volumes/Data1A_HDD/ 提示输入密码后即开始复制,保持网络稳定即可。 root@ubuntu:~ The authenticity of host '10.10.30.1 (10.10.30.1)' can't be established. RSA key fingerprint is SHA256:FnQ1MO8TDz3nklcwdF0qoLp6YNsDewq4LP7DWK5jy8c. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added ' 10.10.30.1' (RSA) to the list of known hosts. Password: IT_ED_20.18-0ea0f19a.hlog 100% 1031 1.2MB/s 00:00 IT_ED_20.18-flat.vmdk 100% 400GB 61.8MB/s 1:50:30 IT_ED_20.18.vmdk 100% 533 396.5KB/s 00:00 IT_ED_20.18-000002-sesparse.vmdk 100% 1616MB 66.1MB/s 00:24 IT_ED_20.18-000002.vmdk 100% 319 294.9KB/s 00:00 IT_ED_20.18.nvram 100% 264KB 14.8MB/s 00:00 IT_ED_20.18.vmsd 100% 382 332.5KB/s 00:00 IT_ED_20.18-Snapshot1.vmsn 100% 287KB 55.7MB/s 00:00 vmware-3.log 100% 336KB 52.6MB/s 00:00 vmware-2.log 100% 894KB 74.6MB/s 00:00 vmware-1.log 100% 518KB 65.6MB/s 00:00 vmware.log 100% 336KB 55.8MB/s 00:00 IT_ED_20.18.vmx 100% 2764 3.2MB/s 00:00 root@ubuntu:~#
4. 验证虚拟机是否可正常使用。 登录ESXi (如:10.10.30.1),虚拟机-注册现有虚拟机
方法二、付费软件 699美元可恢复6台虚拟机(未验证) DiskInternals VMFS Recovery
方法三、 将ESXi虚拟机硬盘插入正常ESXi机器(未成功) 未实验成功,仅作记录
注意:只适用 相兼容的RAID卡的情况
插入硬盘后开机启动ESXi系统,重新扫描存储适配器和磁盘。顺利的话自动挂载原数据存储,重新注册虚拟机即可。
如不能自动挂载数据存储,需打开ESXi的SSH。通过ESXicli手动挂载数据存储。
操作步骤
扫描存储适配器,发现目标 LUN 首先扫描存储适配器,确保当前主机能识别到目标 LUN:
1 2 3 4 5 6 7 8 esxcli storage core adapter list esxcli storage core adapter rescan --adapter=vmhba0 esxcli storage core adapter rescan --all
确认目标 LUN 的设备路径 列出所有可见的存储设备,找到目标 LUN 的设备路径(如/vmfs/devices/disks/t10.xxxx):
1 2 3 4 5 esxcli storage core device list esxcli storage vmfs extent list
检查设备分区表,确认是否存在 VMFS 分区 1 2 # 查看目标设备的分区信息(替换为实际设备名) esxcli storage core device partition list -d t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _
1 2 3 4 5 6 7 8 9 10 11 12 13 [root@ESXi-14:~] esxcli storage core device partition list -d t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ Device Partition Start Sector End Sector Type Size ------------------------------------------------------------------------- ------ ------------ ---------- ---- ------------- t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 0 0 3750748847 0 1920383410176 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 1 64 8191 0 4161536 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 2 7086080 15472639 6 4293918720 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 3 15472640 3748046814 fb 1911077977600 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 5 8224 520191 6 262127616 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 6 520224 1032191 6 262127616 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 7 1032224 1257471 fc 115326976 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 8 1257504 1843199 6 299876352 t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ 9 1843200 7086079 fc 2684354560 [root@ESXi-14:~]
从分区列表可以看到,目标硬盘(t10.ATA_____RSYE383622D1920__________________________PKCH370603703_______)的 分区 3(Partition 3) 类型为 fb,这是 VMFS 文件系统的标识(ESXi 中 VMFS 分区的标准类型码),且该分区容量较大(1911077977600 字节),符合数据存储的特征。
挂载指定设备上的VMFS数据存储 格式:esxcli storage filesystem mount -l <数据存储名称> 或 -d <设备路径>
获取 VMFS 分区的 UUID 或卷标签 通过 vmkfstools 命令查看分区 3 的详细信息(包含 UUID 和卷名):
1 vmkfstools -P /vmfs/devices/disks/t10.ATA____ _RSYE383622D1920____ ____ ____ ____ ____ ____ __PKCH370603703__ ____ _ :3
通过 VMFS UUID 挂载(推荐,唯一标识)
1 esxcli storage file system mount -u <VMFS_UUID>
通过卷标签挂载(需确保标签唯一)
1 esxcli storage file system mount -l "卷标签名称"
验证挂载结果 检查数据存储是否成功挂载:
1 2 esxcli storage file system list | grep -i vmfs
若成功,会显示目标数据存储的路径(如/vmfs/volumes/数据存储名称)。