這個(gè)問(wèn)題其實(shí)困擾了挺久的,一直沒(méi)閑情去解決,網(wǎng)上搜索過(guò)很多壓縮方法感覺(jué)都太麻煩太復(fù)雜,因最近在windows上搞docker就一并解決了。
青海網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),青海網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為青海千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的青海做網(wǎng)站的公司定做!
首先下載DiskGenius,這工具很牛X,相信很多人都用過(guò)其硬盤(pán)分區(qū)、合并、數(shù)據(jù)恢復(fù)等功能,可謂相當(dāng)強(qiáng)大,甚至虛擬硬盤(pán)文件也不放過(guò)。。。
首先把要壓縮的虛擬硬盤(pán)vmdk打開(kāi)(菜單:“硬盤(pán) –> 打開(kāi)虛擬硬盤(pán)文件”)。打開(kāi)后就可以在左邊的窗口中看到加載上的虛擬磁盤(pán)了。
新建一個(gè)容量不小于源虛擬硬盤(pán)的虛擬硬盤(pán)vmdk文件
選擇(菜單:“工具 –> 克隆硬盤(pán)”),彈出對(duì)話框后,在“選擇源硬盤(pán)”時(shí)選擇要壓縮的源vmdk虛擬硬盤(pán),在“選擇目標(biāo)硬盤(pán)”時(shí)選擇剛剛我們新建的vmdk虛擬硬盤(pán),然后點(diǎn)“開(kāi)始”等待壓縮完成即可。
先把源vmdk備份,再把壓縮好的vmdk復(fù)蓋源vmdk,之后啟動(dòng)虛擬機(jī)。。。
沒(méi)啥意外會(huì)報(bào)出如下錯(cuò)誤
UUID {00000000-0000-0000-0000-000000000000} of the medium
'C:\Users\Neil\.docker\machine\machines\default\disk.vmdk' does not match the value
{131b2a66-a477-41dd-b920-1a0a460d3ec8} stored in the media registry
('C:\Users\Neil\.VirtualBox\VirtualBox.xml').
返回 代碼:
E_FAIL (0x80004005)
組件:
MediumWrap
界面:
IMedium {4afe423b-43e0-e9d0-82e8-ceb307940dda}
大概意思是壓縮后的vmdk文件的UUID和原來(lái)注冊(cè)表里的UUID不匹配
so good,我們到VirtualBox安裝目錄C:\Program Files\Oracle\VirtualBox
在目錄空白處 shift+右建 –> 選擇“在此處打開(kāi)命令窗口”
輸入
VBoxManage internalcommands sethduuid C:\Users\Neil\.docker\machine\machines\default\disk.vmdk 131b2a66-a477-41dd-b920-1a0a460d3ec8
返回要修改的UUID值就成功了
UUID changed to: 131b2a66-a477-41dd-b920-1a0a460d3ec8
disk.vmdk從C盤(pán)移到其它盤(pán),然后在VirtualBox中將虛擬硬盤(pán)指向新的disk.vmdk,這時(shí)會(huì)報(bào)錯(cuò)
錯(cuò)誤:打開(kāi)虛擬硬盤(pán)失敗,UUID already exists
因?yàn)檫@個(gè)UUID在注冊(cè)表里已經(jīng)存在,我們用命令修改一下vmdk的路徑
VBoxManage internalcommands sethduuid X:\yourDir\disk.vmdk
然后VirtualBox中重新指向這個(gè)disk.vmdk就好了
參考:
http://www.diskgenius.cn/exp/compressvirtualdisk.php
https://www.cnblogs.com/yjf512/p/4338985.html
來(lái)源:虛擬機(jī)硬盤(pán)vmdk壓縮瘦身并掛載到VirtualBox