1、安裝程序
?CentOS系統(tǒng)安裝
系統(tǒng)啟動(dòng)流程:
bootloader-->kernel(initramfs)-->rootfs-->/sbin/init
?anaconda: 系統(tǒng)安裝程序
gui:圖形窗口
tui: 基于圖形庫curses的文本窗口
2、安裝程序啟動(dòng)過程
?MBR:isolinux/boot.cat ---之所以可以用光盤啟動(dòng)是因?yàn)樵诠獗P目錄下有這個(gè)文件,相當(dāng)于硬盤的MBR
?stage2: isolinux/isolinux.bin ----當(dāng)光盤啟動(dòng)后(即運(yùn)行isolinux.bin),會(huì)自動(dòng)去找isolinux.cfg文件
?配置文件:isolinux/isolinux.cfg ---是isolinux.bin的配置文件
每個(gè)對(duì)應(yīng)的菜單選項(xiàng):
加載內(nèi)核:isolinuz/vmlinuz
向內(nèi)核傳遞參數(shù):append initrd=initrd.img...
?裝載根文件系統(tǒng),并啟動(dòng)系統(tǒng)安裝程序anaconda
默認(rèn)啟動(dòng)GUI接口
若是顯式指定使用TUI接口:向內(nèi)核傳遞text參數(shù)即可
(1)按tab鍵,在后面增加text
(2)按ESC鍵:在boot:后面加 linux text
進(jìn)入救援模式的幾種方式
第一種直接在光盤引導(dǎo)界面下進(jìn)入救援模式
第二種在光盤引導(dǎo)界面下的第一行按tab鍵,輸入rescue ---相當(dāng)于直接在isolinux.cfg文件中l(wèi)abel linux中的 append initrd=initrd.img后面加內(nèi)核參數(shù)rescue
第三種在光盤引導(dǎo)界面下按ESC,輸入linux rescue ---相當(dāng)于直接在isolinux.cfg文件中l(wèi)abel linux后面加recure,也就是加內(nèi)核參數(shù)
3、anaconda工作過程
?Anaconda安裝系統(tǒng)分成三個(gè)階段:
?安裝前配置階段
安裝過程使用的語言
鍵盤類型
安裝目標(biāo)存儲(chǔ)設(shè)備
Basic Storage:本地磁盤
特殊設(shè)備:iSCSI
設(shè)定主機(jī)名
配置網(wǎng)絡(luò)接口
時(shí)區(qū)
管理員密碼
設(shè)定分區(qū)方式及MBR的安裝位置
創(chuàng)建一個(gè)普通用戶
選定要安裝的程序包
?安裝階段
在目標(biāo)磁盤創(chuàng)建分區(qū),執(zhí)行格式化操作等
將選定的程序包安裝至目標(biāo)位置
安裝bootloader和initramfs
?圖形模式首次啟動(dòng)
iptables
selinux
core dump
4、系統(tǒng)安裝
?啟動(dòng)安裝過程一般位于引導(dǎo)設(shè)備;后續(xù)的anaconda及其安裝用到的程序包等可來自下面幾種方式:
本地光盤
本地硬盤
NFS:遠(yuǎn)程存儲(chǔ)設(shè)備
URL:ftp server: yum repository、http server: yum repostory
?如果想手動(dòng)指定安裝源:
boot: linux askmethod
?anaconda的配置方式:
(1) 交互式配置方式
(2) 通過讀取事先給定的配置文件自動(dòng)完成配置
按特定語法給出的配置選項(xiàng)
kickstart文件
?安裝boot引導(dǎo)選項(xiàng):boot:
?text: 文本安裝方式
?askmethod: 手動(dòng)指定使用的安裝方法
?與網(wǎng)絡(luò)相關(guān)的引導(dǎo)選項(xiàng):
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
指明kickstart文件的位置:ks=
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard drive: ks=hd:device:/directory/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
NFS server:ks=nfs:host:/path/to/KICKSTART_FILE
系統(tǒng)安裝過程總結(jié):isolinux/boot.cat(相當(dāng)于硬盤的mbr)----->isolinux/isolinux.bin(光盤引導(dǎo)程序)---->讀取isolinux/isolinux.cfg---->加載內(nèi)核:isolinuz/vmlinuz并向內(nèi)核傳遞參數(shù):append initrd=initrd.img...---->裝載根文件系統(tǒng)----->啟動(dòng)anaconda系統(tǒng)安裝程序
5、kickstart文件的格式
?命令段:指明各種安裝前配置,如鍵盤類型等
?程序包段:指明要安裝的程序包組或程序包,不安裝的程序包等
%packages
@group_name
package
-package
%end
?腳本段:
%pre: 安裝前腳本
運(yùn)行環(huán)境:運(yùn)行于安裝介質(zhì)上的微型Linux環(huán)境
%post: 安裝后腳本
運(yùn)行環(huán)境:安裝完成的系統(tǒng)
?命令段中的命令:
?必備命令
authconfig: 認(rèn)證方式配置
authconfig --useshadow --passalgo=sha512
bootloader:bootloader的安裝位置及相關(guān)配置
bootloader --location=mbr--driveorder=sda–
append="crashkernel=auto rhgbquiet"
keyboard: 設(shè)定鍵盤類型
lang: 語言類型
part: 創(chuàng)建分區(qū)
rootpw: 指明root的密碼
timezone: 時(shí)區(qū)
?可選命令
install OR upgrade
text: 文本安裝界面
network
firewall
selinux
halt
poweroff
reboot
repo
user:安裝完成后為系統(tǒng)創(chuàng)建新用戶
url: 指明安裝源
key –skip 跳過安裝號(hào)碼,適用于rhel版本
6、kickstart文件創(chuàng)建
?創(chuàng)建kickstart文件的方式
?直接手動(dòng)編輯
依據(jù)某模板修改
?可使用創(chuàng)建工具:system-config-kickstart ---必須在圖形界面下使用此命令
依據(jù)某模板修改并生成新配置
/root/anaconda-ks.cfg
?檢查ks文件的語法錯(cuò)誤:ksvalidator
ksvalidator/PATH/TO/KICKSTART_FILE
7、系統(tǒng)光盤中isolinux目錄列表
?solinux.bin:光盤引導(dǎo)程序,在mkisofs的選項(xiàng)中需要明確給出文件路徑,這個(gè)文件屬于SYSLINUX項(xiàng)目
?isolinux.cfg:isolinux.bin的配置文件,當(dāng)光盤啟動(dòng)后(即運(yùn)行isolinux.bin),會(huì)自動(dòng)去找isolinux.cfg文件
?vesamenu.c32:是光盤啟動(dòng)后的安裝圖形界面,也屬于SYSLINUX項(xiàng)目,menu.c32版本是純文本的菜單
?Memtest:內(nèi)存檢測(cè),這是一個(gè)獨(dú)立的程序
?splash.jgp:光盤啟動(dòng)界面的背景圖
?vmlinuz是內(nèi)核映像
?initrd.img是ramfs (先cpio,再gzip壓縮)
8、制作引導(dǎo)光盤和U盤
?創(chuàng)建引導(dǎo)光盤:
?cp-r /misc/cd/isolinux/ /tmp/myiso/
?vim /tmp/myiso/isolinux/isolinux.cfg
initrd=initrd.img text ks=cdrom:/myks.cfg
?cp/root/myks.cfg /tmp/myiso/
?cd /tmp;mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.isomyiso/
注意:以上命令的路徑都是相對(duì)于光盤的根,而和工作目錄無關(guān)
?創(chuàng)建U盤啟動(dòng)盤
?dd if=/dev/sr0 of=/dev/sdb
mkisofs選項(xiàng)
?-o 指定映像文件的名稱。
?-b 指定在制作可開機(jī)光盤時(shí)所需的開機(jī)映像文件。
?-c 制作可開機(jī)光盤時(shí),會(huì)將開機(jī)映像文件中的no-eltorito-catalog 全部內(nèi)容作成一個(gè)文件。
?-no-emul-boot 非模擬模式啟動(dòng)。
?-boot-load-size 4 設(shè)置載入部分的數(shù)量
?-boot-info-table 在啟動(dòng)的圖像中顯示信息
?-R 或-rock 使用Rock RidgeExtensions
?-J 或-joliet 使用Joliet 格式的目錄與文件名稱
?-v 或-verbose 執(zhí)行時(shí)顯示詳細(xì)的信息
?-T 或-translation-table 建立文件名的轉(zhuǎn)換表,適用于不支持Rock Ridge Extensions 的系統(tǒng)上
9、用kickstart文件自動(dòng)安裝centos6.9系統(tǒng)實(shí)驗(yàn)
1、生成mkstart文件
在圖形界面下輸入命令system-config-kickstart,按照如下圖所示進(jìn)行操作


也可以對(duì)gurb設(shè)置密碼,也就是設(shè)置進(jìn)單用戶密碼,這里為了方便就不設(shè)置了

創(chuàng)建分區(qū)








點(diǎn)擊file保存和退出既可以生成kickstart文件。
生成的kickstart文件如下
[root@centos6 app]#cat ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://172.18.21.106/centos6" ---基于網(wǎng)絡(luò)路徑安裝,也就
后面安裝的時(shí)候安裝的各種包和包組來自哪里,這里是自己搭建的一
個(gè)http服務(wù),在/var/www.html/目錄下創(chuàng)建了一個(gè)centos6目錄,將光
盤掛載到這個(gè)目錄下,當(dāng)成安裝源,也可以在網(wǎng)絡(luò)上找各種centos安
裝源,比如搜狐、阿里云等
# Root password
rootpw --plaintext 123456ab
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Network information
network --bootproto=static --device=eht0 --gateway=172.18.0.1 --ip=172.18.21.100 --netmask=255.255.0.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record ---清空原有的mbr
zerombr
# Partition clearing information ---清空分區(qū)信息
clearpart --all --initlabel
# Disk partitioning information ---設(shè)置分區(qū)
part /boot --fstype="ext4" --size=500
part / --fstype="ext4" --size=50000
part /app --fstype="ext4" --size=40000
part swap --fstype="swap" --size=2048
%post ---安裝后腳本
rm /etc/yum.repos.d/*
cat >/etc/yum.repos.d/base.repo<<end
[base]
name=base
baseurl=file:///misc/cd
gpgcheck=0
end
useradd zhang
echo magedu |passwd --stdin zhang
%end
%packages ---安裝的包和包組,帶@的是包組
@base
@basic-desktop
@debugging
@core ---后加的
@workstation-policy ---后加的
@server-policy ---后加的
autofs ---后加的
vim --- 后加的
%end
后加的幾個(gè)安裝包和包組也很重要,最小化安裝的時(shí)候一般都需要安裝
2、搭建一個(gè)hhtp服務(wù)或者ftp服務(wù),將生成的kickstart文件存放到網(wǎng)絡(luò)路徑下,這里使用http服務(wù),比如/var/www/html/anacondam目錄下,centos7中用命令生成kickstarts文件時(shí),要把yum倉庫的名稱[base]改為[development]才能看到安裝的包,如果不更改yum倉庫的名稱如下圖所示,是看不到安裝包的。

3、新建一個(gè)虛擬機(jī),掛載centos6.9的光盤做為啟動(dòng)光盤,然后進(jìn)行如下界面設(shè)置


總結(jié):centos6.9的自動(dòng)化安裝和centos7.3中,不同的是centos7.3虛擬機(jī)的內(nèi)存要大于1G才能安裝。不然安裝的時(shí)候會(huì)出問題。
10、制作引導(dǎo)光盤和U盤
生成kickstart文件后要有引導(dǎo)光盤才能安裝系統(tǒng),上述方法安裝系統(tǒng)時(shí)用的是系統(tǒng)光盤做為引導(dǎo),下面我們將制作一個(gè)引導(dǎo)光盤和U盤做為引導(dǎo)來自動(dòng)安裝系統(tǒng)。
1、將光盤isolinux目錄中的內(nèi)容拷貝到/app/isolinux目錄下,并定制引導(dǎo)界面
[root@centos6 ~]#cd /misc/cd/isolinux/
[root@centos6 isolinux]#ls
boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest splash.jpg TRANS.TBL vesamenu.c32 vmlinuz
[root@centos6 isolinux]#mkdir /app/isolinux
[root@centos6 isolinux]#cp * /app/isolinux ---把光盤isolinux/目錄里
面的文件拷貝到這個(gè)目錄下
[root@centos6 isolinux]#vim isolinux.cfg ---定制安裝界面,可以以原
來光盤里面的安裝界面為模板進(jìn)行修改,修改后格式如下

主要修改標(biāo)簽行,并在內(nèi)核參數(shù)處指明ks文件的路徑,kickstart文件可以用命令生成,也可以自己修改。
2、將引導(dǎo)文件制作成iso鏡像文件
[root@centos6 isolinux]#mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.9_boot.iso /app/myiso/ ----將/app/目錄中的內(nèi)容制作成
iso鏡像文件,并保存為 /root/centos6.9_boot.iso文件
[root@centos7 app]#tree
.
└── isolinux
├── boot.cat
├── boot.msg
├── grub.conf
├── initrd.img
├── isolinux.bin
├── isolinux.cfg
├── memtest
├── splash.png
├── TRANS.TBL
├── vesamenu.c32
└── vmlinuz
這里需要注意的是目錄結(jié)構(gòu), 從光盤拷貝的文件的文件要放到
isolinux目錄下,至于它的父目錄是誰,不做要求,但制作鏡像文件的
時(shí)候,命令中要制作成鏡像文件的目錄為isolinux的父目錄
3、將 /root/centos6.9_boot.iso鏡像文件導(dǎo)出
4、新建一個(gè)虛擬機(jī)或者在原來虛擬機(jī)上將這個(gè)鏡像文件光盤掛載上
5、開啟虛擬機(jī),進(jìn)入如下圖界面就可以自動(dòng)安裝了

如果要?jiǎng)?chuàng)建U盤啟動(dòng),這里新加了一塊硬盤來模擬U盤。在虛擬機(jī)上新加一塊硬盤,進(jìn)行如下操作
[root@centos6 isolinux]#!echo
echo '- - -' >/sys/class/scsi_host/host2/scan
[root@centos6 isolinux]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 5.8G 0 rom /media/CDROM
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 39.1G 0 part /app
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 100G 0 disk
sdc 8:32 0 150G 0 disk
sdd 8:48 0 80G 0 disk
sr1 11:1 1 7.7G 0 rom /media/CentOS 7 x86_64
sde 8:64 0 20G 0 disk
[root@centos6 isolinux]#cd
[root@centos6 ~]#ls
anaconda-ks.cfg Desktop Downloads install.log.syslog Music Public Videos
centos6_boot.iso Documents install.log mbr Pictures Templates
[root@centos6 ~]#dd if=centos6_boot.iso of=/dev/sde ---如果/dev/sde換成U盤,操作相同,也可以用cp命令
91372+0 records in
91372+0 records out
46782464 bytes (47 MB) copied, 0.997652 s, 46.9 MB/s
將硬盤拆除后安裝到另外一個(gè)虛擬機(jī)上,然后開機(jī)后進(jìn)行如下設(shè)置。進(jìn)入entersetup,進(jìn)入硬盤驅(qū)動(dòng),將新裝的硬盤設(shè)置為第一個(gè)啟動(dòng)。



11、DHCP服務(wù)
?DHCP: (Dynamic Host Configuration Protocol)動(dòng)態(tài)主機(jī)配置協(xié)議,傳輸層協(xié)議,UDP協(xié)議
?主要用途:
用于內(nèi)部網(wǎng)絡(luò)和網(wǎng)絡(luò)服務(wù)供應(yīng)商自動(dòng)分配IP地址給用戶
用于內(nèi)部網(wǎng)絡(luò)管理員作為對(duì)所有電腦作集中管理的手段
?DHCP共有八種報(bào)文
1、DHCP DISCOVER:客戶端到服務(wù)器
2、DHCP OFFER :服務(wù)器到客戶端
3、DHCP REQUEST:客戶端到服務(wù)器
4、DHCP ACK :服務(wù)器到客戶端
5、DHCP NAK:服務(wù)器到客戶端,通知用戶無法分配合適的IP地址
6、DHCP DECLINE :客戶端到服務(wù)器,指示地址已被使用
7、DHCP RELEASE:客戶端到服務(wù)器,放棄網(wǎng)絡(luò)地址和取消剩余的租約時(shí)間
8、DHCP INFORM:客戶端到服務(wù)器,客戶端如果需要從DHCP服務(wù)器端獲取更為詳細(xì)的配置信息,則發(fā)送Inform報(bào)文向服務(wù)器進(jìn)行請(qǐng)求,極少用到
?續(xù)租
50% :租賃時(shí)間達(dá)到50%時(shí)來續(xù)租,剛向DHCP服務(wù)器發(fā)向新的DHCPREQUEST請(qǐng)求。如果dhcp服務(wù)沒有拒絕的理由,則回應(yīng)DHCPACK信息。當(dāng)DHCP客戶端收到該應(yīng)答信息后,就重新開始新的租用周期
87.5%:如果之前DHCP Server沒有回應(yīng)續(xù)租請(qǐng)求,等到租約期的7/8時(shí),主機(jī)會(huì)再發(fā)送一次廣播請(qǐng)求
?同網(wǎng)段多DHCP服務(wù)
DHCP服務(wù)必須基于本地
先到先得的原則
?相關(guān)協(xié)議
?Arp 地址解析協(xié)議,把ip地址解析成mac地址
?rarp 反向的,把mac地址解析成ip地址
?跨網(wǎng)段
RFC 1542 Compliant Routers:符合1542標(biāo)準(zhǔn)的路由器是允許dhcp廣播通過的,這種路由器就不需要中繼器了。
dhcrelay: 中繼 ---中繼器就是個(gè)dhcp服務(wù)器的代理,當(dāng)dhcp服務(wù)器和客戶端之間有路由器時(shí),跨網(wǎng)段,客戶端發(fā)廣播申請(qǐng)ip地址時(shí),dhcp服務(wù)器收不到,通過中繼器將客戶端的請(qǐng)求發(fā)給dhcp服務(wù)器,因?yàn)樗麄冎g的通訊是單播,可以穿過路由器,dhcp服務(wù)器收到請(qǐng)求后,把ip地址發(fā)給中繼器,中繼器再轉(zhuǎn)發(fā)給客戶端。