1. 程式人生 > >VirtualBox中安裝Ubuntu虛擬機器

VirtualBox中安裝Ubuntu虛擬機器

NOTE: 一開始安裝的Ubuntu12.04,後來又重新安裝了14.04。截圖基本使用了安裝12.04時的截圖,後來安裝14.04時又補充了幾張。該安裝過程對Ubuntu12.04和14.04都是適用的。

1. 選擇版本

1.1 Ubuntu桌面版與伺服器版的區別

桌面版與伺服器版,只要釋出版本號一致,這兩者從核心來說也就是相同的,唯一的差別在於它們的預期用途。桌面版面向個人電腦使用者,可以進行文書處理、網頁瀏覽、多媒體播放和玩遊戲。本質上說,這是一個為普通使用者所定製的多用途作業系統。另一方面,伺服器版旨在充當web伺服器,可用來託管檔案、網頁及相似內容。【1】

個人電腦上必備的組成部分是GUI(圖形使用者介面)。Ubuntu的桌面版預設帶有Gnome GUI,不過,如果你有需要,也可轉換為KDE或X。而伺服器版是不安裝GUI的。除了日常維護,伺服器不打算用於本地互動,因而GUI不僅沒有存在的必要,而且還會消耗伺服器多餘的資源。對於其他軟體,如辦公軟體、媒體播放軟體、瀏覽器等等,道理也是一樣。在伺服器版上這些統統找不到。

由於是面向伺服器的,伺服器版Ubuntu包含了所有你需要啟動託管站點的軟體。LAMP(Linux、Apache、MySQL和PHP),列出了與web伺服器相關的軟體。除非你自行安裝,否則這些在桌面版上是找不到的。

以上區別並非一成不變,通過安裝和解除安裝軟體包,你也可以將桌面版定製為伺服器版,反之亦然。多數想裝伺服器的人仍然需要GUI的便利,那麼可以從任何一個版本起步,然後只需安裝GUI或LAMP即可。

總結:

1. 桌面版為個人電腦所配置,而伺服器版適用於web伺服器。 
2. 桌面版預裝了GUI,而伺服器版沒有。 
3. 桌面版已經安裝了許多伺服器版沒有的軟體。 
4. 桌面版缺少Apache、MySQL和PHP,而這些在伺服器版中是標準配置。

所以,我們還是選擇桌面版吧。

1.2  i386 vs amd64

在Ubuntu官網,你如果下載32位的,那麼ISO檔案是以i386.iso結尾。如果是下載64位的,那麼ISO檔案是以amd64.iso結尾。

i386是x86系列的32位處理器。 
amd64是64位處理器。intel有自家的64位的,但不向下相容,64位以amd64最先推出,習慣稱為amd64。

2 安裝過程

1. 點選new,彈出一個建立新虛擬機器的視窗。

clip_image002

2. 給虛擬機器分配記憶體大小。

分配給VM的記憶體只有在加電啟動VM的時候才會被分分配,不啟動的時候是不會被分配的。

clip_image004

3. 建立一個虛擬硬碟檔案。

clip_image006

4. 選擇VDI格式,這是VirtualBox自己的格式。

clip_image008

5. 虛擬硬碟檔案的型別:選擇動態分配。

clip_image010

6. 選擇磁碟檔案存放的位置,和磁碟的最大容量。

預設存放在“C:\Users\xxx\VirtualBox VMs\ubuntu_14_04”下,為不佔用C盤空間,可以將其移到盤新建的資料夾下。

(NOTE:關於磁碟的最大容量,後來安裝Ubuntu14.04的時候分配了32G,但由於沒有重新截圖,因此截圖顯示的仍然是20G。)

clip_image012

7. 虛擬磁碟的Summary資訊

clip_image014

8. 整個建立過程的Summary資訊。

clip_image016

9. 點選Create後,會回到VirtualBox的主視窗。

clip_image018

10. 修改啟動順序:去掉軟碟機,硬碟放在光碟機前面

clip_image020

11. 插入光碟映像到虛擬電腦

clip_image022

12. 點選OK後,回到主視窗

clip_image024

13. 點選Start,開始安裝

(1)選擇語言:English

(2)點選 Install Ubuntu。

clip_image026

14. Prepare to install Ubuntu

保持預設選項,Continue。

clip_image028

15. Install Type

選擇“其它選項(Something else)”,自定義手動分割槽。

clip_image030

16. 下面就是最重要的分割槽了。

clip_image032

(1)點選“New Partition Table...”,此時會彈出一個對話方塊,詢問你是否將一整個磁碟建立為一個空分割槽,選Continue。

(2)這時,一個20G的free space就會被創建出來了。

17. 點“Add”,新增磁碟。

將滑鼠點到“free space”上,然後再點選“Add”。

clip_image034

參考鳥哥的Linux私房菜的做法【2】,做如下的分割槽:

(這裡按照32G的硬碟空間大小來分配的。)

這裡有2點需要注意:

a. 如果將/boot單獨分割槽,務必讓該分割槽在整顆硬碟的最前面部分。因此,我們針對/boot就選擇“Primary”,使其為主分割槽。,而"/"分割槽不必是主分割槽。

b. 分割槽時不能參照【2】中給出的分割槽順序:

"/"分割槽(邏輯) -> "/boot"分割槽(主分割槽) -> "swap"分割槽(邏輯) -> "/home"分割槽(邏輯)

因為Ubuntu中不會主動調整主分割槽的位置到最前面。這樣劃分分割槽後,最後剩下的 free space硬碟空間會顯示為 不可用,沒法再繼續分割槽了。

Ubuntu中應該按照先建立“主分割槽”,再建立“邏輯分割槽”的步驟,而且一般將swap分割槽放於最後,因此,分割槽的順序應當為:

"/boot"分割槽(主分割槽) ->"/"分割槽(邏輯) -> "/home"分割槽(邏輯) -> "swap"分割槽(邏輯)

(1)/boot分割槽

分配102M空間。(填入100M或101M的話,最終分配99M,所以這裡填入102M,系統最終會給根目錄分配100M)

clip_image036

(2)根目錄(/)的分割槽

根目錄分配10001M的大小

clip_image038

(3)/home目錄的分割槽

分配10001M空間

clip_image040

(4)記憶體置換空間(swap)

分配2002M空間(一般為分配記憶體大小的1.5-2倍)

因為swap是記憶體置換空間,因此不需要有掛載點。所以,請如同下圖所示,在『檔案系統型別』處挑選為『swap』吧!

clip_image042

(5)最終的分配結果如圖所示。

最後還剩餘12253M留作以後作練習磁碟操作的命令使用。

分割槽完成後,點選Install Now,開始安裝系統。

clip_image044

可以看到,按照"/boot"分割槽(主分割槽) ->"/"分割槽(邏輯) -> "/home"分割槽(邏輯) -> "swap"分割槽(邏輯)的順序建立分割槽後,sda的命名順序是:sda1 -> sda5 -> sda6 -> sda7。

如果按照 "/"分割槽(邏輯) -> "/boot"分割槽(主分割槽) -> "swap"分割槽(邏輯) -> "/home"分割槽(邏輯) 的順序建立分割槽,sda的命名順序會是:sda5 -> sda2 -> sda3 -> sda4。最後剩下的 free space硬碟空間會顯示為 不可用,沒法再繼續分割槽了。

clip_image046

18. 開始安裝後,地點選擇“Shanghai”

clip_image048

19. 鍵盤佈局選擇“中文”。

clip_image050

20. 然後輸入計算機名,並建立一個使用者名稱。

clip_image052

21. 此時開始安裝系統了。

clip_image054

22. 安裝完成後,需要重啟系統。注意需要點選一下回車鍵,才能完成重啟。

23. 啟用root帳戶

(1)Ubuntu 12.04安裝完成後,系統預設的Root賬號是關閉的。

這主要是為了保護系統的安全性,但有些時候為了安裝軟體或進行其它操作時需要獲得Root許可權,就得使用Root賬號。

首先需要開啟超級終端:Ctrl + Alt + T 快捷鍵開啟超級終端

然後輸入sudo passwd root

系統會提示你首先輸入當前使用者的密碼,然後提示你為root賬戶輸入新密碼,並再輸入一次確認。

(2)root使用者和普通使用者之間的切換

普通使用者切換到root使用者:執行sudo root即可,它會提示你輸入root的密碼。

Root使用者切換回普通使用者,有3種方法: su XXX(XXX是你自己安裝時候的使用者名稱),或是直接輸入exit,也可Ctrl+D組合鍵退出。

clip_image056

24. 如何以root使用者登入?

環境安裝好後,你重啟系統時只有2個使用者可供選擇:安裝系統時設定的使用者,和一個Guest使用者,沒法使用root使用者登入。然而只有root使用者才有許可權設定、安裝增強功能。所以我們需要把root使用者調出來。

(1)一開始參照的是【4】中的方法:

由於 ubuntu 12.04 的登入器改為 lightdm ,已經把 root 使用者給遮蔽了,需要將登入器換成 gdm ,才可以使用 other 選項。

安裝 gdm: sudo apt-get install gdm

執行完後,最終會彈出如下對話方塊,選擇gdm。(如果沒有自動彈出如下對話方塊,執行 sudo dpkg-reconfigure gdm ,這時將會彈出如下對話方塊,將登入管理器修改為 gdm,)

clip_image058

(2)但上面【4】的方案問題很大,最後改用【5】中的方案。

但【5】中步驟中 vi /etc/lightdm/lightdm.conf 使用的vi編輯器。但vi編輯器的上下左右鍵不起作用(按向上鍵會打出字母D),經查資料【6】,只有在Ubuntu下才會出現這種狀況,需要安裝vim。

(3)安裝vim:

sudo apt-get install vim

確保虛擬機器能上網。因為apt-get需要root許可權,所以加上sudo,然後提示輸入當前使用者的密碼。當然先切換到root使用者,然後直接執行 apt-get install vim 也可以。

(4)安裝完成後,按照【5】的方案設定:

a.切換到root 登陸,

su root

b. 輸入vim /etc/lightdm/lightdm.conf

Ubuntu14.04 中的位置換為【7】: /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

c. 編輯檔案。

首先,使用向下按鍵將游標移動到最後一行。

然後,鍵入命令"o":在當前行之下新開一行。

然後,增加如下2行:

# manually input user when login, so root can be input
greeter-show-manual-login=true
# disable guest user
allow-guest=false

然後,編輯完後按ESC鍵,按:w是儲存不退出,按:wq是儲存退出,按:q是沒有對檔案進行編輯的情況下退出,按:q!是對已編輯過的檔案不儲存退出。這裡,按:wq儲存退出。修改後的檔案為:

複製程式碼
[SeatDefaults] 
greeter-session=unity-greeter 
user-session=ubuntu 
# manually input user when login, so root can be input
greeter-show-manual-login=true
# disable guest user
allow-guest=false
複製程式碼

d. 重啟登陸即可。

shutdown -h now 現在立即關機

shutdown -r now 現在立即重啟

shutdown -r +3 三分鐘後重啟

e. 重啟之後,點選Login,輸入使用者名稱:root。回車後,再輸入密碼。即可登入進系統。

Ctrl + Alt + T快捷鍵開啟超級終端。此時可以看到介面提示符顯示為root使用者。

25. 安裝增強功能

Devices->Install Guest Additions 安裝增強功能。但總提示安裝增強功能失敗,總提示強制釋放。這是因為虛擬光碟機裡面已經有光碟(iso),而且正在使用中無法umount,導致addition.iso無法掛載,關閉虛擬機器,在虛擬機器管理介面釋放虛擬光碟,。

clip_image060

然後啟動虛擬機器進入Ubuntu,重啟之後,點選Login,輸入使用者名稱:root。回車後,再輸入密碼。即可登入進系統。再選擇安裝增強功能。

clip_image062

但安裝的過程中出錯,錯誤資訊為:

Verifying archive integrity... All good. 
Uncompressing VirtualBox 3.2.6 Guest Additions for Linux........ 
VirtualBox Guest Additions installer 
Removing installed version 3.2.6 of VirtualBox Guest Additions... 
Building the VirtualBox Guest Additions kernel modules 
Building the main Guest Additions module ...fail. 
Installing the Window System drivers 
Warning: unknown version of the X Window System installed.  Not installing 
X Window System drivers.

這是由於VirtualBox的版本太老導致的【8】。我的VirtualBox版本為:4.1.18。

需要下載最新的4.3.2版本的VirutalBox和VirtualBox Extension Pack。覆蓋安裝。

26. 升級VirtualBox版本

升級VirtualBox版本很簡單,一路Next即可完成安裝。此時你如果“Start”虛擬機器的話,它會提示你如下資訊:

"Implementation of the USB 2.0 controller not found!

The device will be disabled. You can ignore this warning but there will be no USB 2.0 support in your VM. To fix this issue, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings"

這是由於沒安裝對應版本的VirtualBox Extension Pack造成的【9】。安裝4.3.2版對應版本的VirtualBox Extension Pack即可。

開啟VirtualBox程式,File->Preferences->選擇Extensions選項。

點選“Remove Package”將以前的4.1.18版的VirtualBox Extension Pack刪掉,然後點選“Add Package”,選擇剛下載的4.3.2版的VirtualBox Extension Pack。按確定後它會自動安裝。安裝完畢就可以了。

27. 繼續安裝增強功能。

此時,啟動Ubuntu虛擬機器。注意:在啟動虛擬機器之前,先開啟Ubuntu虛擬機器的Settings,選擇“Storage”,將之前載入的虛擬映象移除。然後再啟動Ubuntu虛擬機器。

啟動虛擬機器後,選擇“Devices”選單->選擇“Insert Guest Additions CD Images”選項,它會提示你是否安裝增強功能。點選“Run”,會自動安裝。安裝成功後,會顯示如下的資訊:

clip_image064

28. 設定與Host OS共享目錄

選擇“Devices”->“Share Folder Settings”->點選最右面的“+”按鈕,新增一個共享

clip_image066

29. 重啟Ubuntu,完成安裝和設定

設定完成後,重啟Ubuntu,這次你可以發現,啟動後的Ubuntu的螢幕大小和解析度變大了,和Host OS一樣。表明增強功能安裝成功。

另外,/media目錄可以訪問Host OS的D盤了,表明設定共享成功。

29.1 設定共享 Updated:

後來發現使用普通使用者登入Ubuntu後,所設定的共享目錄無法訪問,提示許可權不夠。下面是另外一種設定辦法。

a. 把要共享的資料夾掛載到虛擬機器某一個檔案上 【10】

(1)首先需要保證VirtualBox增強功能已安裝完成,因為後面的 vboxsf  是增強功能中提供的。

(2)首先在mnt下建立一個資料夾,作為掛載的目標資料夾,然後執行 sudo mount -t vboxsf  共享資料夾的名字 虛擬機器的掛載點

sudo mkdir /mnt/shared
sudo mount -t vboxsf F_DRIVE /mnt/shared/

之後進入/mnt/shared,可以發現共享資料夾下的檔案可以複製了。

注意:共享資料夾的名字不要與掛載點的名字相同,比如上面,F_DRIVE 與mnt下的shared資料夾不能相同。否則會出現如下錯誤:

/sbin/mount.vboxsf: mounting failed with the error: Protocol error

(3)解除安裝命令

sudo umount -f /mnt/shared

(4)之後每次要用的時候,都需要手動掛載,sudo mount -t vboxsf F_DRIVE /mnt/shared/

這樣太麻煩了,有沒有自動掛載的方法?有的。在/etc/fstab 的最後新增一項【11】:

F_DRIVE /mnt/shared vboxsf rw,gid=1001000,uid=1000,auto 0 0

然後重啟系統。

UPDATED:

(1)上面的groupid=100是錯的,應該為1000.修改為1000後,重啟並驗證,發現不起作用。

(2)修改/etc/fstab的方法沒起作用的可能原因以及解決方法:The solution I found was to force the vboxsf module to be loaded early, before the mounting of file systems. Just add vboxsf on a line of its own in /etc/modules.【13】

修改後的/etc/modules檔案為:

複製程式碼
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
rtc
vboxsf
複製程式碼

修改後重啟系統,仍然不能正常工作。

(3)繼續查資料,有說可能跟當前使用者沒有新增到vboxsf使用者組中有關【14】。

首先檢視使用者組,發現當前使用者確實沒在vboxsf中。

cat /etc/group
->result:
vboxsf:x:1001:

然後將當前使用者新增到使用者組中:

sudo usermod -a -G vboxsf leige

再次檢查,發現已將當前使用者新增到使用者組中了。

cat /etc/group
-> result
vboxsf:x:1001:leige

之後重啟電腦,仍然不能正常工作。

(4)通過檢視Ubuntu官方文件得知【15】:

Starting with version 4.0, VirtualBox can mount shared folders automatically, at your option. If automatic mounting is enabled for a specific shared folder, the Guest Additions will automatically mount that folder as soon as a user logs into the guest OS. The details depend on the guest OS type:
With Linux guestsauto-mounted shared folders are mounted into the /media directory, along with the prefix sf_. For example, the shared foldermyfiles would be mounted to /media/sf_myfiles on Linux and /mnt/sf_myfiles on Solaris.

The guest property /VirtualBox/GuestAdd/SharedFolders/MountPrefix determines the prefix that is used. Change that guest property to a value other than "sf" to change that prefix; see Section 4.6, “Guest properties” for details.

Note
Access to auto-mounted shared folders is only granted to the user group vboxsf, which is created by the VirtualBox Guest Additions installer. Hence guest users have to be member of that group to have read/write access or to have read-only access in case the folder is not mapped writable.
To change the mount directory to something other than /media, you can set the guest property /VirtualBox/GuestAdd/SharedFolders/MountDir.
To have any changes to auto-mounted shared folders applied while a VM is running, the guest OS needs to be rebooted. (This applies only to auto-mounted shared folders, not the ones which are mounted manually.)

自VirtualBox 4.0之後,就提供了auto mount的功能,當你在“Devices”->“Share Folder Settings”->點選最右面的“+”按鈕,新增一個共享時,如果選擇了“Auto Mount”複選框,那麼該共享就會自動被mount到/media目錄下,併為該共享目錄添加了一個sf_字首。如果沒有自動mount,那麼可能是由於使用者沒有新增到vboxsf使用者組中,那麼按照上面(3)中的辦法,將其新增到vboxsf使用者組中。新增完後,重啟系統(自動mount需要重啟,手動mount不需要),這時就可以在media目錄下訪問共享目錄了。

通過驗證,上面UPDATED中的(1)(2)是沒有必要的,我將/etc/fstab 和/etc/modules還原,發現/media目錄下仍可以正常auto mount。

(5)為什麼修改fstab不能auto mount呢?有人跟我遇到的相同的問題【16】。

我用 sudo mount命令檢視,也發現所設定的共享資料夾被對映到了一個不同的地方。

sudo mount
->
E_DRIVE on /mnt/E_Shared type vboxsf (uid=1000,gid=1000,rw)
E_DRIVE on /media/sf_E_DRIVE type vboxsf (gid=1001,rw)

該作者認為: 勾選"auto-mount" 攪亂了(messes with)事情:Apparently, I had "auto-mount" enabled in VirtualBox configuration for the instance. This messes with things, so I simply added my user to the vboxsf group (in addition to www-data) and pointed Apache to /media/sf_web.

UPDATED2: