■ 河南科技學(xué)院信息工程學(xué)院 王繼敏
編者按:在進(jìn)行與Linux相關(guān)的教學(xué)過程中,需要在機房中配置Linux操作系統(tǒng)的實驗環(huán)境供學(xué)員操作。筆者經(jīng)過一番實踐,摸索出一套構(gòu)建Linux實驗?zāi)0鍣C的方法。用這種方法構(gòu)建的Linux實驗?zāi)0鍣C,運行起來對宿主機的資源開銷很小,既可以很方便的部署在學(xué)校機房中,也可以拷貝給學(xué)生在自己的個人電腦上進(jìn)行課外練習(xí)使用。
首先需要選擇一款虛擬機。使用虛擬機而不是物理機進(jìn)行實驗的好處是,一旦錯誤的操作使得Linux系統(tǒng)崩潰,可以通過虛擬機的快照功能迅速恢復(fù)原狀。并且有些實驗需要構(gòu)建多臺Linux系統(tǒng),甚至個別實驗需要搭建集群,這種情況下只能借助虛擬機了。
VirtualBox安裝完成后再在其上安裝Linux操作系統(tǒng),如筆者授課使用的版本是CentOS6。
安裝CentOS6的時候,請注意需要分配稍大一些的內(nèi)存,比如分配1G內(nèi)存。否則安裝過程中圖形安裝界面是啟動不了了,只能在文本界面下安裝,這個操作就相對復(fù)雜一些。安裝Linux模板機的時候分配1GB內(nèi)存,在圖形界面下安裝,等安裝完成以后,再在VirtualBox中將內(nèi)存調(diào)整至256M甚至更小都是可以的。
另外,在選擇安裝類型的時候,應(yīng)該選擇最小化安裝,這樣安裝的軟件包的數(shù)量是最少的,系統(tǒng)最精簡,排錯更容易,運行起來資源開銷也最小。
當(dāng)然,最小化安裝的軟件包中,有些非常常用的包沒
N有包含進(jìn)來,比如vim、lrzsz等,你可以在軟件安裝類型界面下方選中“Customize now”,然后單獨選擇需要添加的軟件包,也可以再最小化安裝結(jié)束以后,通過命令行單獨安裝這些軟件包。
在VirtualBox上安裝Linux時,還有一個非常需要注意的問題是網(wǎng)絡(luò)連接方式的選擇。VirtualBox默認(rèn)為我們選擇的網(wǎng)絡(luò)連接方式是“網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)”,在這種方式下,你安裝的Linux被連接到VirtualBox內(nèi)置的一個虛擬NAT網(wǎng)絡(luò)中,其網(wǎng)段為10.0.2.0/24。這種網(wǎng)絡(luò)連接方式在學(xué)校機房里是非常合適的,因為每臺電腦上的Linux虛擬機都被連接在自己的私網(wǎng)中,不會引發(fā)相互之間的IP地址沖突。這種方式有個缺點是虛擬機可以Ping通宿主機,但是宿主機想要訪問虛擬機就稍微麻煩了一點,需要設(shè)置端口映射。這個問題筆者在下文介紹。
如果是家里或者是在學(xué)生宿舍里做實驗,只有少量的三五臺電腦連接在路由器上,此時筆者推薦使用“橋接網(wǎng)卡”的網(wǎng)絡(luò)連接方式,這種方式下,虛擬機和宿主機在局域網(wǎng)中的地位是等同的,仿佛就像路由器上又連接了一臺Linux電腦一樣,宿主機和虛擬機之間的相互訪問變得非常容易,不需要再設(shè)置端口映射這個步驟了。
除了這兩種連接方式之外,Virtual還提供了“NAT網(wǎng)絡(luò)”、“內(nèi)部網(wǎng)絡(luò)”、“僅主機(Host Only)網(wǎng)絡(luò)”等多種網(wǎng)絡(luò)連接方式,這些網(wǎng)絡(luò)連接方式之間的區(qū)別請讀者讀者自行查詢相關(guān)文檔,本文不再贅述。
最小化安裝后,啟動后網(wǎng)卡是沒有激活的,而且圖形化的setup網(wǎng)絡(luò)配置工具也不可用,需要手工編輯修改配置文件。
# vi /etc/sysconfig/network-scripts/ifcfgeth0
這里給出筆者修改后的網(wǎng)卡配置文件:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
這里刪除了UUID和MAC地址兩行,主要為了防止今后虛擬機克隆時候引起的地址沖突。另外將ONBOOT改為yes,使得系統(tǒng)啟動時直接激活網(wǎng)卡。
假如你的虛擬Linux采用“網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)”這種網(wǎng)絡(luò)連接方式,則在虛擬的內(nèi)網(wǎng)中會有一臺虛擬的dhcp服務(wù)器,此時可以設(shè) 置“BOOTPROTO=dhcp”,則虛擬Linux啟動時,會自動從dhcp服務(wù)器獲取IP、網(wǎng)關(guān)等地址的配置。假如讀者希望為虛擬的Linux配置靜態(tài)IP地址,則可以設(shè)置“BOOTPROTO=static”,然 后再分別給出IP和GATEWAY等的具體值。
使用靜態(tài)IP的好處是今后做實驗使用SSH客戶端連接虛擬機時更加方便(因為不要先用命令查詢一下虛擬機的IP地址了嘛)。
這樣修改了網(wǎng)卡配置文件后,就可以重啟網(wǎng)絡(luò)服務(wù):
# /etc/init.d/network restart
測試一下網(wǎng)卡是否配置正確:
# ifconfig eth0
# ip route
這樣網(wǎng)卡配置就完成了。
注意,如果安裝CentOS時候不是采用的最小化安裝,而是選擇安裝了一些桌面組件,則有可能安裝了NetworkManager服 務(wù)。 這個服務(wù)主要為了適應(yīng)網(wǎng)絡(luò)環(huán)境變化的情況下,保持網(wǎng)絡(luò)訪問的可持續(xù)性,這一服務(wù)在桌面應(yīng)用尤其是移動應(yīng)用環(huán)境中很有用,但在服務(wù)器生產(chǎn)環(huán)境中,最好把它關(guān)閉。關(guān)閉的方法如下。
s e r v i c e NetworkManager stop
chkconfig NetworkManager off
SELinux會對很多操作產(chǎn)生影響,初學(xué)者在學(xué)會如何使用它之前最好先將其關(guān)閉,否則在實驗中產(chǎn)生很多莫名其妙的問題確不知如何處理。可以修改相關(guān)配置文件將SELinux狀態(tài)設(shè)置為Disabled,即不設(shè)置任何SELinux規(guī)則。
vi /etc/selinux/config
將文件中的SELINUX=enforcing改 為disabled,然后重啟系統(tǒng)即可。
防火墻對很多網(wǎng)絡(luò)相關(guān)的實驗會造成影響,為了排除學(xué)習(xí)干擾,應(yīng)該關(guān)閉IPTables服務(wù)。先執(zhí)行命令停止IPTables服務(wù):
# /e t c/i n i t.d/iptables stop
然后關(guān)閉防火墻服務(wù)的開機啟動:
chkconfig --levels 35 iptables off
最小化安裝畢竟僅僅安裝了最基本的軟件包,為了今后能方便的從光盤鏡像安裝所需要的軟件,這里需要配置一個本地光盤的YUM源。
首先將其他yum源移除:
# cd /etc/yum.repos.d
# mkdir bak
# mv *.repo bak
然后編輯配置文件增加一個本地光盤的YUM源:
# vi /etc/yum.repos.d/local.repo
編輯后的文件內(nèi)容如下:
[CentOS-dvd]
n a m e=C e n t O S$releasever - DVD
baseurl=file:///media/
enabled=1
gpgcheck=0
這樣今后需要安裝軟件時候,只需要在虛擬機上掛載CentOS6的光盤鏡像文件,然后:
# mount /dev/cdrom /media
接下來就可以用yum命令安裝光盤鏡像上的軟件了。
配置好以后,建立一個虛擬機快照。如果今后學(xué)生做實驗時把Linux系統(tǒng)搞壞了,可以通過它很快恢復(fù)原狀。這樣一臺Linux實驗?zāi)0鍣C已經(jīng)搭建好了,可以通過批量復(fù)制方式部署到整個機房內(nèi)供學(xué)生上課使用。還可以通過VirtualBox“管理”菜單下的“導(dǎo)出虛擬電腦”項,將虛擬的Linux導(dǎo)出為一個“.ova”格式的文件,供學(xué)員拷貝到自己的個人電腦上進(jìn)行實驗操作。