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