从.vhd文件创建Hyper-V虚拟机

时间:2014-03-19 21:47:26

标签: powershell virtual-machine hyper-v

我尝试以编程方式从.vhd文件创建VM - 我的代码如下。我发现了一个未找到怪文件的错误,但是我已经检查了所有路径。

ADD-VMHardDiskDrive : 'MyVM' failed to add device 'Virtual Hard Disk'. (Virtual machine ID C4A0BAFF-35EF-4B4C-9CA1-68D2ECF77BA1)
'MyVM': Attachment 'C:\temp\VMs\TheVhd.vhd' not found. Error: 'The system cannot find the file specified.' (0x80070002). (Virtual machine ID C4A0BAFF-35EF-4B4C-9CA1-68D2ECF77BA1)

我的PowerShell代码是:

$n = "MyVM";
$directory = "C:\temp\VMs"
$vhdxPath = "$directory\$n.vhdx";
$vhdPath = "$directory\Flash.480x800.vhd";
$vm = Get-VM $n;
if($vm -ne $null) { Remove-VM $n -Force; }

New-VM -Name $n -MemoryStartupBytes (Invoke-Expression "1000MB") -Path $directory;
Set-VMMemory -VMName $n -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 4096MB -StartupBytes 2048MB -Buffer 20;
ADD-VMHardDiskDrive -VMName $n -Path $vhdPath;
Start-VM $n;

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:1)

我明白了。我试图附加的VM是一个“差异磁盘”。我错过了参考磁盘所依赖的“主”磁盘 - 因此找不到文件错误。

谢谢大家。

答案 1 :(得分:0)

在你的代码片段中,我猜你假设ADD-VMHardDiskDrive也会"创建"一个VHD文件给你。如果是这种情况,那么我们已经根本导致了错误。 ADD-VMHardDiskDrive只是在指定的VM路径上添加虚拟硬盘。如果VHD尚不存在,则抛出该错误。

如果要创建新的VHD或VHDX,请在添加到VM之前使用NEW-VHD命令行开关。

或者,您可以将现有VHD添加到VM或创建新VM作为New-VM命令行开关本身的一部分。看看technet上的例子: http://technet.microsoft.com/en-us/library/hh848537.aspx