通常 RedHat 跟 CentOS 安裝完成之後在 root 資料夾會留下當初安裝的設定檔 anaconda-ks.cfg ,這可以當做下次安裝的自動安裝設定檔 KICKSTART ,不過這預設的 KICKSTART 最會還是會停在
Initial setup of centos linux 7 Licence not accepted
這預設的 anaconda-ks.cfg 設定檔並沒有設定 End User License Agreement (EULA)使用條款,所以我們得自己把這一行設定寫到 anaconda-ks.cfg 裡面.連 firstboot 也建議直接設定為 –disable ,這些設定沒有順序性.
eula --agreed firstboot --disable
我的 KICKSTART 檔案就會像這樣.
# cat /root/anaconda-ks.cfg #version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Use network installation url --url="http://172.16.0.2/centos7-64/" # Use graphical install graphical # Run the Setup Agent on first boot firstboot --disable ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 eula --agreed # Network information network --bootproto=dhcp --device=eth0 --ipv6=auto --activate network --hostname=localhost.localdomain # Root password rootpw --iscrypted $6$FPvqGI9U9miJL67P$7JIToZoCBzcoIk3hdONuHbRWfnGy.VaTW5vM78Hl0SPZA3NVoWqRF7Wnm50yFGs2HOlbDTP9uqOENdRRacMoE0 # System services services --enabled="chronyd" # System timezone timezone Asia/Taipei --isUtc # X Window System configuration information xconfig --startxonboot # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda autopart --type=lvm # Partition clearing information clearpart --all --initlabel --drives=sda %packages @^gnome-desktop-environment @base @core @desktop-debugging @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony kexec-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end
如果你有一些設定需要在安裝前或是安裝後順便完成,在 Kickstart 也是可以做設定,不過這設定必須放在 Kickstart 檔案的最後面.
- 安裝前 以 %pre 開始,以 %end 結尾
- 安裝後 以 %post 開始,以 %end 結尾
%pre 與 %post 的順序是沒有關係的.
%pre %end %post %end
用文字編輯很累人 RedHat 提供了一隻工具(#system-config-kickstart)可以讓我們透過勾選選單的方式來設定安裝時的設定值.
Kickstart 詳細設定可以參考 https://access.redhat.com/documentation/zh-TW/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html
當你的電腦有多個網路埠時,自動安裝還是會停在選擇網路埠,此時你可以設定 ksdevice=bootif
# vi /var/lib/tftpboot/linux-install/pxelinux.cfg/default RHEL6.5 kernel rhel6.5-64/vmlinuz append initrd=rhel6.5-64/initrd.img xdriver=vesa nomodeset ks=http://172.16.0.2/rhel6.5-64/ks.cfg ksdevice=bootif IPAPPEND 2
關於 ksdevice 參數使用請參考 https://access.redhat.com/documentation/zh-TW/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/chap-anaconda-boot-options.html