<?xml version="1.0" encoding="UTF-8" ?><oembed><version>1.0</version><provider_name>Jui-Nan Lin&#039;s Blog</provider_name><provider_url>https://jnlin.org</provider_url><author_name>jnlin</author_name><author_url>https://jnlin.org/author/jnlin/</author_url><title>使用 Virtual Box Headless 跑 Virtual Machine</title><html>&lt;p&gt;&lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;VirtualBox&lt;/a&gt; 是 Sun (後來被 &lt;a href=&quot;http://www.oracle.com/&quot;&gt;Oracle&lt;/a&gt; 買下) 開發的一套虛擬化軟體。他的 Host OS 可以是 Windows, Linux, MacOS, FreeBSD。除此之外，VirtualBox 可以在 Terminal 下執行，顯示的畫面由 RDP/VNC 輸出，亦即 Headless 模式。要特別注意的是，RDP 輸出僅限於專屬授權版本，OSE (Open Source Edition) 版本是沒有這個功能的。&lt;/p&gt;  &lt;p&gt;要使用 VNC 輸出，必須在安裝的時候加入 VNC 支援：&lt;/p&gt; &lt;code&gt;# cd /usr/ports/emulators/virtualbox-ose; make WITH_VNC=yes all install clean &lt;/code&gt;  &lt;p&gt;安裝好 VirtualBox 之後，必須再安裝 kernel module：&lt;/p&gt; &lt;code&gt;# cd /usr/ports/emulators/virtualbox-ose-kmod; make install clean&lt;/code&gt;   &lt;p&gt;接著把需要的 Kernel Module 載進來：&lt;/p&gt; &lt;code&gt;# kldload vboxdrv; kldload vboxnetadp; kldload vboxnetflt&lt;/code&gt;   &lt;p&gt;之前寫在 &lt;code&gt;/boot/loader.conf&lt;/code&gt; 會導致開機時 Kernel Panic，但如果開完機手動載入就不會，目前還沒找出原因。&lt;/p&gt;  &lt;p&gt;接下來新增一個 Virtual Machine：（以下都可以不需要 root 權限）&lt;/p&gt; &lt;code&gt;% VBoxManage createvm winxp --register&lt;/code&gt;   &lt;p&gt;然後設定 VM 的資源需求：&lt;/p&gt; &lt;code&gt;% VBoxManage modifyvm winxp --acpi on --ioapic on --memory 1024 --cpus 2 --nic1 bridged --nictype 82540EM --bridgeadapter1 em1&lt;/code&gt;   &lt;p&gt;以上的範例分配了 1024MB (1GB) 的 RAM 與 2 個 Virtual CPU 給 &lt;code&gt;winxp&lt;/code&gt; 這個 VM，另外建立了一張虛擬網卡，型號為 &lt;code&gt;Intel 82540EM&lt;/code&gt;，橋接到實體的 em1 這張網卡上。&lt;/p&gt;  &lt;p&gt;再來建立一個新的 120GB 虛擬硬碟：&lt;/p&gt; &lt;code&gt;% VBoxManage createhd --filename winxp --size 122880&lt;/code&gt;   &lt;p&gt;在 VM 裡增加一個 IDE Controller：&lt;/p&gt; &lt;code&gt;% VBoxManage storagectl winxp --name &quot;IDE Controller&quot; --add ide&lt;/code&gt;   &lt;p&gt;把硬碟與安裝 ISO 檔連接到 IDE Controller：&lt;/p&gt; &lt;code&gt;% VBoxManage storageattach winxp --storagectl &quot;IDE Controller&quot; --port 0 --device 0 --type hdd --medium winxp    &lt;br /&gt;% VBoxManage storageattachwinxp --storagectl &quot;IDE Controller&quot; --port 1 --device 0 --type dvddrive --medium winxp.iso&lt;/code&gt;   &lt;p&gt;接著就可以開機了：&lt;/p&gt; &lt;code&gt;% VBoxHeadless -s winxp --vnc --vncport 5900 --vncpass password&lt;/code&gt;   &lt;p&gt;執行成功後，可以用 VNC 連入看到安裝 Windows XP 的畫面：&lt;/p&gt; &lt;a href=&quot;http://jnlin.pixnet.net/album/photo/118401718-virtualbox.png&quot;&gt;&lt;img src=&quot;//ext.pimg.tw/jnlin/1316252142-2922008165_m.png&quot; /&gt;&lt;/a&gt;   &lt;p&gt;關機、重開機可以使用 &lt;code&gt;VBoxManage&lt;/code&gt; 來完成：&lt;/p&gt; &lt;code&gt;% VBoxManage controlvm winxp poweroff&lt;/code&gt;</html><type>rich</type></oembed>