VirtualBox中安装Ubuntu虚拟机

时间:2022-12-29 10:57:41

原文链接:VirtualBox中安装Ubuntu12.04/Ubuntu14.04虚拟机


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,弹出一个创建新虚拟机的窗口。

VirtualBox中安装Ubuntu虚拟机

2. 给虚拟机分配内存大小。

分配给VM的内存只有在加电启动VM的时候才会被分分配,不启动的时候是不会被分配的。

VirtualBox中安装Ubuntu虚拟机

3. 创建一个虚拟硬盘文件。

VirtualBox中安装Ubuntu虚拟机

4. 选择VDI格式,这是VirtualBox自己的格式。

VirtualBox中安装Ubuntu虚拟机

5. 虚拟硬盘文件的类型:选择动态分配。

VirtualBox中安装Ubuntu虚拟机

6. 选择磁盘文件存放的位置,和磁盘的最大容量。

默认存放在“C:\Users\xxx\VirtualBox VMs\ubuntu_14_04”下,为不占用C盘空间,可以将其移到盘新建的文件夹下。

(NOTE:关于磁盘的最大容量,后来安装Ubuntu14.04的时候分配了32G,但由于没有重新截图,因此截图显示的仍然是20G。)

VirtualBox中安装Ubuntu虚拟机

7. 虚拟磁盘的Summary信息

VirtualBox中安装Ubuntu虚拟机

8. 整个创建过程的Summary信息。

VirtualBox中安装Ubuntu虚拟机

9. 点击Create后,会回到VirtualBox的主窗口。

VirtualBox中安装Ubuntu虚拟机

10. 修改启动顺序:去掉软驱,硬盘放在光驱前面

VirtualBox中安装Ubuntu虚拟机

11. 插入光盘映像到虚拟电脑

VirtualBox中安装Ubuntu虚拟机

12. 点击OK后,回到主窗口

VirtualBox中安装Ubuntu虚拟机

13. 点击Start,开始安装

(1)选择语言:English

(2)点击 Install Ubuntu。

VirtualBox中安装Ubuntu虚拟机

14. Prepare to install Ubuntu

保持默认选项,Continue。

VirtualBox中安装Ubuntu虚拟机

15. Install Type

选择“其它选项(Something else)”,自定义手动分区。

VirtualBox中安装Ubuntu虚拟机

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

VirtualBox中安装Ubuntu虚拟机

(1)点击“New Partition Table...”,此时会弹出一个对话框,询问你是否将一整个磁盘创建为一个空分区,选Continue。

(2)这时,一个20G的free space就会被创建出来了。

17. 点“Add”,添加磁盘。

将鼠标点到“free space”上,然后再点击“Add”。

VirtualBox中安装Ubuntu虚拟机

参考鸟哥的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)

VirtualBox中安装Ubuntu虚拟机

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

根目录分配10001M的大小

VirtualBox中安装Ubuntu虚拟机

(3)/home目录的分割槽

分配10001M空间

VirtualBox中安装Ubuntu虚拟机

(4)内存置换空间(swap)

分配2002M空间(一般为分配内存大小的1.5-2倍)

因为swap是内存置换空间,因此不需要有挂载点。所以,请如同下图所示,在『档案系统类型』处挑选为『swap』吧!

VirtualBox中安装Ubuntu虚拟机

(5)最终的分配结果如图所示。

最后还剩余12253M留作以后作练习磁盘操作的命令使用。

分区完成后,点击Install Now,开始安装系统。

VirtualBox中安装Ubuntu虚拟机

可以看到,按照"/boot"分区(主分区) ->"/"分区(逻辑) -> "/home"分区(逻辑) -> "swap"分区(逻辑)的顺序创建分区后,sda的命名顺序是:sda1 -> sda5 -> sda6 -> sda7。

如果按照 "/"分区(逻辑) -> "/boot"分区(主分区) -> "swap"分区(逻辑) -> "/home"分区(逻辑) 的顺序创建分区,sda的命名顺序会是:sda5 -> sda2 -> sda3 -> sda4。最后剩下的 free space硬盘空间会显示为 不可用,没法再继续分区了。

VirtualBox中安装Ubuntu虚拟机

18. 开始安装后,地点选择“Shanghai”

VirtualBox中安装Ubuntu虚拟机

19. 键盘布局选择“中文”。

VirtualBox中安装Ubuntu虚拟机

20. 然后输入计算机名,并创建一个用户名。

VirtualBox中安装Ubuntu虚拟机

21. 此时开始安装系统了。

VirtualBox中安装Ubuntu虚拟机

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组合键退出。

VirtualBox中安装Ubuntu虚拟机

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,)

VirtualBox中安装Ubuntu虚拟机

(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保存退出。修改后的文件为:

VirtualBox中安装Ubuntu虚拟机
[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
VirtualBox中安装Ubuntu虚拟机

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无法挂载,关闭虚拟机,在虚拟机管理界面释放虚拟光盘,。

VirtualBox中安装Ubuntu虚拟机

然后启动虚拟机进入Ubuntu,重启之后,点击Login,输入用户名:root。回车后,再输入密码。即可登录进系统。再选择安装增强功能。

VirtualBox中安装Ubuntu虚拟机

但安装的过程中出错,错误信息为:

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”,会自动安装。安装成功后,会显示如下的信息:

VirtualBox中安装Ubuntu虚拟机

28. 设定与Host OS共享目录

选择“Devices”->“Share Folder Settings”->点击最右面的“+”按钮,添加一个共享

VirtualBox中安装Ubuntu虚拟机

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文件为:

VirtualBox中安装Ubuntu虚拟机
# /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
VirtualBox中安装Ubuntu虚拟机

修改后重启系统,仍然不能正常工作。

(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:

重新验证了一下,新添加一个共享,在设置“Devices”->“Share Folder Settings”->点击最右面的“+”按钮,添加一个共享时,不勾选“Auto Mount”复选框(仅仅勾选“Make Permanent”),同时保持另一个共享勾选“Auto Mount”复选框。

VirtualBox中安装Ubuntu虚拟机

然后按照UPDATED1中的(1)(2)(3)操作,发现/mnt/D_Shared能够共享。而/mnt/E_Shared不能共享。说明“Auto Mount”复选框覆盖了在/etc/fstab下的挂载。通过UPDATED1(5)中的sudo mount命令也能看出来。

b. 通过网络访问【12】

没有尝试,感兴趣的同学可以参考【12】的设置。

30. 设置Host OS和 Guest OS之间Clipboard共享

Ubuntu14.04中虚拟机和主机之间不能相互复制内容,是由于VirtualBox默认禁止了。

点击"Machine"->Settings->General->Advanced->Shared Clipboard

选择 Bidirectional,可以双向复制。

VirtualBox中安装Ubuntu虚拟机

31.修改默认文件夹

Virtual Box安装虚拟机后,默认文件夹是放在C盘下的,可以将其改到其它盘。

修改File->Preferences->General->Default Machine Folder:

C:\Users\msi\VirtualBox VMs

->D:\LinuxVirtual

修改 "Machine"->Settings->General->Advanced->Snapshot Folder:

C:\Users\msi\VirtualBox VMs\ubuntu_14_04\Snapshots

->D:\LinuxVirtual\ubuntu_14_04\Snapshots

 

References

【1】Ubuntu桌面版与服务器版的区别(http://article.yeeyan.org/view/163202/149829)

【2】磁碟分割(http://vbird.dic.ksu.edu.tw/linux_basic/0157installcentos5_2.php#centos5_4)

【3】大硬盘配合旧主机(http://vbird.dic.ksu.edu.tw/linux_basic/0130designlinux.php#largehd)

【4】Ubuntu 12.04 怎么使用 root 用户登录(http://blog.sina.com.cn/s/blog_448aed2001015pw8.html)

【5】正宗的 ubuntu 12.04 12.10 root 登录(http://blog.csdn.net/happyteafriends/article/details/7518893)

【6】我用虚拟机linux,命令界面时,想在vi编辑器里打东西,怎么总是出错(http://zhidao.baidu.com/question/398969068.html?qbl=relate_question_1)

【7】ubuntu 14.04 root用户登录(http://blog.sina.com.cn/s/blog_8cae15e90101pwq4.html)

【8】关于虚拟机中ubuntu的安装增强功能(http://bbs.chinaunix.net/thread-3586960-1-1.html)

【9】VirtualBox4.1.0 安装VirtualBox Extension Pack,支持USB 2.0 (http://blog.chinaunix.net/uid-23440786-id-3575575.html)

【10】VirtualBox ubuntu虚拟机共享文件夹设置(http://wenku.baidu.com/link?url=GXaAcqQCypJCnR4B-_DXuKZ7rlFskEMAae7V2fIZVAP6tJz18yFEPrBEt15pz7lXTn8NVeWPJXFMrDGJvmn-JYB0Il6FJg8VxAx-33n3gqG)

【11】Virtualbox下实现Ubuntu虚拟机和win7主机文件共享(http://wenku.baidu.com/link?url=TAicjTKkZEYK0_FWRkQUNeHD5F3z_ZGeFJ5DFgJD0KwFP3Il_VZj7mrQGdZ93EHGoKl9lSG-Xc0ayrGNSpUz432N97_VmvGR58Bz9E-8kAi)

【12】如何把主机的文件复制到virtualbox的BT5(ubuntu)里(http://www.cnblogs.com/hqucth/archive/2012/08/28/2660301.html)

【13】Virtualbox shared folder mount from fstab fails; works once bootup is complete(http://askubuntu.com/questions/365346/virtualbox-shared-folder-mount-from-fstab-fails-works-once-bootup-is-complete)

【14】auto-mounting shared folders in VirtualBox(http://superuser.com/questions/267599/auto-mounting-shared-folders-in-virtualbox)

【15】4.3.2. Automatic mounting(https://www.virtualbox.org/manual/ch04.html#sf_mount_auto)

【16】fstab not mounting VirtualBox shared folder?(http://unix.stackexchange.com/questions/68631/fstab-not-mounting-virtualbox-shared-folder)