Install Oracle VirtualBox on Ubuntu Linux host.
注意:這篇文章討論的是在 Ubuntu實體電腦 安裝Linux版的VirtualBox,用以執行Windows虛擬機,並非在Windows系統安裝Ubuntu虛擬機。
「VirtualBox」為Oracle開發的開源免費虛擬機軟體,可以讓我們在Linux輕鬆體驗各式各樣的作業系統,例如跑Windows、Android-x86、macOS、Linux、FreeBSD等系統。
Oracle還開發了一組Guest Additions工具,讓我們方便跟虛擬機共享檔案。
本文Ivon專注討論如何在Linux系統的電腦安裝VirtualBox,以及Guest Additions使用技巧。
VirtualBox與QEMU/KVM的差別?#
VirtualBox跟另一款流行的虛擬機軟體Virt Manager + QEMU/KVM功能很類似,二者都是開源免費的軟體。QEMU/KVM主要是由RedHat維護的軟體,利用Linux核心的KVM技術跑虛擬機。
至於VirtualBox為Oracle維護。VirtualBox優勢為跨平台,不論是在Linux、Windows、macOS、FreeBSD、Solaris都可以用,不像QEMU/KVM僅限於Linux。還有VirtualBox界面比較好上手,你可以把Windows上的使用經驗直接複製過來。
不過,VirtualBox缺乏QEMU/KVM的GPU直通(GPU Passthrough)的能力,也沒辦法模擬異質架構(如x86模擬ARM),靈活性較低。
此外,VirtualBox 使用自身的虛擬化技術(Type 2 HyperVisor),而非Linux的KVM(Type 1 HyperVisor),執行時需要載入vboxdrv
核心模組,所以執行效能較QEMU/KVM差些。還有你不可以同時跑VirtualBox與QEMU/KVM虛擬機,二者會打架。
VirtualBox在7.0版本加入了KVM後端的支援,這樣就不會發生VirtualBox無法跟QEMU/KVM一起執行的問題。不過這個功能目前需要手動編譯才能啟用。參見KVM Backend for VirtualBox
1. VirtualBox硬體需求#
執行VirtualBox前,你需要一台x86_64架構的Linux電腦。CPU是Intel或AMD都可以。
在UEFI開啟CPU的VT-x虛擬化加速技術。
接著用以下指令確認CPU是否已開啟VT-X加速,回傳值不應為0。
sudo grep -E -c '(vmx|svm)' /proc/cpuinfo
2. 安裝Linux版VirtualBox套件#
VirtualBox支援各大Linux發行版,包含Ubuntu、Fedora、openSUSE、Arch Linux、Gentoo。請按照官網指示安裝VirtualBox。
以Ubuntu LTS為例,你可以直接下載對應Ubuntu版本的.deb檔安裝,但這樣未來不會自動收到更新。推薦加入VirtualBox的APT套件庫。
- 根據VirtualBox官網指示,開啟終端機,新增VirtualBox的APT套件庫。
lsb_release
指令會自動取得發行版版本代號,例如我現在是Ubuntu 24.04,回傳的值就會是noble
。
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | \
sudo tee /etc/apt/sources.list.d/virtualbox.list
- 取得VirtualBox套件庫的GPG金鑰
sudo apt install gnupg2
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor
sudo apt update
- 搜尋可用的VirtualBox套件版本,例如目前最新版本為7.2
sudo apt search virtualbox
sudo apt install virtualbox-7.2
- 將自己加入vboxusers群組
sudo usermod -a -G vboxusers $USER
重開機。
確認vboxdrv核心模組是否有載入
sudo lsmod | grep vboxdrv
- 確認VirtualBox版本
vboxmanage --version
3. 如何安裝虛擬機系統#
市面上作業系統繁多,無法一概而論,但安裝方式不外乎就是:
從應用程式列表開啟VirtualBox
下載你要安裝系統的ISO
新增VirtualBox虛擬機,按照畫面指示設定,需要的話記得啟用EFI。將系統ISO掛接為CDROM,開機安裝。
4. 在虛擬機裡安裝VirtualBox Guest Additions#
「VirtualBox Guest Additions」是一套跑在虛擬機內的程式,讓宿主機與虛擬機之間能夠共享剪貼簿、共享資料夾、自動縮放視窗、啟用部份3D加速。
官方尚有提供一個採用專有軟體授權的VirtualBox Extension Pack,能夠增進虛擬機功能。
虛擬機內的Guest Additions版本最好跟宿主機VirtualBox版本保持一致。
VirtualBox官網沒有提供載點,你得在啟動虛擬機之後才可以從VirtualBox介面下載,並以CDROM掛接給虛擬機存取。
Windows虛擬機#
Guest Addition需要Windows XP以上系統。
啟動Windows虛擬機,進入桌面
點選VirtualBox選單,裝置 → 插入Guest Addition映像
之後虛擬機內的Windows系統應該會多出CDROM光碟
開啟光碟,以系統管理員身份執行
VBoxWindowsAdditions.exe
。將虛擬機重開機
Linux虛擬機#
許多Linux發行版都有收Guest Addition套件,不過還是手動安裝Oracle釋出的版本比較好。
以Ubuntu虛擬機為例,啟動虛擬機,進入Ubuntu桌面
點選VirtualBox選單,裝置 → 插入Guest Addition映像
之後虛擬機內的Linux系統應該會多出CDROM裝置。在虛擬機內部開啟終端機,切換到CDROM目錄
# CDROM通常是掛載到/media或/run/media
ls /media
cd /media/user/VBox_GAs_7.0.18
- 執行安裝檔,使用DKMS安裝Guest Additions。這樣它會在Linux虛擬機核心更新的時候自動更新。
sudo apt update
sudo apt install build-essential dkms
sudo ./VBoxLinuxAdditions.run
#輸入yes開始安裝
重新啟動虛擬機
使用以下指令確認是否載入Guest Addition
lsmod | grep vboxguest