###### tags: `紀錄` # Virtual OS Install Guide ## 前言 本篇為介紹如何使用VirtualBox來建構一個與當前電腦系統不相關的OS環境來使用。 Virtual OS的好處是: 1. 在做開發時不會直接的影響到當前電腦資料。 2. 有不同的作業系統供選擇使用 ## VirtualBox 下載 進入下方連結下載VirtualBox: https://www.virtualbox.org/wiki/Downloads ## Virtual OS 建構 本篇以建構Ubuntu作業系統為舉例。 ### ==Ubuntu OS下載== 先至下方連結下載Ubuntu的作業系統: https://www.ubuntu-tw.org/modules/tinyd0/ 依當次開發需要選擇適合的OS版本,本次是使用20.04的64位元版本。 ### ==將Ubuntu OS載入VirtualBox== 開啟VirtualBox後點選上方"**新增**"來增添一個新的虛擬模擬器位置。  點開後在"**名稱**"為這個虛擬模擬器取一個自己喜歡的名字,這邊舉例取名為"**Ubuntu 20.04**"。 而下方的"**類型**"及"**版本**"選擇要使用的OS版本規格,本次是使用Linux的Ubuntu 64-bit。  接著設定基礎記憶體的大小為4G以上(要留意當前電腦的使用空間)。  繼續選擇"**立即建立虛擬硬碟**"及"**VHD(虛擬硬碟)**"。  再來在存放裝置選擇"**固定大小**"(選"動態配置"也是可以),然後大小設定在16GB以上。  建構完成後便能在VirtualBox管理員的左方看到新建完的虛擬模擬器,點選後按上方的"**設定**"。  在設定中的"**一般**"的"**進階**"選項,將"**共享剪貼簿**"及"**拖放**"都設定為"**雙向**"。 此目的是為了到時候可以直接將當前電腦作業系統中的文字內容跟Virtual OS中的文字內容可以直接複製貼上去分享資訊(比方我的電腦是Windows OS而VirtualBox是Ubuntu OS,可以直接將Windows的文字資料複製到Ubuntu內),若沒開啟這項功能,將無法在兩個OS間使用複製貼上功能。  在設定中的"**系統**"點選"**處理器**"將其調為至少2個GPU(但不能超過綠色範圍)。  然後在設定中的"**存放裝置**"點選"**控制器IDE**"右方的"**加入光碟機**"。  點選"**加入**",並選取剛剛下載的Ubuntu 20.04系統。  在網路設定中選擇"**啟用網路卡**"並選擇"**橋接介面卡**",此目的能將當前使用電腦所連接的網路提供給Virtual OS使用。  完成後便可點選VirtualBox管理員內上方的"**啟動**"來開啟這個新的虛擬模擬器。  ### ==Ubuntu OS設定== 選取剛剛放入光碟機的Ubuntu 20.04作為啟動磁碟。  順利燒入後,在語言選擇English(中文也可以,但建議英文,之後操作起來較為方便),然後選擇右方的"**Install Ubuntu**"。  Keyboard layout部分也都選擇English,完成後點選右下"**Continue**"。  接著"Updates and other software"跟"Installation type"皆不需要調整(但還是可以確定一下跟下方選擇有無一樣),完成後選擇下方"**Install Now**"跟"**Continue**"。  在地區選擇確定一下是否在台灣,確定後按下"**Continue**"。  再來設定使用者,自己為user命名並設定密碼。  完成後執行,執行完成系統會提示要重啟,按下"**Restart Now**"重啟系統。  重啟完成後便能登入剛剛建立的User中。  進入桌面後跳出的視窗可以全部點選右上方"**skip**"來跳過,至此便順利將Ubuntu OS灌入VirtualBox中。  ## 一些補充功能 ### ==將VirtualBox視窗調整至適合螢幕的比例== 點選上方工具欄的"**裝置**",選取"**插入Guest Additions CD映像**",並點選"**Run**"。執行完成後便按下Enter結束視窗。  此時將視窗放大,畫面便會配合螢幕調整到適合的尺寸。  ### ==設定管理權限== 設定管理權限的目的在於,讓外部的使用者無法輕易地更改或使用有權限的檔案。 設定方式為: 使用快捷鍵"**ctrl+alt+t**"開啟Terminal(終端機)。  使用Command(指令) `sudo passwd root` 並設定管理權限密碼(第一個是要輸入user密碼,後面兩個是設定管理權限密碼)。  設定完成後,以後便可使用`sudo su`或`sudo -s`等指令來進入管理權限進行操作。  ### ==分享檔案資料== 在VirtualBox中有兩種分享檔案的方式,一種是"**Samba**"另一種是"**共用資料夾**"。 其差別在於: **共用資料夾**是只能在""**自己電腦跟Virtual OS間**""做檔案的分享、傳輸。 而**Samba**是只要在同一個網域內的電腦間皆可以分享檔案。 以下分別介紹兩種的操作方式。 #### ==**共用資料夾**== 先在VirtualBox內建立一個資料夾作為Virtual OS端的分享資料夾(可自行選擇是否要使用sudo限制權限,不設定權限檔案內資料可以任意移動,若在sudo權限內操作,當要移動檔案內資料時需要先登入權限)。 可以使用Command:`mkdir`來建立一個空的資料夾,比方我要在"**/home/malo*"下建立一個"**share_folder**"資料夾。  建立完成後可透過GUI(圖形化介面)確認。  接著關閉VirtualBox視窗,並在VirtualBox管理員的設定內點選"**共用資料夾**",接著點選右方"**加入新的共用資料夾**"  在資料夾路徑選擇"其它"來選擇在當前桌面端想要分享的資料夾,比方我要在我目前Windows系統內建立一個"**share**"資料夾作為電腦端的分享。   完成後要點選"**自動掛載**",並在下方掛載點輸入剛剛在Virtual OS端建立的資料夾位置(比方我剛剛是在/home/malo/內建立的share_folder資料夾)。  完成後按下確定,並重新開啟Virtual OS,如此一來Windows OS的share資料夾跟Virtual OS的share_folder資料夾便成為了共享的資料夾。 可以透過在任一端資料夾丟入一檔案來檢查是否成功。  #### ==**Samba**== #### **<Virtual OS端>** 先使用`ifconfig`指令來查看當前連接到的網路位置。 如果無法使用`ifconfig`指令,為須先用`apt install net-tools`指令下載net-tools。  完成後便可順利使用`ifconfig`指令來觀看當前網路位置。  使用`apt-get install samba`指令來下載Samba。 (其中`apt-get`或`apt`是代表在作業系統中操作,跟當前在哪個目錄執行指令並沒有關係;後面的`install`為下載的指令,最後的samba是要下載的內容)  完成後使用`smbpasswd -a <名稱>`指令來設定Samba的使用者權限的密碼(其中的<名稱>為輸入自己設定的名字),接著用`smbpasswd -a root`指令來設定外部連接時的權限密碼。  再使用`gedit /etc/samba/smb.conf`指令來"**在檔案內的最下方**"新增一個Samba使用者。  在檔案內最下方輸入以下資料,其中我輸入"malo"的部分要改為你自己的使用者名稱(也就是剛剛用`smbpasswd -a <名稱>`所設定的名字),完成後按上方的"**Save**"儲存後關閉視窗。  最後使用`/etc/init.d/smbd restart`指令來重啟。  #### **<Windows OS端>** 在當前電腦的OS(比方本次是Windows)中開啟資料夾,並在"**本機**"點選右鍵,並按下"**連線網路磁碟機**"。  選擇隨意一個磁碟作為當前電腦端的連線磁碟,比方我這次是選擇"**磁碟機Z:**"。  接著下方的資料夾使用手動輸入,**要注意:**輸入內容中的"**\\**"是**反斜線**,中間的IP位置是剛剛在Ubuntu OS中用`ifconfig`指令所看到的(如下圖一),而最後方的名稱為剛剛為Virtual端Samba所取的名字(比方我剛剛取得叫"malo"),都設定完後按下下方的"完成"。   然後會需要權限的認證,上方的名稱為"**root**",而密碼為剛剛在Ubuntu OS中使用`smbpasswd -a root`指令為root所設定的密碼,完成後按下"確定"。  如此一來便會跳出一個視窗,可以觀察到共享的磁碟機已經順利裝上去了。  可以透過在磁碟機中建立一個測試用的空資料夾來檢查是否成功。  ### ==架設HDD(外接硬碟)== 當需要擴大記憶體空間的時候,可以使用"**外接虛擬硬碟的方式**",意義上就與現實生活中的實體外接硬碟是一樣的,而在使用虛擬HDD時分為兩個部分: "**建構HDD**"與"**外接HDD**"。 "**建構HDD**"的目的是要從無到有建立一個虛擬硬碟,並完成此虛擬硬碟的各方面基本規格設定。 而"**外接HDD**"就像是現實生活中把真的外接硬碟插到電腦上一樣,讓電腦有一個額外的記憶體空間可以使用。 以下分別介紹兩項步驟如何操作: #### ==建構HDD== 先將運行中的Virtual OS關閉,並在VirtualBox管理員的"設定"中選取"**存放裝置**"並點選控制器中右上方的"**加入硬碟**"。  點選"**建立**"來新建一顆虛擬硬碟。  接著跟著下面的步驟點選虛擬硬碟的規格,選擇"**VHD(虛擬硬碟)**",然後"**動態分配**"或"**固定大小**"皆可以,最後依自己的需要設定虛擬硬碟的空間大小(這邊是假設建立一顆12GB的外接硬碟)。    再來便可看到在"**Not Attached**"的選單中有剛建立的HDD(通常HDD的名字會是以Virtual OS的名稱後面加上"**.vhd**"的方式命名,而名字後方會有"**_1**"代表是第一個建立的外接硬碟,後方是"**_2**"代表第二顆建立的以此類推;若還是無法確定,可以透過後方顯示的記憶體大小輔助觀察)。 最後按下選擇,即可完成此HDD的建構設定。  #### ==外接HDD== 新的一顆HDD規格設定結束並建構完成後,便可開啟Virtual OS來進行外接HDD的動作。 首先在Terminal(終端機)內輸入Command`mkfs.ext4 /dev/sdb`來格式化HDD,其中後方的"**sdb**"是代表外接硬碟的裝置代號: 第一顆外接硬碟是sdb,第二顆是sdc,第三顆是sdd...以此類推。 而每顆HDD只有第一次使用時需要格式化,之後使用皆跳過這個步驟。  接著可以為這顆HDD命名,方便之後使用時可以知道這顆HDD的功能,比方我可以取名叫"**test_HDD**",代表這顆虛擬外接硬碟是用來測試用的。(當然,如果不想取名字也可以跳過這個步驟)  現在可以透過"**Files**"的"**Other Locations**"中觀察到已建立完成一顆虛擬外接硬碟在OS中。  但尚未將此虛擬外接硬碟接到Computer內,因此需要先在Computer中的檔案內建立一個空的資料夾,作為待會HDD的放置位置。 假設我們要在Computer中的"**/mnt**"下建立一個新的資料夾"**HDD1_folder**",需先使用Command`cd /mnt`進入Computer中mnt資料夾內。  然後使用`mkdir <檔案名稱>`來建立一個新的資料夾,其中後方的"**<檔案名稱>**"是自己幫資料夾命名的(比方我取名叫"**HDD1_folder**")。  如此一來就建構好了待會要外接的HDD的位置,最後只需要在"**/mnt資料夾內**"使用`mount /dev/sdb HDD1_folder`指令,即可將剛剛在Computer外的HDD外接到Computer上的/mnt/HDD1_folder資料夾內。  可以點進mnt的資料夾內,並放入一個檔案到剛剛建立的HDD1_folder中,待會重啟Virtual OS後觀察HDD1_folder內的檔案是否還在,因為每次重啟Virtual OS時,都需要重新外接一次HDD,所以若先前放入HDD1_folder內的檔案全部不見了,代表有成功。 只需在/mnt內再次使用`mount /dev/sdb HDD1_folder`指令將HDD接回這個資料夾下,便可以在資料夾內看到之前放入HDD內的全部內容。(下面圖示作範例) 在外接好的HDD1_folder資料夾內建一個測試用檔案"**abcd**"。   接著重啟Virtual OS,重啟後打開剛剛的HDD1_folder資料夾,可以觀察到剛剛放入的檔案"**abcd**"並不在資料夾內,那是因為此時HDD並沒有接到HDD1_folder上。  只需要再次透過`mount /dev/sdb HDD1_folder`指令將sdb虛擬外接硬碟接到HDD1_folder上,便能再次在資料夾中看到HDD中的檔案,也就代表HDD有順利外接成功。 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up