1. 下载
可以到官网下载,http://mirror.centos.org/centos/
如果下载速度太慢的话,也可以到163镜像下载: http://mirrors.163.com/centos/6.6/isos/x86_64/
选择下载文件 CentOS-6.6-x86_64-bin-DVD1.iso
2. 新建一个Linux虚拟机
在VirtualBox主界面,选择新建(New),然后按照如下步骤新建一个虚拟机。
1. 虚拟电脑名称和系统类型
名称:CentOS_6_6
类型:Linux
版本:Red Hat(64 bit)
2. 内存大小:
修改为:1024MB
3. 虚拟硬盘:
保持默认选项: 现在创建虚拟硬盘(Create a virtual hard drive now)
4. 虚拟硬盘文件类型:
保持默认选项: VDI
5. 存储在物理硬盘上:
保持默认: 动态分配(Dynamically allocated)
6. 文件位置和大小:
位置:可以修改到D盘:D:\LinuxVirtual\CentOS_6_6\CentOS_6_6.vdi
大小:改为32G。
3. 在VirtualBox中安装CentOS6.6
1. 在VirtualBox左窗口中选中CentOS_6_6,然后点击Settings,选择“System”选项,修改启动顺序:去掉软驱,硬盘放在光驱前面
2. 选择“Storage”选项,点击Empty,然后加载虚拟镜像文件
3. 点击“启动(Start)”,开始安装
4. centos会提供几种安装类型,由于是全新安装,所以选择默认值:Install or update an existing system
5. 测试安装介质是否有损坏,直接Skip就可以了。
6. Next,出现语言选择窗口,选择中文简体,
7. 键盘,保持默认,美国英语式键盘
8. 设备类型,保持默认,然后next
9. 弹出“存储设备警告框”,提示设备中可能含有数据,选择“是,忽略所有数据”即可
10. 主机名:修改为:leige
UPDATED20150325:这里最好不要修改该主机名,而是保持默认值"localhost:localdomain",因为改了之后会导致一系列问题,需要做很多修改来解决。
11. 时区,保持默认,亚洲/上海
12. 设置root用户密码
13. 选择“创建自定义布局”,
14. 然后就是开始分区了
(1)单击“创建”,保持默认“标准分区”,然后单击右下角的“创建”按钮,创建第一个挂载点 /boot
(2)继续创建第二个分区, 文件系统类型选择 swap
(3). 创建第三个分区: /home
(4)所有剩余的分区,分给 / 根目录
(5)最终分区结果如图所示:
UPDATED(20150325):
这个分区方案不好,最好还是按鸟哥的Linux私房菜中”第四章、安装 CentOS 5.x 与多重开机小技巧“所给的方案:
(1)/, 10000M (2)/boot,100M,强制设为主分区 (3) swap, 1000M (4) /home, 5000M。
虽然按该顺序创建分期,但是CentOS会自动调整,调整后的分区情况如下所示:
dev/sda1 /boot 主分区 (强制设为主分区的)
dev/sda2 / 逻辑分区
dev/sda3 /home 逻辑分区
dev/sda4 扩展分区
dev/sda5 swap 逻辑分区
剩余空间
15. 弹出格式化警告,要格式化“/dev/sda”,选择“格式化”
16. 弹出“将存储配置写入磁盘”警告,选择“将修改写入磁盘”
17. 显示安装引导装载程序的选项,保持默认“/dev/sda5”
18. 选择安装方式,保持默认的“Desktop”即可。
19. 安装完成后,重启。
20. 重启后,在“创建用户”页面,为系统创建一个非管理员用户。
21. 不启用Kdump。
Kdump的作用是当内核出现错误时进行内存转储,用来分析问题。由于Kdump文件非常大,因此不选择启用Kdump。
4. 安装增强功能
1. 首先确保CentOS_6_6的Settings/Storage/Controller: IDE 虚拟光驱中没有加载镜像。
2. 启动CentOS系统,以root用户登录。
3. 点击 Devices/Insert Guest Additions CD Image,将增强功能的镜像加载到虚拟光驱中。这时,你再看Settings/Storage/Controller: IDE 中,会加载上VBoxGuestAdditions.iso镜像文件。
4. 在弹出的自动运行框中,点击“确定”,会弹出“此介质中包含要自动启动的软件,您是否想要运行它?”,点击“运行”,安装增强功能。
5. 在安装的过程中,出现如下错误:
building the main Guest Additions module [失败]
按照括号中的提示,查看/var/log/vboxadd-install.log 文件检查错误的原因。文件中所记log为:
Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.. Stop.
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.
原因是没有安装gcc等。解决方法如下【1】:
(1)检测gcc make kernel-level kernel-header 等文件是否安装。使用下面的命令查看:
[root@CentOS66 ~]# rpm -qa|grep gcc
libgcc-4.4.7-11.el6.x86_64
发现已经安装了。
NTOE:这个地方出现错误,导致后面走了弯路。实际上是没有安装的。
如果没有的话,需要安装,需要如下命令:
yum install gcc
(2)需要查看kernel的版本是否一致,使用下面的命令查看:
[root@CentOS66 ~]# rpm -qa|grep kernel|sort
abrt-addon-kerneloops-2.0.8-26.el6.centos.x86_64 dracut-kernel-004-356.el6.noarch kernel-2.6.32-504.el6.x86_64 kernel-firmware-2.6.32-504.el6.noarch kernel-headers-2.6.32-504.el6.x86_64 libreport-plugin-kerneloops-2.0.9-21.el6.centos.x86_64
不一致的话,需要更新kernel,使用如下命令:
yum update kernel
(3)为安全起见,更新一下kernel。但是yum update kernel更新出现错误,如下
[root@CentOS66 ~]# yum update kernel
已加载插件:fastestmirror, refresh-packagekit, security
设置更新进程
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" 错误:Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again resolv.conf is empty.so add content
查找问题原因,可能是dns服务器没有配置正确,需要查看/etc/resolv.conf文件。
(4)查看文件文件/etc/resolv.conf,发现该文件是空的,修改该文件,在其中添加如下内容【2】:
nameserver 8.8.8.8
nameserver 8.8.4.4 search localdomain
修改完成后,重启网络。
service network restart
然后再次尝试yum update kernel。发现仍然错误。
(5)检查网络,发现CentOS中Firefox没法打开网页,原来CentOS安装后,默认没有连接网络。
点击 系统/首选项/网络连接,选中“System eth0”,然后点击“编辑”按钮,勾选“自动连接”复选框。
这时,CentOS虚拟机中可以正常连接网络了。
(6)再次执行yum update kernel,发现能正常update成功了。update成功之后,再次检查其版本,结果如下:
[root@CentOS66 ~]# rpm -qa|grep kernel|sort
abrt-addon-kerneloops-2.0.8-26.el6.centos.x86_64 dracut-kernel-004-356.el6.noarch kernel-2.6.32-504.el6.x86_64 kernel-firmware-2.6.32-504.el6.noarch kernel-headers-2.6.32-504.el6.x86_64 libreport-plugin-kerneloops-2.0.9-21.el6.centos.x86_64
发现版本与update之前一样,没有变化。
而且再次 安装增强功能时(运行磁盘中的autorun.sh文件),发现仍旧报告原来的错误。
(7)继续寻找原因,运行 gcc -v,查看gcc版本,发现找不到gcc命令,原来,还是gcc没有安装导致的问题,安装gcc
yum install gcc
安装完成后,查看器版本,输出如下:
[root@CentOS66 ~]# gcc -v
使用内建 specs。
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux 线程模型:posix gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
(8)安装完成后,再次安装增强功能,发现仍报同样的错误。努力查找原因,最终发现原来是没有安装kernel-devel。
安装命令: yum install kernel-devel
NOTE:kernel-devel的版本需要与内核kernel对应的版本相同,可以使用下面的命令分别检查kernel-devel的版本与内核kernel的版本。
# uname -r
2.6.32-504.el6.x86_64 # yum info kernel-devel Installed Packages Name : kernel-devel Arch : x86_64 Version : 2.6.32 Release : 504.el6 Size : 25 M Repo : installed From repo : updates
若两者版本不一致,则必须升级kernel:
# yum update kernel
另外,也可以使用下面的命令保证kernel-devel版本与内核kernel对应的版本相同【3】。
# version=`uname -a | awk '{print $3}'` # yum install kernel-devel-${version}
(9)安装增强功能时,有可能会出现下面的错误:
Building the OpenGL support module [失败]
这是因为VirtualBox的版本导致的:”because of a bug in the linux guestadditions the OpenGL support modules can't be build for RHEL6.4 and clones guests“ 。
由于我使用的VirtualBox版本是4.3.2,可以升级到4.3.12来解决这个问题。【7】
(10) 再次安装,终于安装成功了。
(11)然后重启系统。
6. 总结,
(1)首先在root用户下执行下面的命令,安装必要的包:
# yum install make gcc gcc-c++ kernel-devel
(2)然后,为确保kernel-devel版本与内核kernel对应的版本一致,最好更新一下内核。
# yum update kernel
(3)最后再安装VirtualBox的增强功能包。
(4)在使用sudo命令时,可能会提示”用户名 不在 sudoers文件中,此事将被报告。“的错误,可以使用命令visudo来解决。具体解决方法,参考下面的6.3 小节。
5. 设置虚拟机与Host主机之间共享
5.1 手动mount
1. 首先需要安装增强功能,前面已经安装完成。
2. 在 Devices”->“Share Folder Settings”中设定虚拟机与Host OS之间的共享目录。注意要勾选上“Auto-mount”和“Make Permanent”选项.
比如我设置了Host中的D盘共享,那么共享的D盘盘符为 D_DRIVE.
3. 在/mnt下新建一个目录ShareD,作为挂载的目的共享目录。
4. 执行下面的命令
sudo mount -t vboxsf D_DRIVE /mnt/ShareD
此时,就可以在打开/mnt/ShareD目录来访问Host主机上的文件了。
5. 如果想取消挂载,使用umount命令
sudo umount -f /mnt/ShareD
5.2 Auto Mount为什么没起作用?
1. 通过在终端中运行mount命令我们看到,勾选上“Auto-mount”后,D_DRIVE已经被自动mount到了/media/sf_D_DRIVE目录下,但是在普通用户XXX下却没有权限访问。只有使用root用户登录才能访问。这是为什么呢?
D_DRIVE on /media/sf_D_DRIVE type vboxsf (gid=493,rw)
E_DRIVE on /media/sf_E_DRIVE type vboxsf (gid=493,rw)
F_DRIVE on /media/sf_F_DRIVE type vboxsf (gid=493,rw)
2. 通过查看VirtualBox官方文档得知【4】,自VirtualBox 4.0之后,就提供了auto mount的功能,当你在“Devices”->“Share Folder Settings”->点击最右面的“+”按钮,添加一个共享时,如果选择了“Auto Mount”复选框,那么该共享就会自动被mount到/media目录下,并为该共享目录添加了一个sf_前缀。如果没有自动mount,那么可能是由于用户没有添加到vboxsf用户组中。
首先查看用户组,发现当前用户确实没在vboxsf中。
cat /etc/group
->result:
vboxsf:x:493:
3. 将当前用户添加到用户组中:
sudo usermod -a -G vboxsf XXX
再次检查,发现已将当前用户添加到用户组中了。
cat /etc/group -> result vboxsf:x:1001:XXX
4. 添加完后,重启系统,这时就可以在media目录下访问共享目录了。
6. 安装完成后的设置
6.1 图形界面定义开启终端的快捷键
想要修改CentOS像Ubuntu一样,Ctrl+Alt+T 快捷键在桌面打开终端。可以使用下面的方法:
点击CentOS顶端的菜单:System->Preferences->Keyboard Shortcuts,在Desktop分类下找到“Run a terminal”,点击选中Run a terminal,按下需要的快捷键,Ctrl+Alt+T,即可。
注意:虽然按下了Ctrl+Alt+T键,但是显示的却是:Alt+T。但是回到桌面后,Alt+T并不起作用,按Ctrl+Alt+T才起作用。
6.2 如何修改主机名
1. 修改/etc/sysconfig/network文件
[root@localhost ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
将localhost.localdomain修改为新的主机名,比如CentOS66.
2. 主机名与 /etc/hosts的关系
发现网上好多资料都说修改主机名的话,除了修改/etc/sysconfig/network文件,还需要修改/etc/hosts文件。
(1)那么修改主机名与 /etc/hosts到底有没有关系呢?它们有下面所述的关系【5】。
hosts文件的作用相当于DNS,提供IP地址到hostname的对应。Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。从上面这些来看,/etc/hosts于设置hostname是没直接关系的,仅仅当你要在本机上用新的hostname来访问自己的时候才会用到/etc/hosts文件。两者没有必然的联系。
修改hostname后,如果想要在本机上用newhostname来访问,就必须在/etc/hosts文件里添加一条newhostname的记录。比如我的eth0的IP是192.168.1.61,我将hosts文件修改如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
(2) 那么修改主机名后,/etc/hosts到底需不需要修改呢?答案是需要
如果不修改 /etc/hosts,将来安装其他软件时,可能会出问题【6】。/etc/hosts文件的原值为:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
需要将localhost.localdomain修改为新的hostname值
127.0.0.1 localhost CentOS66 localhost4 localhost4.localdomain4
::1 localhost CentOS66 localhost6 localhost6.localdomain6
6.3 普通用户sudo出错的解决办法
使用sudo命令时,报告“XXX 不在sudoers文件中,此事将被报告”的错误。经查询得知,是新建用户没有在/etc/sudoers 中配置。
使用visudo修改配置:
(1)首先切换到root用户: su root
(2)然后输入visudo命令:visudo。
它会用vi编辑器打开/etc/sudoers文件,在文件中找到下面的地方,将用户名XXX添加进去,然后使用:wq!命令强行保存即可。
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
XXX ALL=(ALL) ALL
(3)保存,退出即可。
6.4 设置双击文件夹时不要打开新窗口
CentOS双击文件夹时是在新窗口里打开,父文件夹仍然在那里,导致打开的文件夹非常多。想设置成Windows那样双击文件夹时在同一个窗口中打开文件夹,设置方法如下: 1、打开系统--首选项--文件管理;
2、在打开的窗口中切换到“行为”,选中“总是在浏览器窗口打开“,然后点击关闭即可。
6.5 打开目录时让里面的文件以列表形式显示,并显示隐藏的文件
CentOS文件夹显示文件默认是以图标形式显示的,并且默认不显示隐藏文件,我们想修改为以列表形式显示,并显示隐藏文件。
打开一个文件夹, 选择”编辑->首选项->视图Tab“,将”图标视图“改为”列表视图“,并勾选”显示隐藏和备份文件“。
References
【1】CentOS 6.3安装VirtualBox4自动增强功能失败的原因(http://www.linuxidc.com/Linux/2013-03/81308.htm)
【2】linux安装软件时提示找不到镜像的问题(http://houjixin.blog.163.com/blog/static/3562841020139124813211/)
【3】在CentOS 6中安装VirtualBox的增强功能并分配数据空间(http://www.linuxidc.com/Linux/2012-02/55428.htm)
【4】4.3.2. Automatic mounting(https://www.virtualbox.org/manual/ch04.html#sf_mount_auto)
【5】怎样修改Linux的hostname(http://www.2cto.com/os/201312/265044.html)
【6】CentOS6.3 Hostname设定修改(http://www.cnblogs.com/niutouzdq/p/4022545.html)
【7】Build OpenGL support module failed in Scientific Linux 6(https://forums.virtualbox.org/viewtopic.php?f=3&t=42424)