我們安裝Linux系統,需要用到系統安裝CD光牒,它會顯示一個互動的界面,讓我們進行設定,等設定完成後實作自動安裝。這個過程是怎麼實作的?我們可不可以自定義一個CD光牒,來實作自動安裝,不進行互動呢?答案是肯定的
Redhat Linux系統的安裝有兩個階段:
1,ananconda
它是一個開源的軟體,是linux安裝前的配置程式,它依賴于CD光牒中的isolinux目錄中的小linux系統來啟動。當我們插入系統安裝CD光牒後,出現的那個互動的讓使用者來選擇系統設定,選擇要安裝軟體包等,都是通過這個程式來實作的,可見isolinux這個目錄是非常重要的。
2,installation
這一步是真正的安裝,根據我們的選擇,實作系統安裝。
ananconda有兩種模式:
1,圖形或指令行模式進行交換的配置
2,把系統配置寫到一個檔案中,用ks指定,ananconda會自動讀取
而我們怎麼實作自動配置呢?
我們可以自己定義一個配置檔案,自定義我們要安裝的軟體包,自定義系統的設定,讓ananconda來讀取,這樣就不用實作互動了。
那麼什麼是ks檔案呢?
ks即kickstart,它主要用于系統的自動安裝。ananconda會讀取它指向的配置好的檔案,實作自動安裝。
kickstart檔案主要有三部分:
1,指令段
主要是配置作業系統,例如時區,鍵盤類型,網絡的配置等。
2,軟體包段
在安裝的過程中,預設要安裝的軟體包
package_name 指定要安裝的單個軟體包
@groupname 指定要安裝的包組
-package_name 安裝包組的時候可以不安裝此軟體包
3,腳本段
這個是可選的
%pre 指定預安裝腳本,系統安裝前要運作的腳本,并且腳本中用到的指令,isolinux目錄中的小linux系統必須支援
%post 指定後安裝腳本,系統安裝後要運作的腳本,這些腳本中可以執行很多指令了
一,我們來寫一個kickstart檔案,這個檔案的字尾必須為.cfg
mkdir /myboot
cd /myboot
vi jia.cfg
install
安裝方式為安裝,而不是更新系統
test
表示安裝界面為文本
cdrom
指定系統安裝檔案的位置,CD光牒
key --skip
跳過輸入序列号
lang en_US
系統安裝後預設要使用的語言
keyboard us
指定鍵盤類型
xconfig --startxonboot --resolution 1024x768 --depth 16
系統安裝後,系統啟動後啟用圖形界面,指定分辨率和色深
network --device eth0 --bootproto static --ip=172.16.100.8 --netmask=255.255.0.0 --gateway=172.16.0.1 --nameserver=192.168.0.254
配置系統安裝後的網絡,配置靜态ip,位址,掩碼,網關,DNS,系統安裝成
rootpw redhat
設定root的密碼是redhat
firewall --disabled
預設關閉防火牆
authconfig --useshadow --enablemd5
使用shadow檔案存放使用者密碼,并且用md5加密密碼存放
selinux --disabled
不啟用selinux
timezone --utc Asia/Shanghai
設定時區
zerombr yes
清空mbr重新安裝
bootloader --location=mbr --driveorder=sda
把bootloader安裝在mbr中
clearpart --all --initlabel
删除磁盤所有分區,如果磁盤沒有初始化,直接初始化
part /boot --fstype ext3 --size=100
建立一個100M的分區,挂載到/boot目錄,檔案系統為ext3
part pv.01 --size=40960
建立實體卷
volgroup vol0 --pesize=8192 pv.01
在pv.01實體卷中建立卷組
logvol swap --fstype swap --name=swap --vgname=vol0 --size=1024
在vol0上建立邏輯卷,并為其建立swap檔案系統,邏輯卷名稱為swap
logvol /home --fstype ext3 --name=home --vgname=vol0 --size=2048
在vol0上建立邏輯卷,建立ext3檔案系統,邏輯卷名稱為home,挂載至/home
logvol / --fstype ext3 --name=root --vgname=vol0 --size=29984
在vol0上建立邏輯卷,建立ext3檔案系統,邏輯卷名稱為root,挂載至/
reboot
安裝完成後自動重新開機系統
%packages
下面定義的是要系統安裝的軟體包組和單個軟體包,這個可以根據我們的需要,實作自定義的安裝
@GNOME Desktop Environment
@X Window System
@Printing Support
@Development Tools
elinks
openssh
openssh-server
openssh-clients
vim-enhanced
samba-common
samba-client
gimp
gimp-data-extras
enscript
libcap
ntp
coreutils
elfutils
elfutils-libelf
gimp-print-plugin
gnome-icon-theme
gstreamer
gstreamer-tools
libgnomeprint22
libgnomeprintui22
libgsf
libIDL
libraw1394
nautilus-cd-burner
openmotif
pyorbit
startup-notification
ttmkfdir
firefox
mutt
screen
%post
下面定義的是系統安裝之後所要執行的指令
id fedora &> /dev/null || useradd fedora
echo fedora | passwd --stdin fedora
sed -i 's@^id:5:@id:3:@' /etc/inittab
這個jia.cfg檔案寫好了,這樣是不是很麻煩呀,呵呵!
我們也可以用一個圖形化的工具,來建立kickstart檔案:
mount /dev/cdrom /media
cd /media/Server
rpm -ivh system-config-kickstart--2.6.19.8-2.el5.noarch.rpm
要安裝這個軟體包後,才能使用這個工具,不同系統軟體包的版本不同
有于我們Linux系統安裝之後,會有一個檔案存放我們的安裝時的配置,這個檔案就是/root/anaconda-ks.cfg,我們可以以這個檔案為模闆進行修改
system-config-kickstart
然後導入這個檔案,進行修改,最後儲存退出即可
二,插入CD光牒,我們把CD光牒目錄中的isolinux目錄複制到我們的/myboot目錄
cp -pr /media/isolinux ./
cd isolinux
vi isolinux.cfg
把第一行“default”改為:
default linux ks=cdrom:/jia.cfg
表示預設情況下,這個小linux讀取CD光牒中的ks檔案
把第三行“timeout 600”改為:
timeout 5
即那個等待使用者輸入的界面等待5秒之後,會執行預設選項,即ananconda會依據上面定義的ks檔案jia.cfg進行配置
三,做CD光牒
cd /
mkisofs -o boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T myboot/
會生成一個boot.iso檔案,在/下,這就是我們制作的自動引導CD光牒
到這裡我們自定義的配置CD光牒已經做好了,可以把boot.iso檔案做成CD光牒,然後導入光驅運作,運作一段時間會出現一個界面"The redhat enterprise linux server is not found...",其實這時候ananconda已經從jia.cfg中讀取了系統的配置資訊,我們再把CD光牒換成redhat的安裝CD光牒即可實作根據我們jia.cfg檔案中的定義實作自動安裝
注意:由于我們在jia.cfg檔案中定義了多個分區,所有你的磁盤大小要比我們建立的分區的容量之和大,即要大于45G(如果不想要這麼大的分區,在jia.cfg檔案中更改一下即可)
本文轉自 leejia1989 51CTO部落格,原文連結:http://blog.51cto.com/leejia/798433,如需轉載請自行聯系原作者