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,弹出一个创建新虚拟机的窗口。
2. 给虚拟机分配内存大小。
分配给VM的内存只有在加电启动VM的时候才会被分分配,不启动的时候是不会被分配的。
3. 创建一个虚拟硬盘文件。
4. 选择VDI格式,这是VirtualBox自己的格式。
5. 虚拟硬盘文件的类型:选择动态分配。
6. 选择磁盘文件存放的位置,和磁盘的最大容量。
默认存放在“C:\Users\xxx\VirtualBox VMs\ubuntu_14_04”下,为不占用C盘空间,可以将其移到盘新建的文件夹下。
(NOTE:关于磁盘的最大容量,后来安装Ubuntu14.04的时候分配了32G,但由于没有重新截图,因此截图显示的仍然是20G。)
7. 虚拟磁盘的Summary信息
8. 整个创建过程的Summary信息。
9. 点击Create后,会回到VirtualBox的主窗口。
10. 修改启动顺序:去掉软驱,硬盘放在光驱前面
11. 插入光盘映像到虚拟电脑
12. 点击OK后,回到主窗口
13. 点击Start,开始安装
(1)选择语言:English
(2)点击 Install Ubuntu。
14. Prepare to install Ubuntu
保持默认选项,Continue。
15. Install Type
选择“其它选项(Something else)”,自定义手动分区。
16. 下面就是最重要的分区了。
(1)点击“New Partition Table...”,此时会弹出一个对话框,询问你是否将一整个磁盘创建为一个空分区,选Continue。
(2)这时,一个20G的free space就会被创建出来了。
17. 点“Add”,添加磁盘。
将鼠标点到“free space”上,然后再点击“Add”。
参考鸟哥的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)
(2)根目录(/)的分割槽
根目录分配10001M的大小
(3)/home目录的分割槽
分配10001M空间
(4)内存置换空间(swap)
分配2002M空间(一般为分配内存大小的1.5-2倍)
因为swap是内存置换空间,因此不需要有挂载点。所以,请如同下图所示,在『档案系统类型』处挑选为『swap』吧!
(5)最终的分配结果如图所示。
最后还剩余12253M留作以后作练习磁盘操作的命令使用。
分区完成后,点击Install Now,开始安装系统。
可以看到,按照"/boot"分区(主分区) ->"/"分区(逻辑) -> "/home"分区(逻辑) -> "swap"分区(逻辑)的顺序创建分区后,sda的命名顺序是:sda1 -> sda5 -> sda6 -> sda7。
如果按照 "/"分区(逻辑) -> "/boot"分区(主分区) -> "swap"分区(逻辑) -> "/home"分区(逻辑) 的顺序创建分区,sda的命名顺序会是:sda5 -> sda2 -> sda3 -> sda4。最后剩下的 free space硬盘空间会显示为 不可用,没法再继续分区了。
18. 开始安装后,地点选择“Shanghai”
19. 键盘布局选择“中文”。
20. 然后输入计算机名,并创建一个用户名。
21. 此时开始安装系统了。
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组合键退出。
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,)
(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. 安装增强功能
25.1 桌面版安装增强功能
Devices->Install Guest Additions 安装增强功能。但总提示安装增强功能失败,总提示强制释放。这是因为虚拟光驱里面已经有光盘(iso),而且正在使用中无法umount,导致addition.iso无法挂载,关闭虚拟机,在虚拟机管理界面释放虚拟光盘,。
然后启动虚拟机进入Ubuntu,重启之后,点击Login,输入用户名:root。回车后,再输入密码。即可登录进系统。再选择安装增强功能。
但安装的过程中出错,错误信息为:
Verifying archive integrity... All good. |
这是由于VirtualBox的版本太老导致的【8】。我的VirtualBox版本为:4.1.18。
需要下载最新的4.3.2版本的VirutalBox和VirtualBox Extension Pack。覆盖安装。
25.2 Server版安装增强功能
参考:Virtualbox Ubuntu Server 14.04 安装guest additions(http://www.binarytides.com/vbox-guest-additions-ubuntu-14-04/)
总结:简单方法,sudo apt-get install virualbox-guest-dkms
25.3 Update:安装增强功能。
20160303:后来经验证发现,没有必要进行“24. 如何以root用户登录?”这一步骤操作。因为可以先将命令行切换到root用户,然后在命令行下执行增强功能的安装。参考:virtual box 安装增强功能 (Ubuntu10.04) (http://blog.chinaunix.net/uid-24709751-id-97304.html)
(1)首先命令行切换到root用户(su root),
(2)点击Devices->Install Guest Additions ,
(3)然后执行`mount`命令,看增强功能包挂载到了哪个目录下(比如在/media/VBOXADDITIONS_4.0.4_69518/目录下),
(4)然后切换到该目录下(`cd /media/VBOXADDITIONS_4.0.4_69518/`);
(5)在该目录下找到VBoxLinuxAdditions.run文件,执行该文件(./VBoxLinuxAdditions.run)。
(6)执行完后,重启系统。
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”,会自动安装。安装成功后,会显示如下的信息:
28. 设定与Host OS共享目录
选择“Devices”->“Share Folder Settings”->点击最右面的“+”按钮,添加一个共享
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)通过查看VirtualBox官方文档得知【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 guests, auto-mounted shared folders are mounted into the /media directory, along with the prefix sf_. For example, the shared folder myfiles 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”复选框。
然后按照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,可以双向复制。
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
3. 升级VirtualBox后无法启动虚拟镜像的问题
将VirtualBox升级到 4.3.16 版本后,当Start启动VirtualBox中的虚拟机镜像时,发现无法启动,跳出一个错误框:
failed to open a session of the virtual machine. The virtual machine 'ubuntu_14_04' has terminated unexpectedly during startup with exit code 1 (0x1). More details may be available in 'C:\Users\Administrator\VirtualBox VMs\ubuntu_14_04\Logs\VBoxStartup.log'. Result Code: E_FAIL (0x80004005) Component: Machine Interface: IMachine {480cf695-2d8d-4256-9c7c-cce4184fa048}
原因是VirtualBox 4.3.14添加了安全性检测,影响了虚拟机的启动,4.3.14以后的版本好像都有问题【17】。
重新覆盖安装VirtualBox 4.3.12的版本就能解决问题了。注意覆盖安装后,要按照上面步骤26和27,继续安装4.3.12的版本对应的增强功能包。
4. 版本的兼容性问题
1. Win10下安装VirtualBox4.3.12无法设置桥接模式,VirtualBox无法识别出网卡。
覆盖安装最新版的VirtualBox-5.0.14-105127-Win.exe即可。
2. 2019-09-21 Updated
Win7下 VirtualBox 5.0.20版本安装Ubuntu18.04.3后,无法正常安装增强功能,原因参见:https://forums.tomshardware.com/threads/ubuntu-16-unable-to-install-guest-additions.2850009/
```
I have the same problem. Ubuntu 16.10, Virtualbox 5.0.28, Windows 10. The problem is in the function mod_timer_pinned which is dropped from kernel 4.8. Bad luck, new Ubuntu uses that kernel and Guest Additions are not yet adapted to that change. No known solution or workaround at this point - or at least I haven't found it. See here: https://www.virtualbox.org/ticket/15695.
P.S.: I tried upgrading Virtualbox to 5.1.8 but things are only worse. Looks like I'll wait a couple of months for Oracle to release a new 5.0.32 (?) version.
```
为解决这个问题,更新VirtualBox版本为 5.2.32,即可成功安装增强功能。
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)
【17】在win7的环境下用VirtualBox安装ubuntu后启动时报错(http://zhidao.baidu.com/question/1366521232174561739.html)