通過kickstart批量安裝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 [url]ftp://192.168.203.2/download[/url]
  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安裝的課程,但這方面的中文資料一直都比較少,希望本文能起到拋磚引玉的作用。本文介紹的內容也適用於最新的Red Hat 8.0。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章