Kickstart 是紅帽系 Linux 實現無人值守自動安裝的標準方案。透過預先定義 ks.cfg 回答安裝過程所有問題 (磁碟分割、網路、帳號、套件選擇等),配合 PXE/光碟/USB 啟動,實現大規模批次部署。本文深度解析安裝啟動流程、anaconda 安裝程式架構、ks.cfg 關鍵段落、system-config-kickstart 圖形化生成工具。

default=0
timeout 5
hiddenmenu
title CentOS 6.4 Install
kernel vmlinuz
initrd initrd.img
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.4!
label linux
menu label ^Install or upgrade
menu default
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ks.cfg # ← 關鍵:指定 Kickstart 檔案位置
label vesa
menu label Install with ^basic video driver
kernel vmlinuz
append initrd=initrd.img xdriver=vesa nomodeset ks=cdrom:/ks.cfg
# 版本宣告 (必要)
install
cdrom # 或 url --url=https://server/path
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp --device=eth0
rootpw --iscrypted $6$salt$hash
firewall --disabled
authconfig --enableshadow --passalgo=sha512
timezone Asia/Taipei --utc
bootloader --location=mbr --password=grubpass
# 磁碟分割 (自動/手動)
clearpart --all --initlabel
part /boot --fstype=ext4 --size=512
part / --fstype=ext4 --size=1 --grow
part swap --recommended
# 套件選擇
%packages
@core
@base
vim-enhanced
git
%end
# 安裝後腳本
%post --interpreter=/bin/bash
systemctl enable sshd
useradd -m -G wheel admin
echo "admin:Passw0rd" | chpasswd
%end
# 安裝
yum install system-config-kickstart
# 啟動 (需圖形環境或 X11 Forwarding)
system-config-kickstart &
關鍵設定頁籤:
| 模式 | ks.cfg 來源 | 適用場景 |
|---|---|---|
| 光碟內建 | ks=cdrom:/ks.cfg | 離線單機/少量部署 |
| USB 隨身碟 | ks=hd:sdb1:/ks.cfg | 無光碟機設備 |
| NFS 共享 | ks=nfs:server:/path/ks.cfg | 內網批次部署 |
| HTTP/FTP | ks=https://server/ks.cfg | 大規模 PXE 部署 |
| 多重 ks.cfg | ks=https://server/ks.cfg,ks=https://server/extra.cfg | 模組化配置 |
anaconda-ks.cfg 會自動生成於 /root/,記錄實際安裝參數ks.cfg 與 anaconda-ks.cfg 可驗證自動化流程正確性上一頁 1 2 下一頁 共 2 頁