Windows Server 2008 R2 Hyper-V 主機系統盤剩餘空間 < 3 GB,嘗試啟動配置 5 GB 記憶體的虛擬機器時失敗,錯誤訊息:
Could not initialize memory: There is not enough space on the disk. (0x80070070)
Failed to create memory contents fileC:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\of size 5120 MB.\ .bin
.bin 記憶體內容檔**,大小 = **配置給 VM 的記憶體大小** (此例 5120 MB)。%SystemDrive%\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines (可在 Hyper-V Manager → 右鍵主機 → Hyper-V Settings → Virtual Machines 確認/變更)。| 方案 | 操作步驟 | 成果 | 優/缺點 |
|---|---|---|---|
| 1. 變更 Hyper-V 全域配置檔目錄 (推薦) |
1. Hyper-V Manager → 主機設定 → Virtual Machines 2. 將目錄改至空間充足磁碟 (如 D:\) 3. 依原設定重新建立 VM | ✅ 成功啟動 | 徹底解決,新 VM 自動受益;舊 VM 需重建 |
| 2. 移動現有 VM 配置檔並重啟服務 |
1. 變更全域目錄 2. 手動複製舊 VM 配置檔至新目錄 3. 重啟 Hyper-V Virtual Machine Management 服務 | ❌ 失敗 | Hyper-V Manager 未識別複製的配置檔 (可能缺少註冊/權限步驟) |
| 3. 修改 VM 配置檔指定 .bin 路徑 | 嘗試編輯 XML 配置指定其他磁碟路徑 | ❌ 未嘗試 | Hyper-V 配置結構複雜,非簡單 XML 修改可行,風險高 |
| 4. 釋放系統盤空間 | 清理暫存檔、移動分頁檔、卸載非必要程式 | 視情況可行 | 治標不治本,VM 記憶體增大仍會再發生 |
.bin 檔大小仍以 **最大記憶體** 為準 (啟動時配置),故不改變磁碟空間需求。Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" -Name "ConfigurationPath"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" `
-Name "ConfigurationPath" -Value "D:\Hyper-V\Virtual Machines"
Restart-Service vmms
Hyper-V VM 啟動建立 .bin 記憶體檔,**大小等於配置記憶體**,位於 **Virtual Machines 配置目錄**。**系統盤空間不足是最常見啟動失敗原因**。**永久解法:將 Hyper-V 全域配置檔目錄遷移至大容量資料盤**,並重新建立 VM。切勿嘗試手工修改 VM 配置 XML 或複製檔案繞過註冊機制,極易導致 Hyper-V 管理層狀態不一致。