章節 1 虛擬主機

因為使用者的經驗、能力與解決問題的能力會有所差異,在接觸新的系統之前,最好還是先在虛擬主機上先運行過一次,確認沒問題之後再把操作搬到實體電腦上去,才不會遇到預料之外的問題。本書所使用運行虛擬主機的軟體為 VirtualBox。

1.1 事前準備

在開始教學之前,確定你的環境要能上網存取網路上的資源。 再來是檢查自己的電腦可不可以運行 VirtualBox(或是其他可以運行虛擬主機的軟體),要運行虛擬主機通常都要去 BIOS 打開一個叫做擬化功能(Virtualization Technology)的功能。

下列是我所整理各廠牌虛擬化功能的開啟方式:

1.2 下載 Ubuntu 映像檔

進到 Ubuntu 官方網站後,點選右上角的「Download」展開下載頁面。

ubuntu.com 官方網站

圖 1.1: ubuntu.com 官方網站

點選「Get Ubuntu Server」跳轉至下載頁面。

ubuntu.com 官方網站下載頁面

圖 1.2: ubuntu.com 官方網站下載頁面

按畫面中的綠色按鈕「Download Ubuntu Server 22.04.2 LTS」會跳轉到下載頁面,開始下載 Ubuntu 系統映像檔案 (*.iso)。

ubuntu.com Ubuntu 伺服器版本下載

圖 1.3: ubuntu.com Ubuntu 伺服器版本下載

選項的簡易說明:

  • Option 1 - Manual server installation: 下載映像檔案。

  • Option 2 - Instant Ubuntu VMs: Multipass 是快速部屬虛擬主機的軟體,詳細說明可以看這裡,而這裡我們已經選用 VirtualBox 了所以不會用到。

  • Option 3 - Automated server provisioning: 利用 MaaS (Metal-as-a-Service) 安裝虛擬機。MaaS是管理數台虛擬主機用的服務,並不局限於 Ubuntu,Windows、CentOS 與 ESXi都可以在上面部屬。

1.3 安裝 VirtualBox

首先到 VirtualBox 官方網站的下載頁面,下載適合你電腦系統的安裝執行檔,假如是 Windows 系統就點擊 「Windows hosts」的下載連結,如果是其他作業系統就根據你的作業系統下載對應的安裝程式。

www.virtualbox.org 的下載頁面

圖 1.4: www.virtualbox.org 的下載頁面

安裝的過程中只需使用預設的設定即可,預設設定做了安裝虛擬主機的驅動程式、關聯檔案…等等,正常來說不需要變更它。

virtualbox 安裝程式

圖 1.5: virtualbox 安裝程式

這裡按下一步即可,安裝過程中可能會跳出一些警告,點擊「是」即可。

virtualbox 安裝程式(驅動程式安裝)

圖 1.6: virtualbox 安裝程式(驅動程式安裝)

依賴程式提示訊息。

virtualbox 安裝程式(依賴程式安裝)

圖 1.7: virtualbox 安裝程式(依賴程式安裝)

安裝程式安裝中。

virtualbox 安裝程式(安裝中)

圖 1.8: virtualbox 安裝程式(安裝中)

最後看到安裝成功畫面代表安裝完成。

virtualbox 安裝程式(安裝完成)

圖 1.9: virtualbox 安裝程式(安裝完成)

1.4 VirtualBox 介面簡介

在安裝完 VirtualBox 後,打開並不會有預先安裝好的作業系統,需要在 VirtualBox 內自行新增虛擬主機後,再將作業系統安裝至虛擬主機內;又或是匯入現有的虛擬主機映像檔(*.ova、*.ovf 格式)。

首先介紹 VirtualBox 的使用者介面:

VirtualBox 的操作介面

圖 1.10: VirtualBox 的操作介面

如圖 1.10 所示,右邊主要功能圖示由左而右的功能分別是:

  1. 喜好設定: 設定 VirtualBox 的整體設定,像是軟體語言、虛擬主機預設存放位置…等等
  2. 匯入: 匯入虛擬主機檔案 (.ovf)
  3. 匯出: 匯出虛擬主機檔案
  4. 新增: 新增新的虛擬主機
  5. 加入: 加入已經存在的虛擬主機

1.5 新增虛擬主機設定

按「新增」新增新的虛擬主機。這裡先點選「專家模式」,專家模式可以一併設定虛擬主機的所有設定。

建立虛擬主機

圖 1.11: 建立虛擬主機

1.5.1 名稱和作業系統

名稱填入「Ubuntu」,ISO 映像選擇剛才下載下來的 Ubuntu 映像檔。這裡請勾選「略過無人值守安裝」。

名稱和作業系統設定

圖 1.12: 名稱和作業系統設定

1.5.2 無人值守安裝

如果上一步有勾選略過無人值守安裝,畫面會像下圖一樣:

略過無人值守安裝設定

圖 1.13: 略過無人值守安裝設定

1.5.3 硬體

記憶體大小根據每個人電腦的性能做調整,虛擬主機沒用來做什麼事那設定 4 GB 很夠用了。處理器可以設定為 2 或是更高,但是建議不要超過圖上的綠色指示,不然電腦會負荷不了。

硬體設定

圖 1.14: 硬體設定

因為我寫教學時是使用虛擬主機撰寫,電腦資源沒有那麼多,所以上圖才會只有設定 2 GB,自己安裝時照上面說明建議的就可以了

1.5.4 硬碟

將虛擬硬碟設定為 1.0 TB,且將硬碟類型變更為「VMDK」格式,並勾選「分割成 2 GB 部分」,如下圖:

硬碟設定

圖 1.15: 硬碟設定

預設的虛擬主機存放位置位於使用者資料夾中的 Virtual VMs 資料夾,假如的使用者是 kuaz,那虛擬主機就位於:

C:\Users\kuaz\VirtualBox VMs

設定完後點擊「完成」以建立虛擬主機。

這裡我會選 VMDK 格式的原因是因為,轉移虛擬主機檔案時,單個檔案會輕易地超過 4 GB,而超過此上限的檔案在複製時,如果隨身硬碟裝置格式不是 NTFS 格式 的話,會沒有辦法複製。 為了免去到時候分割虛擬主機的麻煩,在這邊先選擇 VMDK 作為虛擬主機的檔案格式。

完成後,會在 VirtualBox 左邊的選單看見剛剛新建的虛擬主機,不過此時的虛擬主機內還沒有作業系統。

完成建立虛擬主機

圖 1.16: 完成建立虛擬主機

為了要使用跟伺服器一樣的設定,需要再新增另一顆跟原本硬碟一樣大小的硬碟做鏡像備份。點選右邊橘色的齒輪「設定⚙」。

在存儲裝置的「控制器:SATA」部分,點選硬碟圖案(有綠色加符號的)新增新的硬碟。

虛擬主機存放裝置設定

圖 1.17: 虛擬主機存放裝置設定

點選「建立」建立與第一顆硬碟條件一樣的硬碟。

虛擬主機,管理存放裝置

圖 1.18: 虛擬主機,管理存放裝置

選取「專家模式」一併設定。

虛擬硬碟格式

圖 1.19: 虛擬硬碟格式

與第一個硬碟相同,硬碟檔類型為「VMDK」,硬碟大小「1 TB」,並勾選「分割成 2 GB 部分」。

虛擬硬碟格式

圖 1.20: 虛擬硬碟格式

完成後,點擊「選擇」選擇剛才新增的硬碟。

虛擬硬碟格式

圖 1.21: 虛擬硬碟格式

建立完後成果如下:

虛擬主機完成存放裝置設定

圖 1.22: 虛擬主機完成存放裝置設定

會看到「控制器:SATA」裡面有兩個磁碟。到這裡虛擬主機的設定就完成啦。

1.6 安裝作業系統

看到這個畫面點擊「啟動」,啟動剛才設定的作業系統。

設定完成畫面

圖 1.23: 設定完成畫面

接下來應該會進到作業系統的安裝畫面。進到安裝畫面後,如果是第一次啟動會出現主機鍵的訊息,這裡先按「擷取」按鈕擷取。

主機鍵在安裝作成中很重要,這裡要先記下來目前的主機鍵被定義成什麼按鈕,預設為右 Ctrl。擷取按鈕後將會無法切回 Windows 操作,即在退出擷取模式前都無法操作虛擬主機以外的視窗。退出擷取模式按下主機鍵即可退出。

安裝過程中提示的主機鍵

圖 1.24: 安裝過程中提示的主機鍵

在安裝過程中使用方向鍵⬆️⬇️⬅️➡️(選擇)、Enter↪️(確認)與 Esc(返回)操控安裝程式介面。

擷取後用方向鍵選取「Try or install Ubuntu」進到下一個畫面。

1.6.1 語言

稍待 Ubuntu 作業系統映像檔載入後,安裝程式會跳出選擇語言的畫面,在這裡選擇適合你的語言。

Ubuntu 安裝畫面,選擇系統語言

圖 1.25: Ubuntu 安裝畫面,選擇系統語言

1.6.2 更新提示

當 Ubuntu 在安裝過程中,如果有連上網路,安裝程式會偵測當前的安裝程式是否需要更新,如果出現了這個畫面代表安裝程式有新的版本,可以選擇「Update to the new installer」將安裝程式更新至最新版本。當然,也可以在系統安裝完後更新。

Ubuntu 安裝畫面,安裝程式更新

圖 1.26: Ubuntu 安裝畫面,安裝程式更新

1.6.3 鍵盤配置

這裡可以設定鍵盤的:

  • Layout(布局):鍵盤的語言

  • Variant(鍵位):一般在台灣都是用 QWERTY 配置與預設的 English(US)相同。詳細說明可以在找到

Ubuntu 安裝畫面,選擇鍵盤配置

圖 1.27: Ubuntu 安裝畫面,選擇鍵盤配置

1.6.4 安裝類型

在安裝類型選擇 Ubuntu Server 就好,minimized 版本會少一些我們之後會用到的功能,到時候還是要自己裝回來。

Ubuntu 安裝畫面,系統安裝類型

圖 1.28: Ubuntu 安裝畫面,系統安裝類型

1.6.5 網路連線

這裡可以設定 Ubuntu 的網路連線,預設是由 DHCP 設定,通常不用變更,如果這裡連線失敗,也可以等開機後再做設定。

Ubuntu 安裝畫面,網路連線設定

圖 1.29: Ubuntu 安裝畫面,網路連線設定

1.6.6 Proxy

除非當前的網路環境需要設定 proxy(代理伺服器),否則不需要設定。

Ubuntu 安裝畫面,proxy 設定

圖 1.30: Ubuntu 安裝畫面,proxy 設定

1.6.7 鏡像

同上,不需要特別設定 mirror(鏡像),安裝程式會自動判斷選擇哪個地方的鏡像網址更新。

Ubuntu 安裝畫面,套件鏡像位置設定

圖 1.31: Ubuntu 安裝畫面,套件鏡像位置設定

1.6.8 系統空間配置

以下 Raid-1 相關的設定是參考 (Evangelou 2020) 的 Gist 翻譯成中文文章。

  • 這裡選擇下面的「Custom storage layout」來製作 [Raid-1](https://linux.vbird.org/linux_basic_train/centos8/unit14.php#14.1)。
Ubuntu 安裝程式,磁碟配置設定

圖 1.32: Ubuntu 安裝程式,磁碟配置設定

  • 如果分割錯了、或是硬碟中有已經分割好的磁區也沒關係,從 AVAILABLE DEVICES 下面選擇要變更的硬碟 ➜「Reformat」➜「Reformat」,這會把硬碟的分割表刪除。
Ubuntu 安裝程式,磁碟配置重新格式化

圖 1.33: Ubuntu 安裝程式,磁碟配置重新格式化

  • 選擇第一個磁碟 ➜ 「Use As Boot Device」 當作開機磁碟
Ubuntu 安裝程式,磁碟配置選擇開機磁碟

圖 1.34: Ubuntu 安裝程式,磁碟配置選擇開機磁碟

  • 對第二個磁碟「VBOX_HARDDISK_VBf5d43868-04077409」也做同樣的事情,「Add As Another Boot Device」。

  • 接著為 //boot[SWAP] 做分區。

    • /boot:開機磁區

    • [SWAP]SWAP(記憶體置換空間)主要功能是當記憶體滿載時,會把現在沒有用到的程式先放到 SWAP 中,空給目前正在運行的程式使用

    • /:系統根目錄磁區

  • 選擇第一個磁碟的「free space」 ➜「Add GPT Partitation」,照下面的設定設定後,按「Create」建立。再來為 /boot 分區,通常開機磁區 512 Mb ~ 1Gb 就很夠用了,這裡我選擇 1Gb。

    • Size: 1G

    • Format: [ Leave unformatted ▾ ]

Ubuntu 安裝程式,磁碟配置開機磁區

圖 1.35: Ubuntu 安裝程式,磁碟配置開機磁區

  • 對第二顆硬碟做同樣的事。
Ubuntu 安裝程式,磁碟配置開機磁區

圖 1.36: Ubuntu 安裝程式,磁碟配置開機磁區

  • 再來是 [SWAP] 磁區,一般來說會用實體記憶體容量除以 2 或與記憶體相同容量作為 [SWAP] 磁區的容量,這裡我使用 32 Gb。選擇第一個磁碟 ➜「Add GPT Partitation」,照以下的設定設定後,按「Create」。

    • Size: 32G

    • Format: [ Leave unformatted ▾ ]

  • 對第二顆硬碟做同樣的事。

Ubuntu 安裝程式,磁碟配置 SWAP

圖 1.37: Ubuntu 安裝程式,磁碟配置 SWAP

  • 最後才是系統硬碟 / ,系統硬碟使用 /boot[SWAP]grub 剩下來的空間。選擇第一個磁碟 ➜ 「Add GPT Partitation」,照下面的設定設定後,按「Create」。

    • Size: 留空 預設為剩下硬碟的容量,正是我們所要的

    • Format: [ Leave unformatted ▾ ]

  • 對第二顆硬碟做同樣的事。

Ubuntu 安裝程式,磁碟配置系統

圖 1.38: Ubuntu 安裝程式,磁碟配置系統

  • 接著設定 Raid-1。選取「[ Create software RAID (md) ▸ ]」,選取兩個「partition 2」建立 md0 softRaid 磁區
Ubuntu 安裝程式,磁碟配置 md-0

圖 1.39: Ubuntu 安裝程式,磁碟配置 md-0

  • 同上,選取「[ Create software RAID (md) ▸ ]」,選取兩個「partition 3」建立 md1 softRaid 磁區

  • 同上,選取「[ Create software RAID (md) ▸ ]」,選取兩個「partition 4」建立 md2 softRaid 磁區

Ubuntu 安裝程式,磁碟配置完成 raid-1 配置

圖 1.40: Ubuntu 安裝程式,磁碟配置完成 raid-1 配置

  • 選擇 md0 (new) ➜ format ➜ Format: 選擇 ext4 格式 ➜ Mount: 掛載於 /boot ➜ 完成後選擇 Done

  • 選擇 md1 (new) ➜ format ➜ Format: 選擇 swap 格式 ➜ 完成後選擇 Done

  • 選擇 md2 (new) ➜ format ➜ Format: 選擇 ext4 格式 ➜ Mount: 掛載於 / ➜ 完成後選擇 Done

  • 設定完成🎉

Ubuntu 安裝程式,磁碟配置總覽

圖 1.41: Ubuntu 安裝程式,磁碟配置總覽

  • 截圖(續)
Ubuntu 安裝程式,磁碟配置總覽

圖 1.42: Ubuntu 安裝程式,磁碟配置總覽

  • 在最下面選擇「Done」,至下一步。

1.6.9 使用者設定

在這邊設定自己的使用者名稱與電腦名稱。

Ubuntu 安裝程式,使用者設定

圖 1.43: Ubuntu 安裝程式,使用者設定

  • Your name: asis

  • Your server’s name: asis0721

  • Pick a username: asis

  • Choose a password: asis

  • Confirm your password: asis

1.6.10 Ubuntu Pro

跳過。

Ubuntu 安裝程式,Ubuntu Pro

圖 1.44: Ubuntu 安裝程式,Ubuntu Pro

1.6.11 SSH

OpenSSH 是使用 SSH 通訊協定來遠端連線電腦的工具。防止連線中被竊聽、劫持或是其他攻擊。這裡先勾選「Install OpenSSH Server」讓安裝程式安裝。

如果擁有 Github 帳號,且有設定過 SSH,即可藉 Github 匯入綁定在 Github 的公鑰。

如果這邊不匯入的話,也可以待稍後開機後再用指令 ssh-import-id-gh <username> 匯入。

1.6.12 Snaps

這裡會列出一些伺服器常用的應用程式,如果沒有需求可以跳過。

Ubuntu 安裝程式,伺服器常用應用程式

圖 1.45: Ubuntu 安裝程式,伺服器常用應用程式

1.7 完成安裝

這個頁面是預覽 Ubuntu 安裝程式做過了什麼,都會記錄在這裡,通常不會有什麼問題所以可以不用理他,待安裝完成即可。

Ubuntu 安裝程式,安裝中

圖 1.46: Ubuntu 安裝程式,安裝中

安裝完成後選擇「Reboot Now」重新啟動

Ubuntu安裝程式,完成安裝

圖 1.47: Ubuntu安裝程式,完成安裝

1.8 VirtualBox 管理虛擬主機

1.8.1 啟動虛擬主機

依序選擇欲啟動的虛擬主機 → 「啟動」啟動虛擬主機。

VirtualBox 將虛擬主機開機

圖 1.48: VirtualBox 將虛擬主機開機

1.8.2 關閉虛擬主機

虛擬主機的導覽列 → 「檔案」 → 「關閉電源」 → 「傳送關機訊號」正常關閉虛擬主機電源。

VirtualBox 將虛擬主機關機

圖 1.49: VirtualBox 將虛擬主機關機

VirtualBox 將虛擬主機關機

圖 1.50: VirtualBox 將虛擬主機關機

1.8.3 虛擬主機設定

依序選擇欲編輯的虛擬主機 → 「⚙️設定」編輯虛擬主機。

VirtualBox 設定虛擬主機

圖 1.51: VirtualBox 設定虛擬主機