2020年3月6日 星期五

給微軟視窗俘虜們的逃脫地道入口: virtualbox 版的貴哥實驗室

綠色虛線是 guest OS 的勢力範圍 這學期我的課程環境被關在 virtualbox 虛擬機環境裡面, 於是我製作了 虛擬機映像檔。 請把 bionic-g20C.vdi.gz (或者更新的版本, 看檔名就知道) 下載回你的 MS Windows、 將它解壓縮 (原始的 .gz 檔可作為備份,不要刪除!) 並且 安裝 virtualbox for windows

一、 基本設定

  1. 啟動 virtualbox、 點左上角的 「新增」、 幫虛擬機取一個名字、 選定虛擬機類型為 Linux 的 Ubuntu 64bit。
  2. 設定虛擬機可用的記憶體。 建議 guest 至少要有 4GB; 但也請留至少 4GB 給 host 用。 如何判斷你的 windows host 有多少記憶體? 叫出工作管理員, 切換到 記憶體分頁
  3. 勾選 「使用現有虛擬硬碟檔案」、 點右邊資料夾圖示、 找到剛剛解壓縮出來的 bionic-g20C.vdi 。
  4. OK, 回到 virtualbox 主畫面, 就可以按 「啟動」 開啟虛擬機。 看到虛擬機裡面的開機選單 (目前版本是朝陽空拍圖), 應該就成功了。 按一下上下箭頭, 阻止它數秒。 建議先直接關機, 因為預設的解析度太低, 很難用。 註: 這一次暴力關機, 被問到 「儲存電腦狀態」 或 「關閉電腦電源」 時, 可以選後者, 因為現在還沒有動到虛擬硬碟。 以後當然就不要暴力關機了。
  5. 回主選單, 選 「機器」 => 「顯示」 (圖 5a) 或是 在虛擬機名稱上面按滑鼠右鍵, 選 「設定」 再選 「顯示」 (圖 5b) -- 我在兩個不同版本的 virtualbox 上面看到的介面略有差異。 總之, 叫出 「顯示」 的設定選單後, 切到 「畫面」 分頁, 把 「視訊記憶體」 調好調滿 (128MB)、 啟動 3d 加速、 啟動 2d 加速。 (圖 5c) 我的 host 本身就沒有顯卡加速, 所以只是勾爽的而已。
  6. 再次啟動虛擬機。 左下角主選單選 「偏好設定」 => 「螢幕設定」, 就可以選取較高解析度了。

也請參考 VirtualBox 建立新的虛擬機器設定教學 的前幾步。 (但因為他是從零開始安裝 guest ubuntu, 所以比我這篇麻煩。)

如果你的 host 電腦所在的區網很安全 (沒有人會惡意掃描可登入的服務等等), 可以考慮把虛擬機從完全隔離的自閉內網拉到跟 host 並行的實體區網, 以便區網內其他電腦 (或你的手機) 可以看得到它所提供的服務。 進入虛擬機的 「網路」 設定, 在 「介面卡1」 分頁, 「附加到:」 原本設定是 「NAT」, 請把它改成 「橋接介面卡」, 「名稱」 請選擇 host 對外的那張網卡。

建立新的虛擬機 分配記憶體大小 選取現成的 .vdi 映像檔 開機畫面 圖5a: 在 virtualbox 裡面設定「顯示」 圖5b: 在 virtualbox 裡面設定「顯示」 圖5c: 虛擬顯卡的記憶體容量調好調滿 進虛擬機裡面設解析度

二、 Guest Additions

如果在 host 裡面放一個名為 「VirtualBox Guest Additions」 特殊的 iso 檔, 讓 guest 可以安裝額外的驅動程式 (變成 para-virtualization 機制), 那麼 host 與 guest 之間的硬體資源就可以更順暢地整合, 例如任意調整螢幕解析度、 全螢幕模式、 從 host 分享資料夾給 guest 等等。

  1. 在 host 裡面 安裝 VirtualBox Guest Additions。 在 windows host 裡面... (待補) ; 在 ubuntu host 裡面: apt install virtualbox-guest-additions-iso
  2. 在虛擬機視窗上方選取 「裝置」 => 「插入 guest additions CD 映像」。
  3. 在虛擬機裡面: sudo mount /dev/cdrom /mnt/t1 (因為我製作的虛擬機映像檔禁止自動掛載, 且已事先建立 /mnt/t[1234] 等等目錄。 sudo 的密碼是一個空格。) 此時 ls /mnt/t1 應該要看到 VBox*Additions* 等等檔案。
  4. 再來, 在虛擬機裡面執行 sudo /mnt/t1/VBoxLinuxAdditions.run, 就開始安裝一堆驅動程式 (kernel 模組啦)。 虛擬機必須重開機, 新的 kernel modules 才會生效。

進行以下操作前, 請先看本文最上面的截圖。 綠色虛線部分是虛擬機的勢力範圍; 上下的灰色部分是 virtualbox 的選單與工具列。 萬一要是的選單與工具列不見了 (例如切換到全螢幕模式), 可以按 「右ctrl Home」 把 virtualbox 的選單叫出來。

[任意調整螢幕解析度] 如果用滑鼠把虛擬機視窗拉小, 會出現捲軸 (scroll bars), 因為此時 guest 的桌面只有一小部分直接顯示在 host 的桌面上。 如果在虛擬機上方 「檢視」 選單下, 勾選了 「自動調整顯示客體大小」, 那麼當你拉大拉小虛擬機視窗時, guest 會被通知 「螢幕的解析度改變了」, 進而馬上跟著調整畫面。 當然這時也就不再需要捲軸了 -- 最明顯的是桌面右下角的電源圖示會永遠保持在可見範圍的右下角。 另外推薦再試試 「檢視」 選單下, 喧賓奪主的 「全螢幕模式」, 及客人全螢幕但邀請主人的視窗進來, 有點令人頭昏的 「無縫模式」。

[Host 分享目錄給 guest] 從虛擬機上方 「裝置」 選單下, 選 「共用資料夾」。 對話框右上角有一個小小的資料夾 (和加號) 圖示。 點下去之後的對話框當中, 「資料夾路徑」 可以從 host 選取一個資料夾以便分享給 guest。 而 「資料夾名稱」 則是從 guest 裡面看到的名稱, 可以隨便取, 例如叫做 shared_from_host 好了。 設定完、 確定之後, 回到 guest 裡面執行: sudo mount -t vboxsf shared_from_host /mnt/t4 之後就可以從 /mnt/t4 底下看到 host 所分享出來的目錄。 注意: host 所分享的, 不可以是 symbolic link。

以上參考 Make VirtualBox Full Screen 如何安裝VBOXADDITIONS以調整VirtualBox下虛擬OS的解析度

好啦, 現在你從微軟視窗囚室裡面看到通往自由的逃脫地道的入口了, 下一步該怎麼做, 很清楚了吧 ;-) 請到 從零開始的 linux 學習指南, 跳到 「安裝成功之後, 建議先看這三篇」 開始看起囉!

1 則留言:

  1. 最近垃圾留言太猖狂 (還是英文的...是在哈囉?) 所以改成審核制,且必須先登入 google 帳號才能留言。

    回覆刪除