VirtualBox - 安裝教學及採坑紀錄

最近為了區塊鏈計畫,要多開虛擬機並在每個虛擬機內開一個節點,建立起一個區塊鏈。因此想說透過 Oracle 的 VirtualBox 來實現。因此來寫文章記錄採坑…。

以下內容皆針對主機是 Ubuntu18.04 的環境及部分在 Windows10 遇到的問題解決方法。

Ubuntu18.04 安裝 VirtualBox 教學

沒想到遇到的大雷是在 Linux 的環境下安裝 VirtualBox,以往我的經驗是在 Windows 安裝 VirtualBox,因此沒遇到這些問題。

去官網下載 deb 檔案

網址:https://www.virtualbox.org/wiki/Linux_Downloads

建議去官網下載,而不要直接採用:

1
sudo apt-get install virtualbox

因為這個大概 5. 多版本的,現在最新版本是 6.1 版本,建議下載最新版本,因為舊版本似乎有其它的 bug。

安裝完成遇到的問題

開啟 virtualbox 是完全沒問題的,但是要裝好 Linux 的虛擬機器 (裝 Windows 虛擬機器不確定有無此問題),開啟時會遇到以下錯誤:

這個錯誤訊息簡單來說就是跟 Secure Boot 衝突。

解決方法

  • 關閉 Secure boot。

    這個我試過關閉之後,啟動虛擬機器還是會遇到上面的錯誤。

  • 讓 Secure boot 保持運行,然後手動去註冊 Virtualbox 相關的 kernel module

    這個就是能解決以上的問題!

    步驟如下:

    1. 建立 signing keys

      1
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
    2. 註冊 Virtualbox 相關的 modules

      1
      2
      sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv) 
      sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetflt)
    3. 註冊 keys 到 Secure boot

      1
      sudo mokutil --import MOK.der

      這個命令執行後,會叫你輸入一個密碼,一到八個字元,要記住此密碼,等等設定的時候會用到。

    4. 重新開機並註冊 MOK

      重新開機之後會出現一個藍色畫面,並且按照以下順序操作:

      1. Enroll MOK
      2. Continue
      3. Input password (就是剛剛輸入的密碼)
      4. Reboot system again

      執行完之後就會再次重開機

    5. 重新掛載 vboxdrv 與 vboxnetflt

      開機完成後,輸入以下指令

      1
      2
      sudo modprobe vboxdrv
      sudo modprobe vboxnetflt
    6. 啟動虛擬機

      成功!!

如何建立一個虛擬機器

建立虛擬機器就比較簡單了,按照圖形化介面操作即可。

輸入虛擬機器的名稱及選擇好類型跟版本。

選擇記憶體的大小,如果太低的話虛擬機器操作起來會很慢的喔

這個就是幫你建立這個虛擬機器的虛擬硬碟空間。

選擇 VDI 即可。

這邊本來預設是動態分配,不過固定大小用起來比較快,建議也是超過 100G 較理想。

如果選擇固定大小就會到這一頁,選擇要幾 G。

建立完成後,在左邊你剛新增的虛擬機器案右鍵選取設定,這邊要先去下載 Ubuntu18.04 的 iso 檔案,等等開啟虛擬機器才能透過 iso 檔案幫我們裝好 OS。

然後點選右邊選擇磁碟檔:

新增完後,就會在控制器這邊看到檔案。

接著開啟虛擬機器就會開始進入 os 安裝流程囉~

自動調整客體顯示大小

virtualbox 虛擬機開起來有個缺點,就是整個視窗太小了。這個需要另外安裝一些東西才可以根據你的虛擬機的視窗大小調整畫面。

  1. 首先要先把剛剛控制器的 ISO 檔案弄掉,調成一開始空的樣子。

  2. 進入虛擬機後點選上面的裝置選項,有個插入 Guest Additions CD 映像,點選並按執行

  3. 會叫你輸入 sudo 密碼

  4. 等一陣子會有終端機執行訊息,直到終端機命令行出現

    Press Return to close this window,按 enter 結束終端機

  5. 接著輸入以下指令

    1
    2
    3
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install dkms
  6. 重新開機之後點選檢視的選項,會看到自動調整客體顯示大小,點選即可完成!

    就會根據你的虛擬機視窗大小去改變畫面大小。

Windows10 啟動虛擬機器遇到問題

  1. 問題一

    這個代表你可能有開啟過 Hyper-V 的設定,例如在 Windows10 使用 docker 就需要開啟此設定,因此這兩者是衝突的,可以用以下指令一鍵關閉 Hyper-V

    使用管理員權限開啟 cmd 或是 powershell

    1
    bcdedit /set hypervisorlaunchtype off

    在重新開機即可!

總結

首先感謝這位大大的教學:https://go-linux.blogspot.com/2019/04/virtualboxsecure-boot-enable.html

試了很多解決方法都沒成功,唯獨這個成功!此文章也是拿它的解決方法來記錄的。

VirtualBox 在 Windows 安裝並開啟虛擬機沒遇到這些問題,所以這次也算是採坑紀錄了。其實 VirtualBox 開啟虛擬機的速度滿慢的… 個人沒有喜歡用 QQ

不過做計畫為了測試只好用了~