萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux Kickstart 全自動安裝實戰:從原理到 ks.cfg 配置完整指南

Kickstart 是 Red Hat 系發行版實現無人值守自動化安裝的核心技術。透過預先編寫 ks.cfg 回答安裝程式所有互動問題(語言、鍵盤、分區、套件、網路、Root 密碼等),配合 PXE/光碟/USB 啟動,即可實現「插上電源、喝杯咖啡、系統裝好」的批量部署。本文深度解析 Anaconda 安裝流程、Kickstart 三大段落語法、圖形化生成工具、引導參數傳遞及 FTP 自動安裝完整流程。

一、 Anaconda 安裝流程與 Kickstart 介入點

  1. POST 自檢 → MBR/GRUB 引導(isolinux/grub.conf 定義選單)
  2. 啟動選單(isolinux.bin + isolinux.cfg) → 載入 vmlinuz + initrd.img
  3. 掛載根檔案系統 → 啟動 Anaconda 安裝程式
  4. Anaconda 讀取 ks.cfg → 自動化安裝(無互動)

關鍵:在啟動選單(第 2 步)透過 Kernel 參數指定 ks= 位置,Anaconda 即會自動套用。

二、 Kickstart 配置檔三大段落結構

1. 命令段(Command Section)

從檔案開頭至 %packages 之前。定義安裝全域參數:

# 安裝來源
url --url=ftp://1.0.0.12/centos/
# 或 cdrom

# Root 密碼(加密)
rootpw --iscrypted $1$dpCtQEn6$pC3UGFPZEJJ5nVftiaScq0

# 網路與防火牆
network --bootproto=static --device=eth0 --ip=1.0.0.7 --netmask=255.0.0.0 --onboot=on
firewall --disabled

# 語言、鍵盤、時區
lang zh_CN
keyboard us
timezone Asia/Shanghai

# SELinux、開機載入器、磁碟分區
selinux --disabled
bootloader --location=mbr --driveorder=sda
zerombr
clearpart --all --initlabel
part /boot --fstype=ext4 --size=100 --asprimary
part / --fstype=ext4 --size=20480 --asprimary --grow
part swap --fstype=swap --size=500 --asprimary

# 安裝完成動作
reboot

2. 套件段(%packages)

%packages --resolvedeps
@base
@core
@chinese-support
@desktop-platform
vim-enhanced
git
%end
  • @Group:安裝整個套件群組。
  • pkg-name:指定單一套件。
  • -pkg:排除套件。
  • --resolvedeps:自動解決相依。

3. 腳本段(%pre / %post)

%post --interpreter=/bin/bash
# 安裝後在目標系統內執行(chroot 環境)
echo "nameserver 192.168.0.254" >> /etc/resolv.conf
useradd -m admin
echo "admin:P@ssw0rd" | chpasswd
%end
  • %pre:安裝前(運行於安裝環境,可偵測硬體動態決定分區)。
  • %post:安裝後(運行於目標系統,配置服務、建立用戶、下載額外套件)。

三、 圖形化生成 ks.cfg:system-config-kickstart

yum install system-config-kickstart
system-config-kickstart &

GUI 介面分頁對應上述三段落,生成 ks.cfg 後可用 ksvalidator ks.cfg 驗證語法。

四、 啟動參數傳遞 ks.cfg 位置

在啟動選單按 Esc 進入命令列模式:

linux ks=ftp://1.0.0.12/pub/ks.cfg ip=1.0.0.7 netmask=255.0.0.0

支援協議:cdrom、http、ftp、nfs、file、hd:partition。

五、 FTP 自動安裝完整部署流程

  1. 建立 FTP 安裝源:掛載 ISO → 複製至 /var/ftp/pub/centos/ → 啟用 vsftpd。
  2. 放置 ks.cfg:/var/ftp/pub/ks.cfg。
  3. 制作啟動媒介:提取 ISO 中 isolinux/ 目錄燒錄啟動碟/USB。
  4. 客戶端啟動:插入啟動媒介 → 選單輸入 linux ks=ftp://server/pub/ks.cfg → 全自動安裝。

六、 常見坑點與最佳實踐

  • 分區對齊:part / --size=1 --grow 避免固定大小導致空間浪費。
  • %post 網路未就緒:加 --nochroot 在安裝環境執行,或在腳本開頭 sleep 10; dhclient。
  • 驅動缺失:driverdisk 指定驅動磁碟,或 kernel --driverload。
  • 版本相容:ks.cfg 語法隨發行版變動,升級前必須 ksvalidator 測試。
copyright © 萬盛學電腦網 all rights reserved