這學期我的課程環境被關在 virtualbox 虛擬機環境裡面, 於是我製作了 虛擬機映像檔。 請把 20/bionic-g20C.vdi.gz (或者更新的版本, 請先查看 00README.txt) 下載回你的 MS Windows、 將它解壓縮 (原始的 .gz 檔可作為備份,不要刪除!) 並且 安裝 virtualbox for windows。
一、 基本設定
- 啟動 virtualbox、 點左上角的 「新增」、 幫虛擬機取一個名字、 選定虛擬機類型為 Linux 的 Ubuntu 64bit。
- 設定虛擬機可用的記憶體。 建議 guest 至少要有 4GB; 但也請留至少 4GB 給 host 用。 如何判斷你的 windows host 有多少記憶體? 叫出工作管理員, 切換到 記憶體分頁。
- 勾選 「使用現有虛擬硬碟檔案」、 點右邊資料夾圖示、 找到剛剛解壓縮出來的 bionic-g20C.vdi 。
- OK, 回到 virtualbox 主畫面, 就可以按 「啟動」 開啟虛擬機。 看到虛擬機裡面的開機選單 (目前版本是朝陽空拍圖), 應該就成功了。 按一下上下箭頭, 阻止它數秒。 建議先直接關機, 因為預設的解析度太低, 很難用。 註: 這一次暴力關機, 被問到 「儲存電腦狀態」 或 「關閉電腦電源」 時, 可以選後者, 因為現在還沒有動到虛擬硬碟。 以後當然就不要暴力關機了。
- 回主選單, 選 「機器」 => 「顯示」 (圖 5a) 或是 在虛擬機名稱上面按滑鼠右鍵, 選 「設定」 再選 「顯示」 (圖 5b) -- 我在兩個不同版本的 virtualbox 上面看到的介面略有差異。 總之, 叫出 「顯示」 的設定選單後, 切到 「畫面」 分頁, 把 「視訊記憶體」 調好調滿 (128MB)、 啟動 3d 加速、 啟動 2d 加速。 (圖 5c) 我的 host 本身就沒有顯卡加速, 所以只是勾爽的而已。
- 再次啟動虛擬機。 左下角主選單選 「偏好設定」 => 「螢幕設定」, 就可以選取較高解析度了。
也請參考 VirtualBox 建立新的虛擬機器設定教學 的前幾步。 (但因為他是從零開始安裝 guest ubuntu, 所以比我這篇麻煩。)
二、 網路設定: 如何對外開放 guest 上的服務
如果你的 host 電腦所在的區網很安全 (沒有人會惡意掃描可登入的服務等等), 可以考慮把虛擬機從完全隔離的自閉內網拉到跟 host 並行的實體區網, 以便區網內其他電腦 (或你的手機) 可以看得到它所提供的服務。 進入虛擬機的 「網路」 設定, 在 「介面卡1」 分頁, 「附加到:」 原本設定是 「NAT」, 請把它改成 「橋接介面卡」, 「名稱」 請選擇 host 對外的那張網卡。
如果需要把 guest 的服務對外開放, 但又想維持較安全的 NAT
(不想改用橋接), 那麼就需要設定 port forwarding。
在 virtualbox 的 「機器」 => 「設定」 選單裡找到
「網路」 => 「介面卡1」 的設定,
打開 「進階」 => 「連接埠轉送」。
按右側的小綠加號, 新增一條規則。
例如想把 guest 位於 port 22 的 ssh 服務拉到 host 的 port 5803,
只需要填三處: 「名稱」 填 "ssh" (任意自取)、
「主機連接埠」 填 "5803"、 「客體連接埠」 填 "22"。
「確定」 後立刻生效, 不需要重開機。
從 host 可以這樣連線: ssh -p 5803 your_user@localhost
主機 IP 留白則預設值為 0.0.0.0 表示允許任何機器連這個 port;
若填 127.0.0.1 則只允許 host 連這個 port。
guest IP 可以留白則是因為反正 virtualbox 知道。
詳見
howtogeek 文章。
如果 host 是 windows 10, 而且從 host 可以用 pietty 連進 guest (linux),
但是從外面其他機器卻無法連進去, 那有可能是被
windows 防火牆 擋住了。
請打開 「控制台」=>「windows defender 防火牆」=>「允許的應用程式」,
勾選 VirtualBox Manager。
三、 Guest Additions
如果在 host 裡面放一個名為 「VirtualBox Guest Additions」
特殊的 iso 檔, 讓 guest 可以安裝額外的驅動程式
(變成 para-virtualization 機制),
也就是 guest OS 想要存取硬體時, 都很節制地透過
進行以下操作前, 請先看本文最上面的截圖。
綠色虛線部分是虛擬機的勢力範圍;
上下的灰色部分是 virtualbox 的選單與工具列。
萬一要是的選單與工具列不見了 (例如切換到全螢幕模式),
可以按 「右ctrl Home」 把 virtualbox 的選單叫出來。
[任意調整螢幕解析度]
如果用滑鼠把虛擬機視窗拉小, 會出現捲軸 (scroll bars),
因為此時 guest 的桌面只有一小部分直接顯示在 host 的桌面上。
如果在虛擬機上方 「檢視」 選單下, 勾選了 「自動調整顯示客體大小」,
那麼當你拉大拉小虛擬機視窗時, guest 會被通知 「螢幕的解析度改變了」,
進而馬上跟著調整畫面。 當然這時也就不再需要捲軸了 --
最明顯的是桌面右下角的電源圖示會永遠保持在可見範圍的右下角。
另外推薦再試試 「檢視」 選單下, 喧賓奪主的 「全螢幕模式」,
及客人全螢幕但邀請主人的視窗進來, 有點令人頭昏的 「無縫模式」。
[Host 分享目錄給 guest]
從虛擬機上方 「裝置」 選單下, 選 「共用資料夾」。
對話框右上角有一個小小的資料夾 (和加號) 圖示。
點下去之後的對話框當中,
「資料夾路徑」 可以從 host 選取一個資料夾以便分享給 guest。
而 「資料夾名稱」 則是從 guest 裡面看到的名稱,
可以隨便取, 例如叫做 shared_from_host 好了。
設定完、 確定之後, 回到 guest 裡面執行:
以上參考
Make VirtualBox Full Screen 與
如何安裝VBOXADDITIONS以調整VirtualBox下虛擬OS的解析度。
如果想要把 「連接在 host 上的 usb 裝置」 讓給 guest 用,
就要安裝 extension pack。 Windows host 請見 中文教學。
Linux host 的話, 以 root 的身份 好啦, 現在你從微軟視窗囚室裡面看到通往自由的逃脫地道的入口了,
下一步該怎麼做, 很清楚了吧 ;-) 請到
從零開始的 linux 學習指南, 跳到 「安裝成功之後, 建議先看這三篇」 開始看起囉!
apt install virtualbox-guest-additions-iso
sudo mount /dev/cdrom /mnt/t1
(因為我製作的虛擬機映像檔禁止自動掛載, 且已事先建立 /mnt/t[1234] 等等目錄。
sudo 的密碼是一個空格。)
此時 ls /mnt/t1
應該要看到 VBox*Additions* 等等檔案。
sudo /mnt/t1/VBoxLinuxAdditions.run
,
就開始安裝一堆驅動程式 (kernel 模組啦)。
虛擬機必須重開機, 新的 kernel modules 才會生效。
sudo mount -t vboxsf shared_from_host /mnt/t4
之後就可以從 /mnt/t4 底下看到 host 所分享出來的目錄。
注意: host 所分享的, 不可以是 symbolic link。
四、 Extension Pack
apt install virtualbox-ext-pack ; adduser $USER vboxusers
然後登出再登入即可, 詳見
這個問答。 成功之後, 在設定選單裡的 USB 分頁裡,
右側的加號 "加入新的 usb 篩選器" 按下去之後,
會出現 host 看到的所有 usb 裝置的清單讓你選。
五、 結語
最近垃圾留言太猖狂 (還是英文的...是在哈囉?) 所以改成審核制,且必須先登入 google 帳號才能留言。
回覆刪除是Lubuntu嗎?我工作關係需要Windows環境,先前自己選了VirtualBox+Lubuntu開通地道。看到和自己一模一樣的桌面包在VirtualBox裡很開心!
回覆刪除(乾杯) 是啊, lubuntu 18.04 。 然後聽說新版的 lubuntu 20.04 從 lxde 改成 lxqt ...
刪除正在試著用 virtualbox 安裝 proxmox, 安裝過程遇到惱人的解析度太低的問題: https://forum.proxmox.com/threads/proxmox-3-4-install-resolution-issue.22346/ 在討論串最後讀到這個解法: http://robertoviola.cloud/2020/04/16/proxmox-no-screen-during-installation/ 筆記一下.. 改用 kvm 就不會有問題, 這個真的是 virtualbox 的 bug https://www.whonix.org/wiki/Template:VirtualBox_Screen_Resolution_Bug
回覆刪除