<acronym id="klsvp"></acronym>

<object id="klsvp"><strong id="klsvp"><small id="klsvp"></small></strong></object>
  • <p id="klsvp"><del id="klsvp"><small id="klsvp"></small></del></p>
    <big id="klsvp"><ruby id="klsvp"></ruby></big>
    <acronym id="klsvp"></acronym>
      1. 當前位置:博客首頁>>分享經驗 >> 閱讀正文

        VirtualBox壓縮vmdk、vagrant打包box一口氣全對

        作者: 鄭曉 分類: 分享經驗 發布于: 2018-05-07 23:44 瀏覽:112,851 評論(1)


        如何壓縮VirtualBox的虛擬機vmdk文件大小并使用vagrant package成功打包鏡像box文件。
        環境:Windows7 vagrant1.9.5 VirtualBox4.3.12 虛擬機系統ubuntu14.04
        GitBash中執行命令
        首先vagrant ssh登錄到虛擬機中

        sudo dd if=/dev/zero of=/EMPTY bs=1M
        sudo rm -f /EMPTY

        切換到VirtualBox安裝目錄,執行:

        ./VBoxManage clonehd "/c/Users/zheng/VirtualBox VMs/ubuntu_default_1525700232199_77374/packer-ubuntu-14.04.5-amd64-disk1.vmdk" "cloned.vdi" --format vdi

        注意上方vmdk文件路徑要改成你自己的位置
        注意不要掉了最后的–format參數
        成功后類似以下提示:

        0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
        Clone hard disk created in format 'VMDK'. UUID: cfb3a2c7-1d25-4806-be78-49bf47bbd5f3

        繼續,壓縮vdi

        ./VBoxManage modifyhd cloned1.vdi --compact

        成功后類似以下提示:

        0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

        繼續,把vdi轉回vmdk

        $ ./VBoxManage clonehd "cloned.vdi" "compressed.vmdk" --format vmdk

        這里我都是把轉換后的文件放在當前目錄,轉換成功后去替換掉原文件。成功后類似以下提示:

        0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
        Clone hard disk created in format 'vmdk'. UUID: ecb11716-d276-442d-b19c-b090e3f0698e

        全部轉換完成,把得到的compressed.vmdk覆蓋掉“/c/Users/zheng/VirtualBox VMs/ubuntu_default_1525700232199_77374/packer-ubuntu-14.04.5-amd64-disk1.vmdk”這個文件。
        記得最好把原vmdk備份,覆蓋后虛擬機是啟動不了的,vagrant package也會提示UUID錯誤,比如:

        There was an error while executing `VBoxManage`, a CLI used by Vagrant
        for controlling VirtualBox. The command and stderr is shown below.

        Command: ["export", "049833be-4931-4250-aea4-a1b25ad574ad", "--output", "C:/Users/zheng/.vagrant.d/tmp/vagrant-package-20180507-22644-1uow2oj/box.ovf"]

        Stderr: 0%...
        Progress state: E_FAIL
        VBoxManage.exe: error: Appliance write failed
        VBoxManage.exe: error: UUID {ecb11716-d276-442d-b19c-b090e3f0698e} of the medium 'C:\Users\zheng\VirtualBox VMs\ubuntu_default_1525700232199_77374\packer-ubuntu-14.04.5-amd64-disk1.vmdk' does not match the value {9c63141b-91ad-4e54-a8ff-52f156420064} stored in the media registry ('C:\Users\zheng/.VirtualBox\VirtualBox.xml')
        VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component Medium, interface IMedium
        VBoxManage.exe: error: Context: "int __cdecl handleExportAppliance(struct HandlerArg *)" at line 1121 of file VBoxManageAppliance.cpp

        注意報錯信息中倒數第三行”does not match the value”之后的UUID。
        關于uuid,不要去修改.vbox或xml,不會有用。
        繼續在VirtualBox安裝目錄執行以下命令重新設置vmdk的UUID:

        ./VBoxManage internalcommands sethduuid "/c/Users/zheng/VirtualBox VMs/ubuntu_default_1525700232199_77374/packer-ubuntu-14.04.5-amd64-disk1.vmdk" 9c63141b-91ad-4e54-a8ff-52f156420064

        最后的UUID參數從上方報錯信息中找到,也就是原vmdk的。成功后如下所示:

        UUID changed to: 9c63141b-91ad-4e54-a8ff-52f156420064

        現在就完成了虛擬機文件的碎片整理和壓縮,現在再次打包box文件

        vagrant package --output ubuntu14-lnmp.box

        900m!比原1.8G確實小很多!

        ? ? ? ?

        本文采用知識共享署名-非商業性使用 3.0 中國大陸許可協議進行許可,轉載時請注明出處及相應鏈接。

        本文永久鏈接: http://www.twogeaux.com/virtualbox-vmdk-vagrant-box.html

        VirtualBox壓縮vmdk、vagrant打包box一口氣全對:目前有1 條留言

        用戶評論頭像 熊平平發表于 2018年05月25日 23:47[回復]

        來學習的,不要打臉,疼

        發表評論

        change vcode

        欧美一级特黄啪啪片免费_欧美大黑bbb_欧美va天堂在线影院_一级欧美黑人大战白妞
        <acronym id="klsvp"></acronym>

        <object id="klsvp"><strong id="klsvp"><small id="klsvp"></small></strong></object>
      2. <p id="klsvp"><del id="klsvp"><small id="klsvp"></small></del></p>
        <big id="klsvp"><ruby id="klsvp"></ruby></big>
        <acronym id="klsvp"></acronym>