歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

用kickstart遠程安裝Linux系統

    前言:原有系統是RH Linux 9.0,現想把它遠程安裝成RH AS3,安裝過程中不需要任何交互式操作。使用kickstart結合WEB和DHCP可以做到這一點。kickstart的原理大概這樣:使用要安裝的內核鏡像引導後,內核會讀取指定位置的ks配置文件(ks.cfg),在安裝過程中所需要的各項系統配置(鍵盤,鼠標,語言,分區等),都從這個配置文件裡獲取。我在這裡使用HTTP方式進行安裝,所以要先在網絡中配置一台WEB服務器,用於下載安裝文件;再配置一台DHCP服務器,因為在系統安裝之初,它需要先通過DHCP方式申請一個IP地址,使自己能聯到網絡中,才能從HTTP服務器上下載文件。

    1.在網絡中配置一台http服務器,例如Apache;以及一台DHCP服務器。

    2.將RH AS3的安裝文件上傳到web服務器的發布目錄裡,包含四個文件:    rhel-3-U3-i386-as-disc1.iso  rhel-3-U3-i386-as-disc3.iso    rhel-3-U3-i386-as-disc2.iso  rhel-3-U3-i386-as-disc4.iso

    3.在發布目錄裡建好目錄結構,包括:$web/disc1 $web/disc2 $web/disc3 $web/disc4 $web/RedHat $web/RedHat/base $web/RedHat/RPMS其中$web代表WEB發布目錄。

    4.將這4個鏡像文件mount到本地文件系統:    mount -o loop -o ro rhel-3-U3-i386-as-disc1.iso disc1    mount -o loop -o ro rhel-3-U3-i386-as-disc2.iso disc2    mount -o loop -o ro rhel-3-U3-i386-as-disc3.iso disc3    mount -o loop -o ro rhel-3-U3-i386-as-disc4.iso disc4

    5.進入新建的RedHat/base目錄,把第一張盤裡的base目錄裡的內容鏈接過來:    cd RedHat/base    ln -s ../../disc1/RedHat/base/* .

    6.進入RedHat/RPMS目錄,把所有盤裡面的RPM文件鏈接過來:    cd RedHat/RPMS    ln -s ../../disc1/RedHat/RPMS/* .    ln -s ../../disc2/RedHat/RPMS/* .    ln -s ../../disc3/RedHat/RPMS/* .    ln -s ../../disc4/RedHat/RPMS/* .    上述過程可以寫成腳本如下(在WEB服務器上安裝文件存放的目錄裡執行):    --------------------------------------------------------    mkdir -p RedHat    cd RedHat    mkdir -p base; mkdir -p RPMS

    cd ..    mkdir -p disc{1,2,3,4}    mount -o loop -o ro rhel-3-U3-i386-as-disc1.iso disc1    mount -o loop -o ro rhel-3-U3-i386-as-disc2.iso disc2    mount -o loop -o ro rhel-3-U3-i386-as-disc3.iso disc3    mount -o loop -o ro rhel-3-U3-i386-as-disc4.iso disc4

    cd RedHat/base    ln -s ../../disc1/RedHat/base/* .

    cd ../RPMS    ln -s ../../disc1/RedHat/RPMS/* .    ln -s ../../disc2/RedHat/RPMS/* .    ln -s ../../disc3/RedHat/RPMS/* .    ln -s ../../disc4/RedHat/RPMS/* .




    7.創建ks.cfg配置文件,該文件決定安裝或升級過程中的選項,ks.cfg文件可以放在web發布目錄下,內容如下:

    lang en_US    langsupport zh_CN en_US --default=en_US    keyboard us    mouse    timezone Asia/Shanghai    rootpw 1234    reboot    #upgrade    install    url --url http://192.168.14.202/rhas    #harddrive --partition=sdb1 --dir=rhas    #nfs --server=192.168.14.227 --dir=/home/pyh/rhas    text    bootloader --location=mbr    zerombr yes    clearpart --drives sda --initlabel    part / --fstype ext3 --size 3072 --ASPrimary --ondisk sda    part swap --size 256 --asprimary --ondisk sda    part /tmp --fstype ext2 --size 256 --ondisk sda    part /home --fstype ext3 --size 1 --grow --ondisk sda    auth  --useshadow  --enablemd5    #network --bootproto=dhcp --device=eth0    network --device=eth0 --bootproto=static --ip=192.168.14.144 --netmask=255.255.254.0 --gateway=192.168.14.15 --nameserver=202.96.128.68 --hostname=test05.188.com    firewall --disabled    skipx

    %packages --resolvedeps    @ development-tools    @ kernel-development    @ admin-tools    @ system-tools

    %post    /sbin/chkconfig --level 345 sshd on    /sbin/chkconfig --level 0123456  kudzu off    /sbin/chkconfig --level 0123456  cups off    /sbin/chkconfig --level 0123456  autofs off    /sbin/chkconfig --level 0123456  sendmail off    /sbin/chkconfig --level 0123456  atd off    /sbin/chkconfig --level 0123456  iptables off    /sbin/chkconfig --level 0123456  xinetd off    /sbin/chkconfig --level 0123456  portmap off    /sbin/chkconfig --level 0123456  pcmcia off    /sbin/chkconfig --level 0123456  gpm off    /sbin/chkconfig --level 0123456  rhnsd off    /sbin/chkconfig --level 0123456  isdn off    /sbin/chkconfig --level 0123456  nfslock off    /sbin/chkconfig --level 0123456  rawdevices off    /sbin/chkconfig --level 0123456  keytable off    /sbin/chkconfig --level 0123456  apmd off    /sbin/chkconfig --level 0123456  anacron off    /sbin/chkconfig --level 0123456  xfs off    /sbin/chkconfig --level 0123456  netfs off    /sbin/chkconfig --level 0123456  ip6tables off    /sbin/chkconfig --level 0123456  arptables_jf off    /sbin/chkconfig --level 0123456  microcode_ctl off    /sbin/chkconfig --level 0123456  irqbalance off    /sbin/chkconfig --level 0123456  mdmonitor off    /sbin/chkconfig --level 0123456  hpoj off    /sbin/chkconfig --level 0123456  sgi_fam off    /sbin/chkconfig --level 0123456  audit off    /sbin/chkconfig --level 0123456  firstboot off    /sbin/chkconfig --level 0123456  vsFTPd off



    解釋:上述配置文件裡,第一小節是kickstart命令,它決定安裝過程中的選項。值得說明的是,本人在這裡將安裝方式設置為install,即重新安裝一個新系統。如果不選擇install,而選擇upgrade,就會在原來系統基礎上進行升級,原來的分區和文件系統,及安裝的軟件包都不會變。kickstart命令沒有先後順序。第二小節(%packages)是選擇欲在新系統中安裝的軟件包。第三小節(%post)定制在系統安裝完成後,執行的一些命令,這裡的意思是在系統安裝完成後,關閉所有服務,只開SSH服務。

    關於kickstart每個命令的詳細解釋請參看:http://www.hk.redhat.com/docs/manuals/linux/RHL-9-Manual-CN/custom-guide/s1-kickstart2-options.Html

    8.在RH AS3第一個iso文件裡的images目錄下,有一個boot.iso文件,將它再展開,獲得新系統的內核鏡像文件,它們是vmlinuz和initrd.img,將他們拷貝到要安裝系統的/boot目錄下,重命名為:vmlinuz-as3,initrd-as3

    9.在要安裝的機器上,編輯/etc/grub.conf文件,加入內容如下:

    title Upgrade to AS3            kernel /vmlinuz-as3 ro ks=http://192.168.14.202/rhas/ks.cfg            initrd /initrd-as3

    ks=http://192.168.14.202/rhas/ks.cfg 這行決定配置文件的路徑。

    在這個文件裡更改默認的啟動順序(例如default=1),將新內核啟動選擇為默認。

    10.重啟計算機,過20分鐘後,一個新系統就誕生了,你可以通過SSH連上去進行操作。

    補充:如果選擇NFS方式或本地硬盤的方式進行安裝或升級,原理跟上述是一樣的,不過讀取安裝文件的方式有些不同。另外,這兩種方式可以直接讀取iso文件,而不必象上面那樣把iso文件展開。

    1)如果選擇NFS方式安裝,先要配置NFS服務器,將安裝鏡像文件(iso文件)放在NFS服務器上,然後在要安裝的機器上,mount上這些文件。ks.cfg文件裡對應的語句是:nfs --server=192.168.14.227 --dir=/home/pyh/rhas 前者是服務器IP地址,後者是安裝文件目錄。 /etc/grub.conf文件裡對應的是:ks=nfs:192.168.14.227:/home/pyh/rhas/ks.cfg 指定ks配置文件的路徑。

    2)如果選擇本地硬盤安裝,那麼ks.cfg裡對應的地方改成:harddrive --partition=sdb1 --dir=rhas,前者是存放安裝文件的分區,後者是目錄,該分區的文件系統必須是vfat或ext2格式。grub.conf文件對應的地方改成:ks=hd:sda1/ks.cfg sda1是我的/boot分區,就是說將ks.cfg配置文件放在/boot目錄下。如果選擇硬盤安裝,那麼安裝文件最好放在系統中的其他物理磁盤上。



    解釋:上述配置文件裡,第一小節是kickstart命令,它決定安裝過程中的選項。值得說明的是,本人在這裡將安裝方式設置為install,即重新安裝一個新系統。如果不選擇install,而選擇upgrade,就會在原來系統基礎上進行升級,原來的分區和文件系統,及安裝的軟件包都不會變。kickstart命令沒有先後順序。第二小節(%packages)是選擇欲在新系統中安裝的軟件包。第三小節(%post)定制在系統安裝完成後,執行的一些命令,這裡的意思是在系統安裝完成後,關閉所有服務,只開SSH服務。

    關於kickstart每個命令的詳細解釋請參看:http://www.hk.redhat.com/docs/manuals/linux/RHL-9-Manual-CN/custom-guide/s1-kickstart2-options.html

    8.在RH AS3第一個iso文件裡的images目錄下,有一個boot.iso文件,將它再展開,獲得新系統的內核鏡像文件,它們是vmlinuz和initrd.img,將他們拷貝到要安裝系統的/boot目錄下,重命名為:vmlinuz-as3,initrd-as3

    9.在要安裝的機器上,編輯/etc/grub.conf文件,加入內容如下:

    title Upgrade to AS3            kernel /vmlinuz-as3 ro ks=http://192.168.14.202/rhas/ks.cfg            initrd /initrd-as3

    ks=http://192.168.14.202/rhas/ks.cfg 這行決定配置文件的路徑。

    在這個文件裡更改默認的啟動順序(例如default=1),將新內核啟動選擇為默認。

    10.重啟計算機,過20分鐘後,一個新系統就誕生了,你可以通過SSH連上去進行操作。

    補充:如果選擇NFS方式或本地硬盤的方式進行安裝或升級,原理跟上述是一樣的,不過讀取安裝文件的方式有些不同。另外,這兩種方式可以直接讀取iso文件,而不必象上面那樣把iso文件展開。

    1)如果選擇NFS方式安裝,先要配置NFS服務器,將安裝鏡像文件(iso文件)放在NFS服務器上,然後在要安裝的機器上,mount上這些文件。ks.cfg文件裡對應的語句是:nfs --server=192.168.14.227 --dir=/home/pyh/rhas 前者是服務器IP地址,後者是安裝文件目錄。 /etc/grub.conf文件裡對應的是:ks=nfs:192.168.14.227:/home/pyh/rhas/ks.cfg 指定ks配置文件的路徑。

    2)如果選擇本地硬盤安裝,那麼ks.cfg裡對應的地方改成:harddrive --partition=sdb1 --dir=rhas,前者是存放安裝文件的分區,後者是目錄,該分區的文件系統必須是vfat或ext2格式。grub.conf文件對應的地方改成:ks=hd:sda1/ks.cfg sda1是我的/boot分區,就是說將ks.cfg配置文件放在/boot目錄下。如果選擇硬盤安裝,那麼安裝文件最好放在系統中的其他物理磁盤上。



Copyright © Linux教程網 All Rights Reserved