从ghost映像.gho文件快速创建vmware虚拟机

从ghost映像.gho文件快速创建vmware虚拟机

https://www.cnblogs.com/blog2018/p/8857146.html

ghost文件.gho和vmware文件都是磁盘映像,但神奇的是,分属两家公司的文件格式,居然可以互相转换。

方法如下:

1. 将 ghost .gho文件 转换为 vmware 硬盘文件 vmdk
命令行命令:

ghost32 -clone,mode=restore,src=YOUR-GHOST-FILE.gho,dst=YOUR-VM-NAME.vmdk -batch -sure # 恢复gho镜像到vmdk磁盘
ghost32 -clone,mode=create,src=YOUR-VM-NAME.vmdk,dst=YOUR-GHOST-FILE.gho -batch -sure # 创建vmdk磁盘的gho镜像

 

@echo off
title gho2vmdk script

set bindir=%~dp0
cd /d "%bindir%"

set /p ghoname= gho file name(no file suffix):

if not exist "%bindir%\%ghoname%.gho" (
    echo the "%bindir%\%ghoname%.gho" not exist.
    exit /b 1
)

echo src file name : "%bindir%\%ghoname%.gho"
echo dest file name : "%bindir%\%ghoname%.vmdk"
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
    "%bindir%\ghost64.exe" -clone,mode=restore,src="%bindir%\%ghoname%.gho",dst="%bindir%\%ghoname%.vmdk" -batch -sure
) else (
    "%bindir%\ghost32.exe" -clone,mode=restore,src="%bindir%\%ghoname%.gho",dst="%bindir%\%ghoname%.vmdk" -batch -sure
)

pause

 

@echo off
title vmdk2gho script

set bindir=%~dp0
cd /d "%bindir%"

set /p vmdkname= vmdk file name(no file suffix)if not exist "%bindir%\%vmdkname%.vmdk" (
    echo the "%bindir%\%vmdkname%.vmdk" not exist.
    exit /b 1
)

echo src file name : "%bindir%\%vmdkname%.vmdk"
echo dest file name : "%bindir%\%vmdkname%.gho"
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
    "%bindir%\ghost64.exe" -clone,mode=create,src="%bindir%\%vmdkname%.vmdk",dst="%bindir%\%vmdkname%.gho" -batch -sure
) else (
    "%bindir%\ghost32.exe" -clone,mode=create,src="%bindir%\%vmdkname%.vmdk",dst="%bindir%\%vmdkname%.gho" -batch -sure
)

pause

 

2. 创建一个和 ghost 原系统相匹配的虚拟机
在 vmware 中,按“新建虚拟机”向导,创建一个和 ghost 原系统匹配的虚拟机。

比如,ghost原系统是win7 x64,新虚拟机的操作系统,也要选择 windows 7 64位。
内存、硬盘,相应选择即可。

运行向导时,几个小细节需要注意:

  • “安装客户机操作系统”步骤,选择“稍后安装操作系统”
  • “指定磁盘容量”步骤,选择“将虚拟磁盘存储为单个文件”
  • 向导完成后,无需启动虚拟机

3. 覆盖 vmdk 文件
将步骤1转换生成的vmdk文件,复制到步骤2 vmware向导创建的虚拟机目录,覆盖相应的vmdk文件

这时,启动虚拟机,即可引导ghost映像文件中的操作系统。


 

Ghost 恢复镜像出现 25002 错误代码提示,此时需要命令行执行 ghost32.exe -ntexact 或者 ghost64.exe -ntexact

 

vmware有一个命令行工具 vmrun,用来执行vmware命令;结合ghost32,可以自动化完成这一整套操作。有需要的同学,可以继续研究一下。

参考文档:

 

将VMware虚拟机系统镜像导入到ESXi vSphere

来源 https://blog.csdn.net/anshangdeyu321/article/details/121956970

方法1:

(1)在克隆后的虚拟机上操作,右键 选择 管理==>更改硬件兼容性向导==》workstation 10.x(或其他版本),得到一个新的克隆 xxx.vmdk和其他描述文件,下载到本地磁盘;

(2)WSXi6.7上 创建/注册虚拟机==》vof/ova 导入==》命名,添加本地的xxx.ovf yyy.vmdk===》磁盘置备:厚置备====》开始 导入yyy.vmdk 打文件

方法2:

(1)将workstation中的虚拟机文件目录文件夹上传到ESIX服务器中,

(2)然后在用ssh远程ESX Server,登录到ESX Server的控制台中,

通过find / -name WSUS_2012.vmdk,找到文件目录,进入到文件目录,

vmkfstools -i WSUS_2012.vmdk WSUS_201201.vmdk,得到vmdk文件,

打开WSUS_2012.vmx文件,将WSUS_2012.vmdk替换为WSUS_201201.vmdk。

(3)创建/注册虚拟机---注册现有虚拟机,选择WSUS_2012.vmx文件。

方法2,在VMware Workstation 10迁移到Esix6.7中能用,但是在VMware Workstation 16 Pro迁移到Esix6.7用不了。可能是版本不兼容的问题。解决方法还有待研究。

 

1.将WMware虚拟机克隆;

2.将虚拟机的多个磁盘文件合并成一个;(否则vSphere会说找不到磁盘文件)

"C:\Program Files (x86)\VMware\VMware Player\vmware-vdiskmanager.exe" -r "d:\VMLinux\vmdkname.vmdk" -t 0 MyNewImage.vmdk

3.在vSphere中新建一个虚拟机的文件夹,将系统镜像上传到该文件夹;

4.在vSphere中右键点击XXX.vmx文件,添加到清单;

5.在vSphere Client中启用ssh通道;

6.使用xshell登陆到vSphere,将VMWare磁盘文件转化成vSphere所需的磁盘文件;

vmkfstools -i /vmfs/volumes/datastore/virtual_machine_folder/virtual_machine.vmdk /vmfs/volumes/datastore/virtual_machine_folder/new_virtual_machine.vmdk

7.在vSphere Client中编辑新添加的虚拟机设置,将原来的硬盘移除,并添加新的硬盘,添加时选“使用现有虚拟磁盘”然后选择刚才转好的磁盘文件(new_virtual_machine.vmdk);

8.启动虚拟机,打开控制台,弹出框时选“I copyed it.”即可

 

============= End

 

posted @ 2019-11-16 11:37  lsgxeva  阅读(3039)  评论(0编辑  收藏  举报