使用光碟片iso實現Linux作業系統的自動安裝部署,isolinux
前邊寫了一篇使用 PXE 的方式大量安裝作業系統,不是任何時候任何地方都有環境來通過 PXE 方式來進行安裝。如果此時需要通過光碟片安裝,預設的情況下是通過互動式方式進行安裝,其實也可以通過 kickstart 的方式來實現自動化安裝部署。光碟片通過 ks.cfg 進行安裝的實現方式比較簡單,下邊簡單的進行總結。
一、實現原理
光碟片通過讀取 ks.cfg 檔案來實現安裝作業系統,ks.cfg 設定檔放在光碟片的根目錄即可,然後修改 isolinux/isolinux.cfg 檔案,設定核心參數,指定 ks.cfg 檔案的位置即可。由於原始 iso 鏡像檔案是唯讀,不能直接在 iso 光碟片目錄檔案內進行修改,需要拷貝到一個臨時目錄,修改完後在封裝為 iso 鏡像檔案。
二、拷貝鏡像臨時目錄
mkdir /mnt/cdrommount -o loop CentOS-6.8-x86_64-minimal.iso /mnt/cdromcp -ar /mnt/cdrom/ /root/iso # 原來root下沒有iso目錄,拷貝過來重新命名為iso
三、產生 ks.cfg 檔案
產生 ks.cfg 檔案的方式大概有2種,一是可以通過圖形工具 system-config-kickstart 來定製產生指定的 ks.cfg 檔案,二是對於熟悉 kickstart 文法的可以直接編寫 ks.cfg 設定檔。本次實驗用的 ks.cfg 配置比較簡單,是通過工具產生的,下邊給出本次的 ks.cfg 檔案。
#platform=x86, AMD64, or Intel EM64T#version=DEVEL# Firewall configurationfirewall --disabled# Install OS instead of upgradeinstall# Use CDROM installation mediacdrom# Root passwordrootpw --iscrypted $1$p6oEoqGo$UDHZdzw56Rl6Rt5oi1A0Q1# System authorization informationauth --useshadow --passalgo=sha512# Use graphical installgraphical# System keyboardkeyboard us# System languagelang en_US# SELinux configurationselinux --disabled# Do not configure the X Window Systemskipx# Installation logging levellogging --level=info# Reboot after installation#reboot# System timezonetimezone --isUtc Asia/Shanghai# Network informationnetwork --bootproto=dhcp --device=eth0 --onboot=on# System bootloader configurationbootloader --location=mbr# Clear the Master Boot Recordzerombr# Partition clearing informationclearpart --all --initlabel # Disk partitioning informationpart /boot --asprimary --fstype="ext4" --ondisk=sda --size=200part swap --asprimary --fstype="swap" --ondisk=sda --size=4096part / --asprimary --fstype="ext4" --grow --ondisk=sda --size=1
拷貝到光碟片鏡像根目錄:
/bin/cp ks.cfg /root/iso/
四、修改啟動項菜單核心參數
修改功能表項目設定檔 isolinux/isolinux.cfg:
default vesamenu.c32#prompt 1timeout 1 # 逾時自動選擇菜單時間設定,設定為1時,即一閃而過,設定3秒為好。
修改核心參數,指定 ks.cfg 位置:
label linux menu label ^Install CentOS 6.8 x64 System. # 自訂了菜單 menu default kernel vmlinuz append initrd=initrd.img ks=cdrom:/ks.cfg # 添加了ks檔案的位置:光碟片的根目錄
五、封裝iso鏡像檔案
cd /root/iso/ # 進入鏡像製作目錄
如果沒有 mkisofs 命令,執行安裝:
yum install mkisofs -y
執行封裝鏡像的命令:
mkisofs -o /root/CentOS6.8_x64.iso \ -V centos6 -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 \ -boot-info-table -R -J -T -v .
校正並寫入 md5 值(可選):
implantisomd5 /root/CentOS6.8_x64.iso
通過光碟片實現自動化安裝已經完成製作,接下來測試可以通過虛擬機器,匯入 iso 鏡像來做測試。