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。
UPDATED:2018-08-03
可以在新建一個虛擬機之前,進行一下全局設定,修改一下鏡像的默認位置。具體操作如下:管理->全局設定->常規->默認虛擬電腦位置,
將其修改為你想設置的目錄,比如,設置為“D:\LinuxVirtual\”。這樣,后面在新建虛擬機時,默認的存放路徑就會在該目錄下。
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)