摘要
日常工作中,我們經常需要在多台硬件完全相同的電腦上安裝同樣的Linux,尤其是在做集群應用或互為備份的數據庫服務器的時候。筆者是兼職Linux教師,出於講課的需要,經常要在硬件配置完全相同的電腦上為學生安裝多達十台或更多的Linux系統。如果使用最常見的CDROM安裝方式,恐怕一次就要用掉一天的時間。而采用Kickstart 安裝方式,大約60分鐘就全部安裝完畢了。
Kickstart是Red Hat發展的快速定制安裝方式,可以讓電腦按照事先設計好的方式自動安裝。最常見的方式是網絡安裝,也可以采用CDROM或硬盤安裝。本文主要介紹Kickstart的網絡安裝。
制作啟動盤
制作安裝盤的工作既可以在Windows系統下完成,也可以在Linux系統下完成。在Windows系統中,使用Red Hat安裝光盤中第一張的rawritewin程序。此程序在CDROM下的dosutils/rawritewin目錄下。制作第一張軟盤時,Image File請選擇 images bootnet.img , 這張叫啟動盤。制作第二張軟盤的時候,Image File請選擇images drvnet.net,這張叫驅動盤(Driver Disk)。 根據你網卡的型號,驅動盤也許並不需要。
如果是在Linux系統中制作安裝盤,命令如下:
dd if=/mnt/cdrom/images/bootnet.img of=/dev/fd0 (啟動盤) dd if=/mnt/cdrom/images/drvnet.img of=/dev/fd0 (驅動盤)
啟動盤裡包含了最常見的網卡驅動,如3Com 509/Intel eepro NE 2000等。如果你的網卡不是最常見的,比如聯想D-Link530TX,則必須多做一張網卡的驅動盤。
編輯文件syslinux.cfg
編輯啟動盤上的syslinux.cfg 文件,將第一行改寫為:
default linux ks=floppy
如果需要用到網卡的驅動盤,則第一行改寫為:
default linux ks=floppy dd
此時系統會自動提示插入驅動盤。然後刪除prompt 和timeout 行。
編輯ks.cfg文件
這一步也是Kickstart安裝中最重要的步驟。ks.cfg 是Kickstart安裝的核心文件,它指明了以什麼方式、將Linux安裝到何處、安裝什麼package等內容。ks.cfg 放置在軟盤的根目中。
在新安裝的Red Hat系統下,/root/下有個anaconda.cfg文件,可以它為基礎進行編輯,也可以用X-Window下的ksconfig程序進行這項工作。如果讀者用ksconfig程序進行設定,可能還需要手動進行修改。下面是ks.cfg 文件的內容,為了方便解說,我將原文加了行號。請注意正式的文件是不能加行號的。
1 #Generated by Kickstart Configurator 2 #System language 3 lang en_US 4 #Language modules to install 5 langsupport --default en_US en_US zh_CN.GB2312 6 #System keyboard 7 keyboard us 8 #System mouse 9 mouse genericps/2 10 #System timezone 11 timezone --utc Asia/Shanghai 12 #Root password 13 rootpw 12345 14 #System bootloader configuration 15 bootloader --location=mbr 16 #Install Red Hat Linux instead of upgrade 17 install 18 #Use FTP installation media 19 url --url ftp://192.168.203.2/download 20 #Disk partitioning information 21 clearpart --all 22 part / --size 4200 23 part swap --size 300 24 #Use DHCP networking 25 network --bootproto dhcp 26 #System authorization information 27 auth --useshadow --enablemd5 28 #Firewall configuration 29 firewall --disabled 30 #XWindows configuration information 31 #Probe for video card 32 #Probe for monitor 33 xconfig --depth 16 --resolution 1024x768 --defaultdesktop=GNOME 34 %packages 35 @KDE 36 @Emacs 37 lynx 38 %pre 39 echo " Welcome to my kickstart" 40 %post 41 echo "192.168.10.55 Server" >> /etc/hosts
所有以“#”號開頭的都是注釋,可以忽略。第2行指明了安裝時采用的語言。其實在配置正確的時候,kickstart安裝不需要人工干預,本文將其定為英語。第4行指明了系統支持的語言環境,如果不安裝X-Window,只需要英語即可。本文增加了對簡體中文的支持。第6-9行指明了系統采用的鍵盤和鼠標的類型,通常鍵盤都是us兼容行的。帶滾輪的PS/2鼠標應寫為:
mouse msintellips/2
第6-9行建議用ksconfig 程序配置。第10-11行是時區,中國的用戶一般可以選擇上海。第12-13行指明了root用戶的密碼,還有一種形式就是將密碼進行加密。第16-17行指明了是安裝還是升級,如果是升級,第17行應該用upgrade代替Install參數。第18-19行指明了安裝介質所在的位置,這是Kickstart安裝的關鍵之一。安裝介質可以放置在NFS/FTP/HTTP服務器上,也可以放置在本機硬盤上。本文不打算探討硬盤安裝,只研究網絡安裝。具體的辦法是把3張Red Hat安裝光盤中的Red Hat目錄拷貝到到服務器的某個位置,比如說/tmp/install 下面,如果是用NFS安裝,則需要把/tmp/install 共享出去,同時要保證將要安裝Red Hat Linux的客戶機可以訪問。只讀的權限可以按如下配置:
/etc/exports 文件如下 /tmp/install 192.168.10.0/255.255.255.0(ro)
如果是FTP或者HTTP安裝,則可以把Red Hat目錄放在ftproot或者httproot下。值得注意的是,在Windows系統中,可能對“/”和“”產生歧意,如果FTP Server 是Windows系統,最好將Red Hat目錄放置到ftproot的再下一級目錄中。
第21-23行是描述Linux將安裝到哪個分區,clearpart -all 的意思是清除所有分區。第22行新建一個4.2GB的分區作為“/”分區。第23行新建立一個300MB的swap分區。
如果使用已存在的分區,則寫為:
partition / --onpart sda1 partition swap -onpart sda2
注意:第21-23行最好不要用ksconfig程序自動設定參數,手工配置比較穩妥。第25行的意思是用DHCP Server自動分配IP地址。如果裝機的數量較多,DHCP的方式毫無疑問是首選。如果想自己指定IP地址,則應該寫為:
network --bootproto static --ip 192.168.10.55 --netmask 255.255.255.0 --gateway 192.168.11.1 --nameserver 202.96.134.133
多網卡的機器稍微復雜一點,本文就不介紹了。第27行指明了系統驗證用戶的方式。本文用的是缺省Shadow密碼,MD5 方式加密,這是最常見的方式。第28行把自定義的防火牆關閉。因為安裝Red Hat時用的是ipchains 防火牆,因此筆者建議安裝以後采用iptables防火牆。第30-33行是關於X-Window的配置。意思是使用系統自動偵測的配置。Linux一般都能正確地檢測到顯示卡和顯示器的型號。第33行的意思是以GNOME做為缺省的窗口管理器,顏色為16位色,屏幕分辨為1024×768。如果在末尾加上“--startxonboot”,就是開機後X-Window登陸。第34-37行指明了安裝時候選擇安裝的軟件。前面有個“@”符號代表一組RPM包,每組包將安裝的軟件列表,這樣軟件可以在Red Hat第一張安裝光盤中的Redhat/base/comps 文件中找到。如果一個組都不指定,則會安裝Redhat/base/comps文件中的Base組合,也就是最基本的一些RPM包,如Sendmail等。寫一個@Everything 則是完全安裝。第37行中有單獨安裝了lynx的RPM包。第38-39行的%pre表示安裝之前執行的命令。第40-41行%post以後代表安裝之後將要執行的命令。第40行執行了一個簡單的命令。最後的工作是把寫好的ks.cfg 拷貝到軟盤上:
cp ks.cfg /mnt/floppy
筆者在Windows 2000下安裝了VMware,在虛擬機上用光盤安裝Linux時,不知道什麼原因光驅的速度非常慢。因此又在Windows 2000下安裝了Server-U FTP服務器,然後在VMware下進行Kickstart安裝,結果速度非常令人滿意。另外,也可以用Omni-NFS在Windows 2000下實現NFS Server的功能,使用NFS安裝。善用Kickstart安裝中的%post 命令,就可以直接配置好服務器。Kickstart安裝是學習Linux的重點之一,在Red Hat RH133培訓課程中,就有Kickstart安裝的課程,但這方面的中文資料一直都比較少,希望本文能起到拋磚引玉的作用。