kickstart無人值守安裝linux原理

來源:互聯網
上載者:User

標籤:linux kickstart

拿到一張linux發行版安裝系統時的步驟:

  1. 首先自然是開機加電自檢POST

  2. 自檢完成根據BIOS設定的boot sequence依次尋找可引導(bootable)裝置,這裡就定為cdrom了

  3. 載入光碟片的MBR,然後載入根據isolinnux.cfg載入isolinux.bin提供一個安裝作業系統選項的菜單,選擇相應的選項後載入linux核心vmlinuz,和initrd檔案

  4. 光碟片內的linux核心載入到記憶體運行起來後就可以載入anacoda(紅帽系使用的系統安裝程式),anacoda會根據使用者的定製產生一個kickstart檔案,之後的安裝過程就是根據kiskstart檔案來確定如何分區格式化,安裝前執行哪些操作,安裝哪些軟體包,安裝完成後要執行什麼操作等。


到這裡就應該明白了整個過程要完成無人值守安裝的關鍵過程就是這個kickstart檔案了,只要有了這kickstart檔案,那麼一切好像都是那麼行雲流水般了。

  • 你可以直接在kickstart中指定光碟片為安裝源

  • 你也可以在kickstart中指定其他可訪問的通過http,ftp,nfs等方式提供的源,這種情況下光碟片檔案就只需要實現引導就可以了。

  • 當然也可以通過pxe方式引導,連光碟片都省了


每個系統安裝完都會在root家目錄下產生/root/anaconda.cfg 這個檔案即是此系統在安裝時候使用的安裝選項而產生的kickstart檔案,以後製作kickstart檔案可以直接使用這個檔案或者以此基礎上做些修改。

自己直接手動編輯一個kickstart檔案還是比較麻煩的,可以yum install system-config-kickstart安裝這個軟體實現圖形化工具編輯。


安裝完成後可以在Xshell上執行下面命令把圖形通過xmanager輸出到windows上來操作 &表示後台運行

[[email protected] isolinux]# system-config-kickstart & 

可以File --> open 開啟一個現有的kickstart檔案編輯

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/47/A4/wKiom1P9T3TjinJKAAOgAS3F2R4797.jpg" title="kickstart-configurator" width="750" height="466" border="0" hspace="0" vspace="0" style="width:750px;height:466px;" alt="wKiom1P9T3TjinJKAAOgAS3F2R4797.jpg" />


Kickstart的檔案結構:詳細資料可參考redhat官方文檔https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

  • 命令段:用於配置系統

    • install | upgrade 設定是安裝系統還是升級系統

    • keybord us 設定鍵盤

    • lang en_US    語言

    • timezone    Asia/Shanghai 時區

    • rootpw --iscrypted (PASSWORD)    密碼

    • cdrom 從cdrom安裝系統

    • harddrive --partition=hda2 --dir=/data/centos6 從硬碟安裝

    • nfs --server=ks.mydomain.com --dir=/data/centos6 從nfs伺服器安裝

    • url --url=http://ks.mydomain.com/centos6 http方式安裝,如果有誰要指定使用者名稱密碼 url --url=username:[email protected]/centos6 這四種安裝源指定一個即可,指定的路徑要是有效安裝樹

    • text | graphical 文本介面or圖形介面安裝

    • firewall --diable | --enable

    • network --bootproto=dhcp 或 network --bootproto=static --ip=172.16.100.1 --netmask=255.255.0.0 --gateway=172.16.0.1 --nameserver=172.16.0.1


  • 軟體包段:選擇要安裝的軟體包組及軟體包    

    • @Base    Base軟體包組

    • lftp    安裝lftp

    • -zsh    不安裝zsh軟體包,但是如果zsh被已經選擇安裝的軟體所依賴仍然會被安裝


  • 指令碼段

    • %pre    系統安裝前執行的指令碼,安裝前啟動並執行是光碟片的小Linux系統,shell比較精簡,只能執行較簡單的指令碼

    • %post   系統安裝完成後執行的指令碼,這時系統已經安裝完成,全面支援shell各種指令碼功能

     

使用Kickstart檔案安裝的幾種方式

  1. 直接使用系統安裝光碟片,在進入菜單選項時按ESC進入到boot:命令列下,手動指定kickstart檔案地址,此情景需要事先把kickstart檔案分享權限設定出來

[[email protected] ~]# yum install vsftpd[[email protected] ~]# chkconfig vsftpd on[[email protected] ~]# service vsftpd start[[email protected] ~]# cp ks.cfg /var/ftp/pub/[[email protected] ~]# service vsftpd start[[email protected] ~]# lftp localhostlftp localhost:~> ls pub          -rw-r--r--    1 0        0            1400 Aug 26 15:22 ks.cfg

在此介面時按下ESC,進入boot:命令列

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/47/B7/wKiom1P-12OBbTg5AAFOsMBXZqE443.jpg" style="float:none;" title="boot1.jpg" alt="wKiom1P-12OBbTg5AAFOsMBXZqE443.jpg" />

在boot:命令列下 ip= netmask= 配置IP地址 ks=ftp:// 指定ks檔案位置

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/47/B9/wKioL1P-2Q-CFOp-AABOipVc4XU983.jpg" title="boot2.jpg" alt="wKioL1P-2Q-CFOp-AABOipVc4XU983.jpg" />

看到上面圈出來的linux,為什麼這裡要寫個linux?

進到光碟片目錄下的isolinux/目錄下 開啟isolinux.cfg檔案可以看到下面的label linux,boot裡輸入的linux 就是這裡的label名字,後面會實際示範一下這個效果,代表選擇了這個選項,然後後面的 ip= ks=就是給這個選項的核心傳參數

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/47/B7/wKiom1P-2NPygaqEAAB4XZcELsw715.jpg" title="boot_label.jpg" alt="wKiom1P-2NPygaqEAAB4XZcELsw715.jpg" />

下面就是正常的安裝過程啟動,完全不用人工幹涉

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/47/B9/wKioL1P-20GBw6_NAADgVG54iqg140.jpg" title="os_installing" alt="wKioL1P-20GBw6_NAADgVG54iqg140.jpg" />


2、自己重新製作一個光碟片鏡像檔案,把kickstart檔案做進去,在boot.cfg把ks檔案作為核心參數傳進去,安裝樹的源可以做進光碟片也可以通過網際網路共用輸出

[[email protected] ~]# mkdir boot[[email protected] ~]# cd boot[[email protected] ~]# rsync -rl /var/ftp/pub/centos/isolinux ./    # 注意前面isolinux後面不要加/ 這樣會把整個isolinuxh目錄同步過來[[email protected] boot]# lsisolinux[[email protected] ~]# cd isolinux[[email protected] isolinux]# lsboot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuzboot.msg  initrd.img  isolinux.cfg  splash.jpg  vesamenu.c32[[email protected] isolinux]# cp ../ks.cfg ./[[email protected] isolinux]# lsboot.cat  grub.conf   isolinux.bin  ks.cfg   splash.jpg  vesamenu.c32boot.msg  initrd.img  isolinux.cfg  memtest  TRANS.TBL   vmlinuz[[email protected] boot]# chmod u+w isolinux.cfg    # 加上寫入權限[[email protected] isolinux]# vim isolinux.cfg menu title Welcome to CentOS 6.4 Customed by Bob    # 這邊我修改了一下標題以驗明效果label windows    # 為了驗明一下效果我把這裡label改為windows  menu label ^Install or upgrade an existing system  menu default  kernel vmlinuz  append initrd=initrd.img ip=172.16.100.100 netmask=255.255.0.0 ks=ftp://172.16.100.11/pub/ks.cfg    # append 後面加上ks路徑作為參數傳給核心   [[email protected] isolinux]# cd                          [[email protected] ~]# pwd/root# 下面的命令把isolinux這個目錄下的檔案做成boot.iso光碟片鏡像檔案[[email protected] ~]# mkisofs -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V "MageEdu Testing Image" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /tmp/boot.iso boot/           [[email protected] ~]# ls /tmp/boot.iso /tmp/boot.iso


# 可以用xshell內建的sftp工具把檔案傳輸到宿主機

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/47/B7/wKiom1P-4HWwKGbpAAC9NxsQl40949.jpg" title="xshell_sftp" alt="wKiom1P-4HWwKGbpAAC9NxsQl40949.jpg" />


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/47/BA/wKioL1P-41DjhPCEAAGey5ABegE369.jpg" title="bootiso.jpg" alt="wKioL1P-41DjhPCEAAGey5ABegE369.jpg" />

虛擬機器的光碟片改為剛製作的

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/47/B7/wKiom1P-3-Si3uCbAABXHzj_z0U444.jpg" style="float:none;" title="bootiso1.jpg" alt="wKiom1P-3-Si3uCbAABXHzj_z0U444.jpg" />

啟動虛擬機器:標題改了,背景圖片我隨便整了個圖片也給換了,根據自己需要只要把splash.jpg替換成你自己的圖片即可,尺寸為640*480像素

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/47/BA/wKioL1P-5ESyPn5LAAJ1W5jIo68057.jpg" title="customed_bootiso.jpg" alt="wKioL1P-5ESyPn5LAAJ1W5jIo68057.jpg" />

歐了,輸入windows,同樣的也啟動了linux核心載入過程

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/47/BA/wKioL1P-5c3ici8zAAGVzYn8_HE661.jpg" title="boot_label_custom.jpg" alt="wKioL1P-5c3ici8zAAGVzYn8_HE661.jpg" />


以上只是為了粗糙的加深對於光碟片安裝系統過程及kickstart無人值守安裝進行原理過程,實際生產環境面對眾多伺服器時自然不會來用刻光碟片方式來安裝,下一篇會介紹PXE實現網路自動化安裝部署系統。


本文出自 “不懂中醫的IT不是好中醫” 部落格,請務必保留此出處http://zhishen.blog.51cto.com/1612050/1546209

kickstart無人值守安裝linux原理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.