5步搭建全自動無人值守Linux系統安裝伺服器|全網最細教程!

無人職守自動安裝linux作業系統

無人職守自動安裝linux作業系統

    • • 1. 大規模部署案例
      • • 2. PXE 技術
      • • 3. Kickstart 技術
      • • 4. 配置安裝伺服器
        • • 4.1 DHCP服務
          • • 4.2 TFTP 服務
          • • 4.3 NFS服務
      • • 5. 示例
        • • 5.1 搭建server
            • • 1. 啟動dhcp並設為開機自啟
              • • 2. 設定並啟動tftp
              • • 3. 將客戶端所需啟動檔案複製到TFTP伺服器
              • • 4. 建立Kickstart自動應答檔案
              • • 5. 部署NFS服務
              • • 6. 將系統光碟或ISO檔案透過NFS共享
          • • 5.2 客戶端
            • • 1. 設定虛擬機器
              • • 2. 啟動安裝
      • • 6. 問題彙總
        • • 1. 卡在dracut
          • • 2. 卡在沒有選擇磁碟
          • • 3. 卡在DHCP分配地址
          • • 4. tftp open timeout
          • • 5. 服務端缺少pxelinux.0
          • • 6. 服務端缺少指定核心的配置檔案
          • • 7. 提供ks.cfg檔案的服務宕機
          • • 8. 客戶機記憶體不夠

1. 大規模部署案例

當組織有伺服器需要部署linux系統時,需要透過網路方式安裝並結合自動應答檔案,實現無人職守自動安裝部署作業系統。這種方式需要我們至少配置一臺伺服器,所有需要安裝系統的客戶端透過網路的方式連線伺服器端啟動安裝程式,再根據伺服器中存放的自動應答檔案實現大規模自動安裝部署系統。整個環境的拓撲結構:

在這裡插入圖片描述

這種無人職守的解決方案需要提前部署一臺包含DHCP、TFTP和NFS等伺服器的安裝伺服器。

在這裡插入圖片描述
安裝部署流程:
  • • 客戶端首先需要在BIOS中設定透過網路啟動
  • • 當客戶端啟動後,會透過傳送廣播包的方式尋找DHCP伺服器
  • • 當找到DHCP伺服器,即可向該伺服器申請獲得包括IP地址在內的網路引數等,並透過DHCP獲得TFTP的位置
  • • 當客戶端獲得TFTP伺服器的地址後,即可從TFTP伺服器上將啟動檔案下載至本機記憶體並執行,最終實現無盤啟動的功能
  • • 我們可以在啟動檔案中設定Kickstart檔案的共享的位置,這樣客戶端啟動後,即可自動尋找Kickstart檔案實現無人職守安裝系統
注意:Kickstart檔案需要事先透過網路共享,在Kickstart檔案中描述瞭如何安裝設定作業系統、執行部署指令碼等

2. PXE 技術

PXE( preboot execute environment)是由Intel公司開發的基於C/S(客戶端/伺服器)模式的一種技術,其核心功能讓客戶端透過網路從遠端伺服器下載啟動映象,從而實現網路啟動。整個過程中,客戶端要求伺服器分配IP地址,再用TFTP協議下載位於伺服器上的啟動映象到本機記憶體中並執行,由這個啟動檔案完成客戶端軟體的設定。
  1. 1. pxe client必須支援pxe使用者端功能,並且開機時選擇網路啟動,才能確保以網路的方式進入pxe啟動程式;
  2. 2. pxe server必須至少提供DHCP、TFTP、HTTPD(vsftpd 或 nfs)的服務,且還需滿足如下要求:
    • • DHCP伺服器除了必須滿足為pxe client分配ip地址之外,還需告知tftp所在的位置(即告訴pxelinux.0的檔案位置)
    • • TFTP伺服器則為pxe client 提供bootloader 及 kernel 等重要檔案下載服務
    • • 使用httpd/vsftpd/nfs伺服器提供pxe client所需程式及軟體來源(共享源)
當讀取安裝程式進入安裝介面後,剩餘的步驟,如語言設定、系統管理員密碼、網路引數等引數還需要我們手動設定,至此,我們僅可以實現無盤網路啟動,若要實現無人職守自動安裝,還需要Kickstart技術

3. Kickstart 技術

Kickstart 安裝是目前主要的一種無人職守自動部署安裝作業系統的方式。這種技術的核心是自動應答檔案(Kickstart檔案),即將本來在安裝過程中需要我們手動設定的語言、密碼和網路引數等,透過讀取自動應答檔案實現自動設定。所以,我們需要事先將對作業系統的設定寫入自動應答檔案,開始安裝作業系統時,指定安裝程式讀取自動應答檔案實現自動安裝及部署作業系統。
Kickstart檔案可以透過三種方式生成:
  • • 手動書寫(僅需要一個文字編輯工具即可)
  • • 透過system-config-kickstart圖形工具
  • • 透過紅帽的安裝程式 Anaconda 自動生成
本文以system-config-kickstart圖形工具為主,介紹如何生成一份自動應答檔案,具體步驟如下
注意該系統需要有桌面,否則無法啟動該圖形工具
首先安裝system-config-kickstart圖形工具,命令如下:
yum install system-config-kickstart.noarch

安裝完成後,輸入system-config-kickstart執行該工具

在這裡插入圖片描述

我們可以透過圖形介面進行系統基本設定、安裝方式管理、啟動方式配置、分割槽配置、網路配置、認證配置、防火牆設定、顯示配置、安裝包配置。除此之外,還可以編寫系統安裝前及安裝後所需執行的指令碼。

4. 配置安裝伺服器

最終要實現無人職守自動安裝部署作業系統,需要提前定製安裝伺服器,其中包括:DHCP、TFTP及NFS服務。

4.1 DHCP服務

DHCP伺服器主要實現在企業內部網路為客戶端分配IP地址等網路引數。在我們無人職守環境中,當客戶端選擇從網路啟動後,就會透過傳送廣播資料包的形式尋找DHCP伺服器,從DHCP獲得IP地址等引數後才可以透過TFTP共享讀取啟動檔案,簡單步驟如下:
  1. 1. 安裝DHCP服務
[root@localhost ~]# yum install -y dhcp
  1. 2. 修改配置檔案其主要配置檔案為/etc/dhcp/dhcpd.conf,以下為簡單配置樣本:
[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 pagesubnet 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 指為哪個網段分配網路引數,
  • • range設定為客戶端分配的IP地址池,這個可以分配客戶端分配從192.168.17.201192.168.17.240之間的IP地址。
  • • domain-name-servers設定為客戶端分配的DNS伺服器地址,
  • • routers設定為客戶端分配的閘道器地址。
  • • 對網路啟動至關重要的引數是next-server和filename,從安裝部署流程可以看出,客戶端啟動計算機透過DHCP獲得IP地址後,還需要從TFTP下載啟動檔案,而next-server設定的即TFTP伺服器的地址,filename設定的是在該TFTP檔案伺服器上共享的啟動檔名稱,客戶端透過這兩個引數連線TFTP伺服器,並從中下載啟動檔案
可以複製/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example進行修改,或者手動編寫

4.2 TFTP 服務

TFTP伺服器為客戶端提供一種簡單的檔案共享,它不具備FTP那樣豐富的功能。由於其簡單的設計,TFTP非常適用於傳輸小且簡單的PXE啟動檔案。
  1. 1. 安裝TFTP服務
[root@localhost dhcp]# yum install -y tftp-server
  1. 2. 修改配置檔案預設的配置檔案為/etc/xinetd.d/tftp。該檔案中,disable預設值為yes,也就是說,該服務預設為停用狀態,需要手動修改為no來啟動服務。該配置檔案中server_args的值定義了共享的目錄,也就是我們共享的檔案要存放的路徑。
service tftp{        socket_type             = dgram        protocol                = udpwait                    = yes        user                    = root        server                  = /usr/sbin/in.tftpd        server_args             = -s /var/lib/tftpbootdisable                 = yes        per_source              = 11        cps                     = 100 2        flags                   = IPv4}

4.3 NFS服務

NFS是Network File System的簡寫,即網路檔案系統。NFS服務的特點是伺服器配置簡單,客戶端透過網路訪問NFS檔案系統就像訪問自己的本地磁碟一樣方便。這裡使用它作為CentOS系統檔案的共享服務平臺,當客戶端從網路啟動正式進入安裝介面後,還需要讀取CentOS光碟中的系統檔案,以完成最後的安裝。這些檔案就是透過NFS共享給網路使用者。linux預設安裝NFS系統,可以透過修改配置檔案提供共享檔案。
  1. 1. 啟動服務
[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 22:17:18 CST; 2s ago  Process: 78263 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  1. 2. 修改配置檔案預設配置檔案為/etc/exports,該檔案的內容預設為空
[root@localhost dhcp]# cat /etc/exports/media  192.168.0.0/255.255.0.0(ro)
樣本檔案中編寫了共享了/media目錄,後面的IP地址表示僅192.168.0.0網路可以訪問該共享目錄,ro表示客戶端訪問許可權為只讀。
這裡共享映象還可以使用vsftpd或者httpd作為替代方案

5. 示例

我們嘗試搭建一個自動化安裝部署作業系統的模擬案例,使用的作業系統及安裝系統均為Centos7。
伺服器
IP
安裝服務
server
192.168.17.139
dhcp,tftp,nfs
client1
192.168.17.201(計劃)
client2
192.168.17.202(計劃)

5.1 搭建server

在前文中,我們在server已經安裝了dhcp,tftp,nfs,並透過Kickstart 技術生成自動應答的相關檔案
1. 啟動dhcp並設為開機自啟
[root@node-139 ~]# systemctl start dhcpd[root@node-139 ~]# systemctl enable dhcpdCreated symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
2. 設定並啟動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                = udpwait                    = yes        user                    = root        server                  = /usr/sbin/in.tftpd        server_args             = -s /var/lib/tftpbootdisable                 = 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 23:44:38 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/tftpbootDec 25 23:44:38 node-139 systemd[1]: Started Tftp Server.
共享路徑為/var/lib/tftpboot
3. 將客戶端所需啟動檔案複製到TFTP伺服器
[root@node-139 ~]# yum install -y syslinux[root@node-139 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
把核心映象檔案vmlinuzisolinux.cfginitrd.img複製到共享路徑
initrd.img檔案就是個ram disk的映像檔案。ram disk是標準核心檔案認識的裝置(/dev/ram0)檔案系統也是標準核心認識的檔案系統。可以參考 https://blog.csdn.net/u010230019/article/details/131450815isolinux.cfg啟動選單的配置檔案
[root@node-139 tftpboot]# cp /home/yurq/isolinux.cfg pexlinux.cfg/default[root@node-139 tftpboot]# chmod 644 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
修改啟動配置檔案default(isolinux.cfg)
[root@node-139 tftpboot]# cat pexlinux.cfg/defaultdefault linuxtimeout 600display boot.msgmenu title Welcome to CentOS7 by Yurqlabel linux  menu label ^Install CentOS 7  menu default  kernel vmlinuz  append initrd=initrd.img ks=nfs:192.168.17.139:/ks/ks.cfglabel rescue  menu label ^Rescue a CentOS system  kernel vmlinuz  append initrd=initrd.img rescuemenu end
配置說明:default 指定預設引導方式,從配置檔案可以看出,有一種以label開始的名稱為linux的正常引導方式,另一種是名稱為rescue的救援引導方式,而default決定了預設採用哪種引導方式引導安裝程式。此外,kernel指定的是系統核心檔案,在上面的步驟中,我們已將該檔案複製到TFTP共享目錄中。如果沒有後面的ks引數,至此,我們可以實現無盤啟動,後面的安裝步驟需要我們手動進行,設定ks引數可以指定自動應答檔案的位置,從而實現無人職守自動安裝。本文中設定192.168.17.139的NFS共享方式讀取Kickstart檔案。
[root@node-139 ~]# ll /var/lib/tftpboottotal 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.0drwxr-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服務,並關閉防火牆
[root@node-139 tftpboot]# systemctl restart tftp[root@node-139 tftpboot]# systemctl stop firewalld
4. 建立Kickstart自動應答檔案
  1. 1. 基本設定

    在這裡插入圖片描述

    包括:預設語言,鍵盤,時區,root密碼(可選)

  2. 2. 設定安裝方法

    在這裡插入圖片描述

    配置安裝方式可以選擇全新安裝或者升級安裝,本文中為全新安裝,設定安裝過程中所需安裝檔案(Centos7 系統光碟中的內容)透過NFS讀取,這裡的NFS伺服器為192.168.17.139,共享目錄為/media

  3. 3. 引導設定

    在這裡插入圖片描述

    此處配置系統載入程式,安裝方式選擇全新安裝GRUB載入程式,GRUB引導密碼未設定,將系統載入程式安裝於MBR區域,核心引數未設定任何特殊引數

  4. 4. 分割槽設定

    在這裡插入圖片描述

    分割槽選擇移除所有的現有分割槽後重新分割槽,並初始化磁碟標籤

注意:透過圖形介面生成的Kickstart檔案無法使用LVM邏輯卷分割槽,需要使用LVM邏輯卷分割槽,則需要手動修改生成後的Kickstart檔案
這裡需要手動新增(ADD)至少//boot
  1. 5. 網路設定

    在這裡插入圖片描述

    新增網路裝置ens33,並設定透過DHCP獲得網路引數

  2. 6. 認證設定

    在這裡插入圖片描述

    所有的使用者密碼都使用SHA512演算法加密

如果需要將本機加入活動目錄的化,可以修改LDAP引數加入活動目錄
  1. 7. SELinux和防火牆

    在這裡插入圖片描述

    SELinux和防火牆均被設定為啟用狀態,並設定防火牆開放HTTP和SSH服務

  2. 8. 顯示設定

    在這裡插入圖片描述

    這裡不勾選安裝圖形環境(可自行選擇)

  3. 9. 安裝包選擇

    在這裡插入圖片描述

    正常可以選擇,筆者這裡可能是版本問題沒有顯示內容

    在這裡插入圖片描述

    安裝軟體時根據自己實際需求進行選擇後來筆者構建本地源,不過可選內容較少,可能匯入的是mini.iso的原因

    在這裡插入圖片描述

    構建本地源,需要注意源名稱必須為development,因為這個是ks程式碼內固定讀取的:

    [development]name=centos cdrombaseurl=file:///media/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7enabled=1
  4. 10. 安裝前執行指令碼

    在這裡插入圖片描述

    若沒有特殊需求,可以為空

  5. 11. 安裝後執行的指令碼

    在這裡插入圖片描述

    常用指令碼為建立YUM源,初始化使用者賬號,部署軟體服務等,如果沒有特殊需求,可以為空

完成所有設定後,透過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 upgradeinstall# Keyboard layoutskeyboard 'us'# Root passwordrootpw --iscrypted $1$2ZdAsgIv$xBtWTquTEb5prUaMEgk.G/# System languagelang zh_CN# System authorization informationauth  --useshadow  --passalgo=sha512# Use graphical installgraphicalfirstboot --disable# SELinux configurationselinux --enforcing# Use NFS installation medianfs --server=192.168.17.139 --dir=/media# Firewall configurationfirewall --enabled --http --ssh# Network informationnetwork  --bootproto=dhcp --device=ens33# Halt after installationhalt# System timezonetimezone Africa/Abidjan# System bootloader configurationbootloader --location=mbr --boot-drive=sda# Partition clearing informationclearpart --all --initlabel# Disk partitioning informationpart swap --fstype="swap" --size=1000part /boot --fstype="ext4" --size=200part / --fstype="ext4" --grow --size=1%post/usr/bin/hostname yurq%end%packages@core%end
注意:bootloader –location=mbr –boot-drive=sda 預設用圖形工具編寫完成沒有--boot-drive=sda 這個選項,所以需要手動加上否則會卡在anaconda的配置介面
5. 部署NFS服務
修改NFS服務如下,
[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)
啟動NFS並設定為開機自啟
[root@node-139 ~]# systemctl start nfs[root@node-139 ~]# systemctl enable nfs
6. 將系統光碟或ISO檔案透過NFS共享
如果有光碟或光碟機可以透過mount的方式將光碟直接掛載在/media目錄下
umount /dev/cdrommount /dev/cdrom /media
如果沒有光碟,僅有ISO映象檔案,亦可以將ISO映象檔案掛載至/media目錄,
[root@node-139 ~]# mount -o loop -t iso9660 /root/CentOS-7-x86_64-Minimal-2009.iso /mediamount: /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_BuildTagdrwxr-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 GPLdrwxr-xr-x.  3 root root  2048 Oct 27  2020 imagesdrwxr-xr-x.  2 root root  2048 Nov  3  2020 isolinuxdrwxr-xr-x.  2 root root  2048 Oct 27  2020 LiveOSdrwxr-xr-x.  2 root root 73728 Nov  3  2020 Packagesdrwxr-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
至此伺服器端就設定好了

5.2 客戶端

正常來說,在所有客戶端主機的BIOS中,將第一啟動方式設定為PXE網路啟動,或透過類似於開機按F12鍵這樣的快捷方式設定啟動方式。不同型號的主機設定網路啟動的方式不同,使用者可自行選擇。
本文中使用虛擬機器模擬真實場景,所以還需要設定虛擬機器
1. 設定虛擬機器

在這裡插入圖片描述

由於筆者的伺服器是雙網絡卡,所以指定客戶端機器未僅主機模式,讀者可自行選擇,能讓DHCP分配到IP就可以了另外,雙網絡卡需要注意在DHCP設定時指定interface

2. 啟動安裝

在這裡插入圖片描述

在這裡插入圖片描述

由於映象是mini版本的,所以只有命令列介面

在這裡插入圖片描述

6. 問題彙總

1. 卡在dracut

dracut 是一個事件驅動的 initramfs 基礎設施。dracut(工具)被用來透過複製工具和檔案,從一個已經安裝的系統建立一個 initramfs 映象,並將映象與dracut框架結合在一起。通常發現在 /usr/lib/dracut/modules.d/.
  • • 不像已經存在的initramfs框架,dracut的框架嘗試有儘可能更少的硬編碼進入initramfs。initramfs在生命中有一個基本的目標:獲取已經掛載的rootfs,以致我們能夠過渡到真正的rootfs。這是所有驅動裝置的可用性。因此,取代指令碼硬編碼去做各種事情,dracut的 initramfs 依賴 udev 去建立符號連結到裝置節點,接著,當rootfs的裝置節點出現的時候,它被掛載和根切換到rootfs裝置。 這個有助於保持在initramfs裡要求的時間儘可能的少,以致一些事情,如5s鍾啟動,作為一個initramfs的存在結果不是不可能的。
  • • 在dracut中,大部分的initramfs生成器功能由一群生成模組提供,這些模組是被主要的dracut工具採購,來安裝特定的功能進入initramfs。他們存在於這些模組的子目錄。和使用由dracut-functions提供的功能去做他們的工作。
  • • dracut 作為新一代的 initramfs 系統,和前一代的initramfs系統的 mkinitrd 的不同點在於, dracut設計上就考慮到了映像尺寸的問題,儘量避免硬編碼,以提高生成的 cpio 映像載入記憶體的速度。實際上,由於initramfs的唯一作用就是掛載rootfs(因此不需要把一堆無用的比如 plymouth 等都裝進去),它主要依賴 udev 去獲取 rootfs 的裝置節點,一旦 rootfs 節點出現則立刻切換過去。按照官方維基的說法:5秒啟動不是夢。另外它採用了模組化的方式,使用者可自由在 %{_libdir}/dracut/modules.d 下建立他需要的特殊模組,可擴充套件性很強。最後它的使用方式和 mkinitrd 非常接近,遷移成本較低。
dracut 用於製作initrd啟動映象檔案, dracut-network會為映象內新增nfs等網路支援.
  1. 1. 映象未掛載
mount -o loop -t iso9660 /root/CentOS-7-x86_64-Minimal-2009.iso /media
  1. 2. 記憶體不足建議大於2G

2. 卡在沒有選擇磁碟

  1. 1. 卡在anaconda安裝介面的沒有選擇磁碟,需要手動在ks.cfg檔案指定磁碟名稱
bootloader --location=mbr --boot-drive=sda #注意
  1. 2. 在製作ks.cfg分割槽設定時,需要手動新增(ADD)至少//boot

3. 卡在DHCP分配地址

在這裡插入圖片描述
這裡需要注意:
  1. 1. 伺服器是否是雙網絡卡,是否指定了具體使用的網絡卡,在編輯/etc/dhcp/dhcpd.conf時,指定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 pagesubnet 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";}
  1. 2. 客戶端機器如果是虛擬機器,指定網路模式
  2. 3. 提示no dhcp or proxydhcp,檢視伺服器的dhcpd服務是否啟動

4. tftp open timeout

在這裡插入圖片描述

可以看到客戶端已經獲取到了IP,但是準備向tftp服務獲取pxelinux.0,但是無法連線tftp服務,這時現象是顯示開啟tftp超時,並且一直嘗試連線。

  • • 檢查tftp服務是否啟動。

5. 服務端缺少pxelinux.0

提示file not found | tftp error可以看到客戶端已經獲取到了IP,並且tftp連線也沒有報錯。但是準備向tftp服務獲取pxelinux.0檔案失敗,提示檔案沒有發現。
  • • 檢查/var/lib/tftpboot/目錄下是否有pxelinux.0檔案。

6. 服務端缺少指定核心的配置檔案

提示unable to locate configuration file可以看到客戶端已經獲取到了IP,並且tftp連線也沒有報錯。但是準備向tftp服務獲取default檔案失敗,提示檔案沒有發現。
  • • 檢查/var/lib/tftpboot/pxelinux.cfg/default是否存在。

7. 提供ks.cfg檔案的服務宕機

在這裡插入圖片描述

提示failed connect | failed to fetch kisckstart到這一步,表示核心與偽檔案系統已經載入完畢,準備根據ks.cfg應答檔案進行自動安裝,但是提示連線服務,請求檔案失敗。

  • • 檢查web服務是否宕機,該檔案可能是由其他服務(ftp|nfs)提供,所以需要檢查對應的服務是否宕機。

8. 客戶機記憶體不夠

在這裡插入圖片描述

提示no space left on device到這一步,表示核心與偽檔案系統已經載入完畢,沒有缺少什麼檔案,但是空間不夠。

  • • 檢查虛擬機器或者客戶機的記憶體是否足夠,記憶體設定至少2G。
連結:https://blog.csdn.net/u010230019/article/details/135150807?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%97%A0%E4%BA%BA%E5%80%BC%E5%AE%88%E5%AE%89%E8%A3%85%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-135150807.142^v102^pc_search_result_base1&spm=1018.2226.3001.4187
END
想要學習Linux系統的讀者可以點選"閱讀原文"按鈕來了解書籍《Linux就該這麼學》,同時也非常適合專業的運維人員閱讀,成為輔助您工作的高價值工具書!

相關文章