無人職守自動(dòng)安裝linux操作系統(tǒng)
1. 大規(guī)模部署案例
當(dāng)組織有服務(wù)器需要部署linux系統(tǒng)時(shí),需要通過網(wǎng)絡(luò)方式安裝并結(jié)合自動(dòng)應(yīng)答文件,實(shí)現(xiàn)無人職守自動(dòng)安裝部署操作系統(tǒng)。這種方式需要我們至少配置一臺(tái)服務(wù)器,所有需要安裝系統(tǒng)的客戶端通過網(wǎng)絡(luò)的方式連接服務(wù)器端啟動(dòng)安裝程序,再根據(jù)服務(wù)器中存放的自動(dòng)應(yīng)答文件實(shí)現(xiàn)大規(guī)模自動(dòng)安裝部署系統(tǒng)。整個(gè)環(huán)境的拓?fù)浣Y(jié)構(gòu):
在這里插入圖片描述
這種無人職守的解決方案需要提前部署一臺(tái)包含DHCP、TFTP和NFS等服務(wù)器的安裝服務(wù)器。
在這里插入圖片描述
安裝部署流程:
? 客戶端首先需要在BIOS中設(shè)置通過網(wǎng)絡(luò)啟動(dòng)
? 當(dāng)客戶端啟動(dòng)后,會(huì)通過發(fā)送廣播包的方式尋找DHCP服務(wù)器
? 當(dāng)找到DHCP服務(wù)器,即可向該服務(wù)器申請(qǐng)獲得包括IP地址在內(nèi)的網(wǎng)絡(luò)參數(shù)等,并通過DHCP獲得TFTP的位置
? 當(dāng)客戶端獲得TFTP服務(wù)器的地址后,即可從TFTP服務(wù)器上將啟動(dòng)文件下載至本機(jī)內(nèi)存并運(yùn)行,最終實(shí)現(xiàn)無盤啟動(dòng)的功能
? 我們可以在啟動(dòng)文件中設(shè)置Kickstart文件的共享的位置,這樣客戶端啟動(dòng)后,即可自動(dòng)尋找Kickstart文件實(shí)現(xiàn)無人職守安裝系統(tǒng)
注意:Kickstart文件需要事先通過網(wǎng)絡(luò)共享,在Kickstart文件中描述了如何安裝設(shè)置操作系統(tǒng)、運(yùn)行部署腳本等
2. PXE 技術(shù)
PXE( preboot execute environment)是由Intel公司開發(fā)的基于C/S(客戶端/服務(wù)器)模式的一種技術(shù),其核心功能讓客戶端通過網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載啟動(dòng)鏡像,從而實(shí)現(xiàn)網(wǎng)絡(luò)啟動(dòng)。整個(gè)過程中,客戶端要求服務(wù)器分配IP地址,再用TFTP協(xié)議下載位于服務(wù)器上的啟動(dòng)鏡像到本機(jī)內(nèi)存中并執(zhí)行,由這個(gè)啟動(dòng)文件完成客戶端軟件的設(shè)置。
1.pxe client必須支持pxe用戶端功能,并且開機(jī)時(shí)選擇網(wǎng)絡(luò)啟動(dòng),才能確保以網(wǎng)絡(luò)的方式進(jìn)入pxe啟動(dòng)程序;
2.pxe server必須至少提供DHCP、TFTP、HTTPD(vsftpd 或 nfs)的服務(wù),且還需滿足如下要求:
?DHCP服務(wù)器除了必須滿足為pxe client分配ip地址之外,還需告知tftp所在的位置(即告訴pxelinux.0的文件位置)
?TFTP服務(wù)器則為pxe client 提供bootloader 及 kernel 等重要文件下載服務(wù)
? 使用httpd/vsftpd/nfs服務(wù)器提供pxe client所需程序及軟件來源(共享源)
當(dāng)讀取安裝程序進(jìn)入安裝界面后,剩余的步驟,如語言設(shè)置、系統(tǒng)管理員密碼、網(wǎng)絡(luò)參數(shù)等參數(shù)還需要我們手動(dòng)設(shè)置,至此,我們僅可以實(shí)現(xiàn)無盤網(wǎng)絡(luò)啟動(dòng),若要實(shí)現(xiàn)無人職守自動(dòng)安裝,還需要Kickstart技術(shù)
3. Kickstart 技術(shù)
Kickstart 安裝是目前主要的一種無人職守自動(dòng)部署安裝操作系統(tǒng)的方式。這種技術(shù)的核心是自動(dòng)應(yīng)答文件(Kickstart文件),即將本來在安裝過程中需要我們手動(dòng)設(shè)置的語言、密碼和網(wǎng)絡(luò)參數(shù)等,通過讀取自動(dòng)應(yīng)答文件實(shí)現(xiàn)自動(dòng)設(shè)置。所以,我們需要事先將對(duì)操作系統(tǒng)的設(shè)置寫入自動(dòng)應(yīng)答文件,開始安裝操作系統(tǒng)時(shí),指定安裝程序讀取自動(dòng)應(yīng)答文件實(shí)現(xiàn)自動(dòng)安裝及部署操作系統(tǒng)。
Kickstart文件可以通過三種方式生成:
? 手動(dòng)書寫(僅需要一個(gè)文本編輯工具即可)
? 通過system-config-kickstart圖形工具
? 通過紅帽的安裝程序 Anaconda 自動(dòng)生成
本文以system-config-kickstart圖形工具為主,介紹如何生成一份自動(dòng)應(yīng)答文件,具體步驟如下
注意該系統(tǒng)需要有桌面,否則無法啟動(dòng)該圖形工具
首先安裝system-config-kickstart圖形工具,命令如下:
yum install system-config-kickstart.noarch安裝完成后,輸入system-config-kickstart運(yùn)行該工具
在這里插入圖片描述
我們可以通過圖形界面進(jìn)行系統(tǒng)基本設(shè)置、安裝方式管理、啟動(dòng)方式配置、分區(qū)配置、網(wǎng)絡(luò)配置、認(rèn)證配置、防火墻設(shè)置、顯示配置、安裝包配置。除此之外,還可以編寫系統(tǒng)安裝前及安裝后所需運(yùn)行的腳本。
4. 配置安裝服務(wù)器
最終要實(shí)現(xiàn)無人職守自動(dòng)安裝部署操作系統(tǒng),需要提前定制安裝服務(wù)器,其中包括:DHCP、TFTP及NFS服務(wù)。
4.1 DHCP服務(wù)
DHCP服務(wù)器主要實(shí)現(xiàn)在企業(yè)內(nèi)部網(wǎng)絡(luò)為客戶端分配IP地址等網(wǎng)絡(luò)參數(shù)。在我們無人職守環(huán)境中,當(dāng)客戶端選擇從網(wǎng)絡(luò)啟動(dòng)后,就會(huì)通過發(fā)送廣播數(shù)據(jù)包的形式尋找DHCP服務(wù)器,從DHCP獲得IP地址等參數(shù)后才可以通過TFTP共享讀取啟動(dòng)文件,簡(jiǎn)單步驟如下:
1. 安裝DHCP服務(wù)
[root@localhost ~]# yum install -y dhcp
2. 修改配置文件
其主要配置文件為/etc/dhcp/dhcpd.conf,以下為簡(jiǎn)單配置樣本:
[root@node-139 ~]#cat/etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page subnet 192.168.0.0 netmask 255.255.0.0 { interface"ens34"; range 192.168.17.202 192.168.17.240; option domain-name-servers 8.8.8.8; option routers 192.168.17.1; default-lease-time 600; max-lease-time 7200; next-server 192.168.17.139; filename"pxelinux.0"; }
該文件中,
? subnet 指為哪個(gè)網(wǎng)段分配網(wǎng)絡(luò)參數(shù),
? range設(shè)置為客戶端分配的IP地址池,這個(gè)可以分配客戶端分配從192.168.17.201到192.168.17.240之間的IP地址。
? domain-name-servers設(shè)置為客戶端分配的DNS服務(wù)器地址,
? routers設(shè)置為客戶端分配的網(wǎng)關(guān)地址。
? 對(duì)網(wǎng)絡(luò)啟動(dòng)至關(guān)重要的參數(shù)是next-server和filename,從安裝部署流程可以看出,客戶端啟動(dòng)計(jì)算機(jī)通過DHCP獲得IP地址后,還需要從TFTP下載啟動(dòng)文件,而next-server設(shè)置的即TFTP服務(wù)器的地址,filename設(shè)置的是在該TFTP文件服務(wù)器上共享的啟動(dòng)文件名稱,客戶端通過這兩個(gè)參數(shù)連接TFTP服務(wù)器,并從中下載啟動(dòng)文件
可以拷貝/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example進(jìn)行修改,或者手動(dòng)編寫
4.2 TFTP 服務(wù)
TFTP服務(wù)器為客戶端提供一種簡(jiǎn)單的文件共享,它不具備FTP那樣豐富的功能。由于其簡(jiǎn)單的設(shè)計(jì),TFTP非常適用于傳輸小且簡(jiǎn)單的PXE啟動(dòng)文件。
1. 安裝TFTP服務(wù)
[root@localhost dhcp]# yum install -y tftp-server
2. 修改配置文件
默認(rèn)的配置文件為/etc/xinetd.d/tftp。該文件中,disable默認(rèn)值為yes,也就是說,該服務(wù)默認(rèn)為禁用狀態(tài),需要手動(dòng)修改為no來啟動(dòng)服務(wù)。該配置文件中server_args的值定義了共享的目錄,也就是我們共享的文件要存放的路徑。
service tftp { socket_type = dgram protocol = udp wait =yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable =yes per_source = 11 cps = 100 2 flags = IPv4 }
4.3 NFS服務(wù)
NFS是Network File System的簡(jiǎn)寫,即網(wǎng)絡(luò)文件系統(tǒng)。NFS服務(wù)的特點(diǎn)是服務(wù)器配置簡(jiǎn)單,客戶端通過網(wǎng)絡(luò)訪問NFS文件系統(tǒng)就像訪問自己的本地磁盤一樣方便。這里使用它作為CentOS系統(tǒng)文件的共享服務(wù)平臺(tái),當(dāng)客戶端從網(wǎng)絡(luò)啟動(dòng)正式進(jìn)入安裝界面后,還需要讀取CentOS光盤中的系統(tǒng)文件,以完成最后的安裝。這些文件就是通過NFS共享給網(wǎng)絡(luò)用戶。linux默認(rèn)安裝NFS系統(tǒng),可以通過修改配置文件提供共享文件。
1. 啟動(dòng)服務(wù)
[root@localhost dhcp]# systemctl start nfs-server [root@localhost dhcp]# systemctl status nfs-server ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Active: active (exited) since Mon 2023-12-25 2218 CST; 2s ago Process: 78263 ExecStartPost=/bin/sh -cifsystemctl -q is-active gssproxy;thensystemctl reload gssproxy ;fi(code=exited, status=0/SUCCESS)
2. 修改配置文件
默認(rèn)配置文件為/etc/exports,該文件的內(nèi)容默認(rèn)為空
[root@localhost dhcp]#cat/etc/exports /media 192.168.0.0/255.255.0.0(ro)
樣本文件中編寫了共享了/media目錄,后面的IP地址表示僅192.168.0.0網(wǎng)絡(luò)可以訪問該共享目錄,ro表示客戶端訪問權(quán)限為只讀。
這里共享鏡像還可以使用vsftpd或者h(yuǎn)ttpd作為替代方案
5. 示例
我們嘗試搭建一個(gè)自動(dòng)化安裝部署操作系統(tǒng)的模擬案例,使用的操作系統(tǒng)及安裝系統(tǒng)均為Centos7。
服務(wù)器 | IP | 安裝服務(wù) |
server | 192.168.17.139 | dhcp,tftp,nfs |
client1 | 192.168.17.201(計(jì)劃) | |
client2 | 192.168.17.202(計(jì)劃) |
5.1 搭建server
在前文中,我們?cè)趕erver已經(jīng)安裝了dhcp,tftp,nfs,并通過Kickstart技術(shù)生成自動(dòng)應(yīng)答的相關(guān)文件
1. 啟動(dòng)dhcp并設(shè)為開機(jī)自啟
[root@node-139 ~]# systemctl start dhcpd [root@node-139 ~]# systemctlenabledhcpd Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
2. 設(shè)置并啟動(dòng)tftp
[root@node-139 ~]#cat/etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer # protocol. The tftp protocol is often used to boot diskless # workstations, download configuration files to network-aware printers, # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait =yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } [root@node-139 ~]# systemctl start tftp [root@node-139 ~]# systemctl status tftp ● tftp.service - Tftp Server Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled) Active: active (running) since Mon 2023-12-25 2338 CST; 3s ago Docs: man:in.tftpd Main PID: 85504 (in.tftpd) Tasks: 1 CGroup: /system.slice/tftp.service └─85504 /usr/sbin/in.tftpd -s /var/lib/tftpboot Dec 25 2338 node-139 systemd[1]: Started Tftp Server.
共享路徑為/var/lib/tftpboot
3. 將客戶端所需啟動(dòng)文件復(fù)制到TFTP服務(wù)器
[root@node-139 ~]# yum install -y syslinux [root@node-139 ~]#cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
把內(nèi)核鏡像文件vmlinuz、isolinux.cfg和initrd.img拷貝到共享路徑
initrd.img文件就是個(gè)ram disk的映像文件。ram disk是標(biāo)準(zhǔn)內(nèi)核文件認(rèn)識(shí)的設(shè)備(/dev/ram0)文件系統(tǒng)也是標(biāo)準(zhǔn)內(nèi)核認(rèn)識(shí)的文件系統(tǒng)??梢詤⒖?https://blog.csdn.net/u010230019/article/details/131450815
isolinux.cfg啟動(dòng)菜單的配置文件
[root@node-139 tftpboot]#cp/home/yurq/isolinux.cfg pexlinux.cfg/default [root@node-139 tftpboot]#chmod644 pexlinux.cfg/default [root@node-139 tftpboot]# ll pexlinux.cfg/default -rw-r--r--. 1 root root 3032 Dec 25 23:59 pexlinux.cfg/default
修改啟動(dòng)配置文件default(isolinux.cfg)
[root@node-139 tftpboot]#catpexlinux.cfg/default default linux timeout600 display boot.msg menu title Welcome to CentOS7 by Yurq label linux menu label ^Install CentOS 7 menu default kernel vmlinuz append initrd=initrd.img ks=nfs/ks/ks.cfg label rescue menu label ^Rescue a CentOS system kernel vmlinuz append initrd=initrd.img rescue menu end
配置說明:default指定默認(rèn)引導(dǎo)方式,從配置文件可以看出,有一種以label開始的名稱為linux的正常引導(dǎo)方式,另一種是名稱為rescue的救援引導(dǎo)方式,而default決定了默認(rèn)采用哪種引導(dǎo)方式引導(dǎo)安裝程序。此外,kernel指定的是系統(tǒng)內(nèi)核文件,在上面的步驟中,我們已將該文件復(fù)制到TFTP共享目錄中。如果沒有后面的ks參數(shù),至此,我們可以實(shí)現(xiàn)無盤啟動(dòng),后面的安裝步驟需要我們手動(dòng)進(jìn)行,設(shè)置ks參數(shù)可以指定自動(dòng)應(yīng)答文件的位置,從而實(shí)現(xiàn)無人職守自動(dòng)安裝。本文中設(shè)置192.168.17.139的NFS共享方式讀取Kickstart文件。
[root@node-139 ~]# ll /var/lib/tftpboot total 60480 -rw-r--r--. 1 root root 55129656 Dec 25 23:56 initrd.img -rw-r--r--. 1 root root 26759 Dec 25 23:47 pxelinux.0 drwxr-xr-x. 2 root root 21 Dec 26 23:08 pxelinux.cfg -rw-r--r--. 1 root root 6769256 Dec 25 23:56 vmlinuz
重啟TFTP服務(wù),并關(guān)閉防火墻
[root@node-139 tftpboot]# systemctl restart tftp [root@node-139 tftpboot]# systemctl stop firewalld
4. 創(chuàng)建Kickstart自動(dòng)應(yīng)答文件
1. 基本設(shè)置
在這里插入圖片描述
包括:默認(rèn)語言,鍵盤,時(shí)區(qū),root密碼(可選)
2. 設(shè)置安裝方法
在這里插入圖片描述
配置安裝方式可以選擇全新安裝或者升級(jí)安裝,本文中為全新安裝,設(shè)置安裝過程中所需安裝文件(Centos7 系統(tǒng)光盤中的內(nèi)容)通過NFS讀取,這里的NFS服務(wù)器為192.168.17.139,共享目錄為/media
3. 引導(dǎo)設(shè)置
在這里插入圖片描述
此處配置系統(tǒng)引導(dǎo)程序,安裝方式選擇全新安裝GRUB引導(dǎo)程序,GRUB引導(dǎo)密碼未設(shè)置,將系統(tǒng)引導(dǎo)程序安裝于MBR區(qū)域,內(nèi)核參數(shù)未設(shè)置任何特殊參數(shù)
4. 分區(qū)設(shè)置
在這里插入圖片描述
分區(qū)選擇移除所有的現(xiàn)有分區(qū)后重新分區(qū),并初始化磁盤標(biāo)簽
注意:通過圖形界面生成的Kickstart文件無法使用LVM邏輯卷分區(qū),需要使用LVM邏輯卷分區(qū),則需要手動(dòng)修改生成后的Kickstart文件
這里需要手動(dòng)添加(ADD)至少/和/boot
5. 網(wǎng)絡(luò)設(shè)置
在這里插入圖片描述
添加網(wǎng)絡(luò)設(shè)備ens33,并設(shè)置通過DHCP獲得網(wǎng)絡(luò)參數(shù)
6. 認(rèn)證設(shè)置
在這里插入圖片描述
所有的用戶密碼都使用SHA512算法加密
如果需要將本機(jī)加入活動(dòng)目錄的化,可以修改LDAP參數(shù)加入活動(dòng)目錄
7. SELinux和防火墻
在這里插入圖片描述
SELinux和防火墻均被設(shè)置為激活狀態(tài),并設(shè)置防火墻開放HTTP和SSH服務(wù)
8. 顯示設(shè)置
在這里插入圖片描述
這里不勾選安裝圖形環(huán)境(可自行選擇)
9. 安裝包選擇
在這里插入圖片描述
正??梢赃x擇,筆者這里可能是版本問題沒有顯示內(nèi)容
在這里插入圖片描述
安裝軟件時(shí)根據(jù)自己實(shí)際需求進(jìn)行選擇后來筆者構(gòu)建本地源,不過可選內(nèi)容較少,可能導(dǎo)入的是mini.iso的原因
在這里插入圖片描述
構(gòu)建本地源,需要注意源名稱必須為development,因?yàn)檫@個(gè)是ks代碼內(nèi)固定讀取的:
[development] name=centos cdrom baseurl=file:///media/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1
10. 安裝前執(zhí)行腳本
在這里插入圖片描述
若沒有特殊需求,可以為空
11. 安裝后運(yùn)行的腳本
在這里插入圖片描述
常用腳本為創(chuàng)建YUM源,初始化用戶賬號(hào),部署軟件服務(wù)等,如果沒有特殊需求,可以為空
完成所有設(shè)置后,通過File菜單選擇Save,即可保存生成Kickstart文件,本文中將其保存至/ks/目錄中,取名為ks.cfg
[root@node-139 ~]#cat/ks/ks.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard'us' # Root password rootpw --iscrypted $1$2ZdAsgIv$xBtWTquTEb5prUaMEgk.G/ # System language lang zh_CN # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # SELinux configuration selinux --enforcing # Use NFS installation media nfs --server=192.168.17.139 --dir=/media # Firewall configuration firewall --enabled --http --ssh # Network information network --bootproto=dhcp --device=ens33 # Halt after installation halt # System timezone timezone Africa/Abidjan # System bootloader configuration bootloader --location=mbr --boot-drive=sda # Partition clearing information clearpart --all --initlabel # Disk partitioning information part swap --fstype="swap"--size=1000 part /boot --fstype="ext4"--size=200 part / --fstype="ext4"--grow --size=1 %post /usr/bin/hostname yurq %end %packages @core %end
注意:bootloader --location=mbr --boot-drive=sda 默認(rèn)用圖形工具編寫完成沒有--boot-drive=sda這個(gè)選項(xiàng),所以需要手動(dòng)加上
否則會(huì)卡在anaconda的配置界面
5. 部署NFS服務(wù)
修改NFS服務(wù)如下,
[root@node-139 ~]#cat/etc/exports /ks 192.168.0.0/255.255.0.0(ro) /media 192.168.0.0/255.255.0.0(ro)
啟動(dòng)NFS并設(shè)置為開機(jī)自啟
[root@node-139 ~]# systemctl start nfs [root@node-139 ~]# systemctlenablenfs
6. 將系統(tǒng)光盤或ISO文件通過NFS共享
如果有光盤或光驅(qū)可以通過mount的方式將光盤直接掛載在/media目錄下
umount /dev/cdrom mount /dev/cdrom /media
如果沒有光盤,僅有ISO鏡像文件,亦可以將ISO鏡像文件掛載至/media目錄,
[root@node-139 ~]# mount -o loop -t iso9660 /root/CentOS-7-x86_64-Minimal-2009.iso /media mount: /dev/loop0 is write-protected, mounting read-only [root@node-139 ~]# ll /media/ total 110 -rw-r--r--. 2 root root 14 Oct 30 2020 CentOS_BuildTag drwxr-xr-x. 3 root root 2048 Oct 27 2020 EFI -rw-rw-r--. 15 root root 227 Aug 30 2017 EULA -rw-rw-r--. 15 root root 18009 Dec 10 2015 GPL drwxr-xr-x. 3 root root 2048 Oct 27 2020 images drwxr-xr-x. 2 root root 2048 Nov 3 2020 isolinux drwxr-xr-x. 2 root root 2048 Oct 27 2020 LiveOS drwxr-xr-x. 2 root root 73728 Nov 3 2020 Packages drwxr-xr-x. 2 root root 4096 Nov 3 2020 repodata -rw-rw-r--. 15 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7 -rw-rw-r--. 15 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7 -r--r--r--. 1 root root 2883 Nov 3 2020 TRANS.TBL
至此服務(wù)器端就設(shè)置好了
5.2 客戶端
正常來說,在所有客戶端主機(jī)的BIOS中,將第一啟動(dòng)方式設(shè)置為PXE網(wǎng)絡(luò)啟動(dòng),或通過類似于開機(jī)按F12鍵這樣的快捷方式設(shè)置啟動(dòng)方式。不同型號(hào)的主機(jī)設(shè)置網(wǎng)絡(luò)啟動(dòng)的方式不同,用戶可自行選擇。
本文中使用虛擬機(jī)模擬真實(shí)場(chǎng)景,所以還需要設(shè)置虛擬機(jī)
1. 設(shè)置虛擬機(jī)
在這里插入圖片描述
由于筆者的服務(wù)器是雙網(wǎng)卡,所以指定客戶端機(jī)器未僅主機(jī)模式,讀者可自行選擇,能讓DHCP分配到IP就可以了
另外,雙網(wǎng)卡需要注意在DHCP設(shè)置時(shí)指定interface
2. 啟動(dòng)安裝
在這里插入圖片描述
在這里插入圖片描述
由于鏡像是mini版本的,所以只有命令行界面
在這里插入圖片描述
6. 問題匯總
1. 卡在dracut
dracut 是一個(gè)事件驅(qū)動(dòng)的 initramfs 基礎(chǔ)設(shè)施。dracut(工具)被用來通過拷貝工具和文件,從一個(gè)已經(jīng)安裝的系統(tǒng)創(chuàng)建一個(gè) initramfs 鏡像,并將鏡像與dracut框架結(jié)合在一起。通常發(fā)現(xiàn)在 /usr/lib/dracut/modules.d/.
? 不像已經(jīng)存在的initramfs框架,dracut的框架嘗試有盡可能更少的硬編碼進(jìn)入initramfs。initramfs在生命中有一個(gè)基本的目標(biāo):獲取已經(jīng)掛載的rootfs,以致我們能夠過渡到真正的rootfs。這是所有驅(qū)動(dòng)裝置的可用性。因此,取代腳本硬編碼去做各種事情,dracut的 initramfs 依賴 udev 去創(chuàng)建符號(hào)鏈接到設(shè)備節(jié)點(diǎn),接著,當(dāng)rootfs的設(shè)備節(jié)點(diǎn)出現(xiàn)的時(shí)候,它被掛載和根切換到rootfs設(shè)備。 這個(gè)有助于保持在initramfs里要求的時(shí)間盡可能的少,以致一些事情,如5s鐘啟動(dòng),作為一個(gè)initramfs的存在結(jié)果不是不可能的。
? 在dracut中,大部分的initramfs生成器功能由一群生成模塊提供,這些模塊是被主要的dracut工具采購(gòu),來安裝特定的功能進(jìn)入initramfs。他們存在于這些模塊的子目錄。和使用由dracut-functions提供的功能去做他們的工作。
? dracut 作為新一代的 initramfs 系統(tǒng),和前一代的initramfs系統(tǒng)的 mkinitrd 的不同點(diǎn)在于, dracut設(shè)計(jì)上就考慮到了映像尺寸的問題,盡量避免硬編碼,以提高生成的 cpio 映像載入內(nèi)存的速度。實(shí)際上,由于initramfs的唯一作用就是掛載rootfs(因此不需要把一堆無用的比如 plymouth 等都裝進(jìn)去),它主要依賴 udev 去獲取 rootfs 的設(shè)備節(jié)點(diǎn),一旦 rootfs 節(jié)點(diǎn)出現(xiàn)則立刻切換過去。按照官方維基的說法:5秒啟動(dòng)不是夢(mèng)。另外它采用了模塊化的方式,使用者可自由在 %{_libdir}/dracut/modules.d 下創(chuàng)建他需要的特殊模塊,可擴(kuò)展性很強(qiáng)。最后它的使用方式和 mkinitrd 非常接近,遷移成本較低。
dracut 用于制作initrd啟動(dòng)鏡像文件, dracut-network會(huì)為鏡像內(nèi)添加nfs等網(wǎng)絡(luò)支持.
1. 鏡像未掛載
mount -o loop -t iso9660 /root/CentOS-7-x86_64-Minimal-2009.iso /media
2. 內(nèi)存不足
建議大于2G
2. 卡在沒有選擇磁盤
1. 卡在anaconda安裝界面的沒有選擇磁盤,需要手動(dòng)在ks.cfg文件指定磁盤名稱
bootloader --location=mbr --boot-drive=sda#注意
2. 在制作ks.cfg分區(qū)設(shè)置時(shí),需要手動(dòng)添加(ADD)至少/和/boot
3. 卡在DHCP分配地址
在這里插入圖片描述
這里需要注意:
1. 服務(wù)器是否是雙網(wǎng)卡,是否指定了具體使用的網(wǎng)卡,在編輯/etc/dhcp/dhcpd.conf時(shí),指定interface
```bash [root@node-139 ~]#cat/etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page subnet 192.168.0.0 netmask 255.255.0.0 { interface"ens34"; #網(wǎng)卡 range 192.168.17.202 192.168.17.240; option domain-name-servers 8.8.8.8; option routers 192.168.17.1; default-lease-time 600; max-lease-time 7200; next-server 192.168.17.139; filename"pxelinux.0"; }
2. 客戶端機(jī)器如果是虛擬機(jī),指定網(wǎng)絡(luò)模式
3. 提示no dhcp or proxydhcp,查看服務(wù)器的dhcpd服務(wù)是否啟動(dòng)
4. tftp open timeout
在這里插入圖片描述
可以看到客戶端已經(jīng)獲取到了IP,但是準(zhǔn)備向tftp服務(wù)獲取pxelinux.0,但是無法連接tftp服務(wù),這時(shí)現(xiàn)象是顯示打開tftp超時(shí),并且一直嘗試連接。
? 檢查tftp服務(wù)是否啟動(dòng)。
5. 服務(wù)端缺少pxelinux.0
提示file not found | tftp error
可以看到客戶端已經(jīng)獲取到了IP,并且tftp連接也沒有報(bào)錯(cuò)。但是準(zhǔn)備向tftp服務(wù)獲取pxelinux.0文件失敗,提示文件沒有發(fā)現(xiàn)。
? 檢查/var/lib/tftpboot/目錄下是否有pxelinux.0文件。
6. 服務(wù)端缺少指定內(nèi)核的配置文件
提示unable to locate configuration file
可以看到客戶端已經(jīng)獲取到了IP,并且tftp連接也沒有報(bào)錯(cuò)。但是準(zhǔn)備向tftp服務(wù)獲取default文件失敗,提示文件沒有發(fā)現(xiàn)。
? 檢查/var/lib/tftpboot/pxelinux.cfg/default是否存在。
7. 提供ks.cfg文件的服務(wù)宕機(jī)
在這里插入圖片描述
提示failed connect | failed to fetch kisckstart
到這一步,表示內(nèi)核與偽文件系統(tǒng)已經(jīng)加載完畢,準(zhǔn)備根據(jù)ks.cfg應(yīng)答文件進(jìn)行自動(dòng)安裝,但是提示連接服務(wù),請(qǐng)求文件失敗。
? 檢查web服務(wù)是否宕機(jī),該文件可能是由其他服務(wù)(ftp|nfs)提供,所以需要檢查對(duì)應(yīng)的服務(wù)是否宕機(jī)。
8. 客戶機(jī)內(nèi)存不夠
在這里插入圖片描述 提示no space left on device
到這一步,表示內(nèi)核與偽文件系統(tǒng)已經(jīng)加載完畢,沒有缺少什么文件,但是空間不夠。
? 檢查虛擬機(jī)或者客戶機(jī)的內(nèi)存是否足夠,內(nèi)存設(shè)置至少2G。
鏈接:https://blog.csdn.net/u010230019/article/details/135150807
-
Linux
+關(guān)注
關(guān)注
87文章
11512瀏覽量
213915 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9797瀏覽量
88048 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7154瀏覽量
125648
原文標(biāo)題:5步搭建全自動(dòng)無人值守Linux系統(tǒng)安裝服務(wù)器|全網(wǎng)最細(xì)教程!
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
實(shí)時(shí)操作系統(tǒng)和分時(shí)操作系統(tǒng)的區(qū)別

Linux操作系統(tǒng)安裝與使用
Linux操作系統(tǒng)安裝與使用
在Windows2012操作系統(tǒng)部署EasyRTC程序錯(cuò)誤怎么解決
安裝Ubuntu操作系統(tǒng)的方法
Linux快速入門之安裝Linux操作系統(tǒng)及小結(jié)
如何安裝實(shí)時(shí)操作系統(tǒng)RTOS

受支持的Linux操作系統(tǒng)和WAS ND 9.0安裝部署文檔的資料說明

Linux的Ubuntu操作系統(tǒng)的安裝教程

基于歐拉操作系統(tǒng)穩(wěn)步推進(jìn)創(chuàng)新系統(tǒng)規(guī)模部署

評(píng)論