您好,登錄后才能下訂單哦!
這個問題其實困擾了挺久的,一直沒閑情去解決,網上搜索過很多壓縮方法感覺都太麻煩太復雜,因最近在windows上搞docker就一并解決了。
首先下載DiskGenius,這工具很牛X,相信很多人都用過其硬盤分區、合并、數據恢復等功能,可謂相當強大,甚至虛擬硬盤文件也不放過。。。
首先把要壓縮的虛擬硬盤vmdk打開(菜單:“硬盤 –> 打開虛擬硬盤文件”)。打開后就可以在左邊的窗口中看到加載上的虛擬磁盤了。
新建一個容量不小于源虛擬硬盤的虛擬硬盤vmdk文件
選擇(菜單:“工具 –> 克隆硬盤”),彈出對話框后,在“選擇源硬盤”時選擇要壓縮的源vmdk虛擬硬盤,在“選擇目標硬盤”時選擇剛剛我們新建的vmdk虛擬硬盤,然后點“開始”等待壓縮完成即可。
先把源vmdk備份,再把壓縮好的vmdk復蓋源vmdk,之后啟動虛擬機。。。
沒啥意外會報出如下錯誤
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和原來注冊表里的UUID不匹配
so good,我們到VirtualBox安裝目錄C:\Program Files\Oracle\VirtualBox
在目錄空白處 shift+右建 –> 選擇“在此處打開命令窗口”
輸入
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盤移到其它盤,然后在VirtualBox中將虛擬硬盤指向新的disk.vmdk,這時會報錯
錯誤:打開虛擬硬盤失敗,UUID already exists
因為這個UUID在注冊表里已經存在,我們用命令修改一下vmdk的路徑
VBoxManage internalcommands sethduuid X:\yourDir\disk.vmdk
然后VirtualBox中重新指向這個disk.vmdk就好了
參考:
http://www.diskgenius.cn/exp/compressvirtualdisk.php
https://www.cnblogs.com/yjf512/p/4338985.html
來源:虛擬機硬盤vmdk壓縮瘦身并掛載到VirtualBox
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。