zoukankan      html  css  js  c++  java
  • VirtualBox中安装CentOS-6.6虚拟机(转载)

    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:LinuxVirtualCentOS_6_6CentOS_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) 

  • 相关阅读:
    Leetcode Substring with Concatenation of All Words
    Leetcode Divide Two Integers
    Leetcode Edit Distance
    Leetcode Longest Palindromic Substring
    Leetcode Longest Substring Without Repeating Characters
    Leetcode 4Sum
    Leetcode 3Sum Closest
    Leetcode 3Sum
    Leetcode Candy
    Leetcode jump Game II
  • 原文地址:https://www.cnblogs.com/Robert-huge/p/5226329.html
Copyright © 2011-2022 走看看