CentOS 系統安裝linux
無人職守安裝是anaconda接受kickstart配置文件,代替了人的交互式設置實現了無人安裝。網絡
anaconda是什麼?kickstart是什麼?app
你知道當你把光驅里加載iso系統,啓動後爲何會出現以下這個界面嗎?ide
圖1 佈局
這就是系統安裝程序anaconda提供的圖形配置界面post
anaconda是怎樣橫空出世的呢? ui
bootloader --> kernel(initrd(rootfs)) --> anaconda加密
開機後bootloader把內核加載到內存中,並以只讀掛載臨時根文件系統rootfs。接着anaconda成爲運行在內核之上的第一個應用程序。 url
再細一點:你的光盤是如何啓動了anaconda?spa
光盤的引導程序MBR:boot.cat 的stage1引出以下:
Stage2:isolinux/isolinux.bin 打印出圖形安裝界面
配置文件:isolinux/isolinux.cfg
每一個對應的菜單選項在isolinux.cfg中有定義:
加載內核:isolinux/vmlinuz
向內核傳遞參數:append initrd=initrd.img
圖3
裝載根文件系統,並啓動anaconda
注意:上述內容通常位於引導設備,例如可經過光盤、U盤或網絡等;
後續的anacona及其安裝用到的程序包等能夠來自於程序包倉庫,此倉庫的位置能夠爲:
本地光盤
本地硬盤
ftp server
http server
nfs server
若是想手動指定安裝倉庫:按ESC boot: linux method 注:method是指安裝方法
安裝引導選項:
boot:
text:文本安裝方式
method:手動指定使用的安裝方法
與網絡相關的引導選項:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
遠程訪問功能相關的引導選項:
vnc
vncpassword='PASSWORD'
啓動緊急救援模式:
rescue
裝載額外驅動:
dd
總結:
anaconda安裝前配置階段分兩類
交互式配置 即爲手動安裝
提供配置文件kickstart(自動配置)
安裝階段
首次啓動
anaconda啓動後,若是咱們給它提供了kickstart文件,那麼就能夠自動安裝。若是不提供咱們能夠選擇label開啓手動安裝。
咱們來了解下anaconda的工做過程:
安裝前配置階段
安裝過程使用的語言;
鍵盤類型
安裝目標存儲設備
Basic Storage:本地磁盤
Special Storage: iSCSI
設定主機名
配置網絡接口
時區
管理員密碼
設定分區方式及MBR的安裝位置;
建立一個普通用戶;
選定要安裝的程序包;
安裝階段
在目標磁盤建立分區並執行格式化;
將選定的程序包安裝至目標位置;
安裝bootloader;
首次啓動
iptables
selinux
core dump
kickstart詳解
anaconda從哪裏讀取kickstart?
安裝引導選項:
ks:指明kickstart文件的位置;
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard Drive: ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE
HTTP Server: ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE
FTP Server: ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE
HTTPS Server: ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE
俯瞰kickstart文件的格式
命令段:
指定各類安裝前配置選項,如鍵盤類型等;
必備命令
可選命令
程序包段:
指明要安裝程序包,以及包組,也包括不安裝的程序包;
%packages 起始
@group_name
package
-package
%end 結束
腳本段:
%pre:安裝前腳本 運行環境:運行安裝介質上的微型Linux系統環境;運行的命令有限
%post:安裝後腳本 運行環境:安裝完成的系統;
let me逐條看看kickstart的含義
命令段中的必備命令:
1.authconfig:認證方式配置
authconfig --enableshadow --passalgo=sha512
2.bootloader:定義bootloader的安裝位置及相關配置
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
3.keyboard:設置鍵盤類型
keyboard us
4.lang:語言類型
lang zh_CN.UTF-8
5.part:分區佈局;
part /boot --fstype=ext4 --size=500
part pv.008002 --size=51200
補充:分區相關的其它指令
clearpart:清除分區
clearpart --none --drives=sda:清空磁盤分區;
volgroup:建立卷組
volgroup myvg --pesize=4096 pv.008002
logvol:建立邏輯卷
logvol /home --fstype=ext4 --name=lv_home --vgname=myvg --size=5120
6.rootpw:管理員密碼
rootpw --iscrypted $6$4Yh15kMGDWOPtbbW$SGax4DsZwDAz4201.O97WvaqVJfHcISsSQEokZH054juNnoBmO/rmmA7H8ZsD08.fM.Z3B r/67Uffod1ZbE0s.
擴展:生成加密密碼的方式:
~]# openssl passwd -1 -salt `openssl rand -hex 4`
7.timezone:時區
timezone Asia/Shanghai
可選命令:
install OR upgrade:安裝或升級;
text:安裝界面類型,text爲tui,默認爲GUI
network:配置網絡接口
network --onboot yes --device eth0 --bootproto dhcp --noipv6
firewall:防火牆
firewall --disabled
selinux:SELinux
selinux --disabled
halt、poweroff或reboot:安裝完成以後的行爲;
repo:指明安裝時使用的repository;
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
url: 指明安裝時使用的repository,但爲url格式;
url --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/
定製kickstart文件:
# yum install system-config-kickstart
# system-config-kickstart
檢查語法錯誤:
# ksvalidator
建立光盤鏡像:
~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/