RHEL7.3通過PXE啟動安裝作業系統

bug--maker發表於2018-06-06
  • PXE稱為preboot execute environment,表示預啟動執行環境,在解釋這個之前,首先簡單解釋一下安裝作業系統的過程,擦作系統的安裝通常需要通過硬碟,U盤等介質提供提供安裝檔案,通過這種方式提供的檔案來實現系統的安裝過程;
  • 上面提到的方式顯然不適合於叢集中大量作業系統的安裝,這種需求就導致了PEX技術的出現 ,PXEintel開發的技術,用於實現免硬碟的批量作業系統安裝,這種技術依賴於UDP/IP協議,並且是基於C/S的架構,Client的實現通常是在NIC[Network Information center]上面實現的,也就是硬體上面進行固化,由於硬體本身的限制,上面實現的僅僅是一些關鍵的功能,Client的功能是下載系統安裝過程中的檔案,並且載入道本地的記憶體來執行這些檔案,剩餘的操作就是安裝檔案在本地的執行過程;
  • 總結一下,就是說PXEClient就是修改了BIOS引導方式從網路卡啟動,並且在網路卡上面固化了一段用來下載安裝檔案的程式碼;
  • Server端由於沒有了硬體的限制,需要實現的功能就要複雜的多:
    • DHCP:也就是Dynamic Host Configuration Protocol,動態主機配置協議,主機和主機基於UDP/IP協議棧的通訊的前提是具有IP地址,這個主機存在的作用就是在Client在從網路卡啟動,並且傳送DHCP請求報文時,首先提供IP地址以及其他的網路資訊,並且需要提供TFTP伺服器的IP地址;
    • TFTP伺服器:通常包含初始載入程式以及一些補充檔案,這些檔案通常是通過TFTP協議進行傳輸,這些軟體通常提供作業系統核心以及完整的TCP/IP協議棧;
    • HTTP NFS:對於作業系統安裝過程中的其他檔案是通過完整的TCP/IP協議棧,並且HTTP NFS協議來完成資料傳輸的;
  • 對於上面過程的總結:
    • 上面存在網路互動的過程應該是分為三步進行:
    • 1.Client傳送DHCP請求報文,DHCP伺服器響應Client需要的IP Gateway等資訊,並且需要返回一個TFTP伺服器的IP地址 ;
    • 2.Client結合UDP/IP以及TFTP伺服器的地址,下載初始載入程式作業系統核心以及完成的TCP/IP協議棧 ;
    • 3.Client使用下載的載入程式,並且結合作業系統核心完成一個小系統,然後使用HTTP NFS等協議完成後續驅動,軟體包等程式的下載安裝;
  • 根據PXE的要求準備相應的環境
  • 1.DHCP伺服器的配置參考前一篇文章;
    1. 配置tftp-server
[root@my tftpboot]#  yum install -y tftp-server syslinux 
[root@my tftpboot]#  mount /iso/rhel-server-6.5-x86_64-dvd.iso /media/
[root@my tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@my tftpboot]# cp /media/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@my tftpboot]# cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default
  • 然後編輯/var/lib/tftpboot/pxelinux.cfg/default配置檔案如下
default linux               //這個需要進行修改
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.5!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img repo=http://172.25.23.250/rhel6.5 ks=http://172.25.23.250/ks1.cfg   這裡可以選擇HTTP NFS等方式;
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -
  • 上面選擇的是HTTPD,進行HTTPD伺服器的配置
[root@my ~]# umount /media/
[root@my ~]# mount /iso/rhel-server-6.5-x86_64-dvd.iso /var/www/html/rhel6.5/
  • 並且將ks.cfg放在/var/www/html/這個目錄裡面
[root@my ~]# ll /var/www/html/ks1.cfg 
-rw-r--r--. 1 root root 2064 66 08:34 /var/www/html/ks1.cfg
  • ks.cfg檔案的製作也是可以參考上一篇文章的
  • 3.啟動相關的服務
[root@my ~]# systemctl start tftp.service
[root@my ~]# systemctl restart dhcpd.service 
[root@my ~]# systemctl start httpd
  • 通過pxe啟動來安裝作業系統
  • 1.選擇pxe的方式來啟動
    這裡寫圖片描述
  • 2.選擇好作業系統對應的版本
    這裡寫圖片描述
  • 3.記憶體建議大於800MB
    這裡寫圖片描述
  • 4.硬碟根據實際的需求進行規劃
    這裡寫圖片描述
    • 5.選擇名稱和網路卡資訊
      這裡寫圖片描述
    • 6.通過DHCP協議獲得網路卡資訊
      這裡寫圖片描述
    • 7.在配置了網路卡資訊之後,嘗試載入了幾個作業系統安裝必須的檔案
      這裡寫圖片描述
    • 8.系統再次請求IP地址
      這裡寫圖片描述
    • 9.然後開始建立檔案系統等操作
      這裡寫圖片描述
    • 10.通過repo的設定開始安裝作業系統必須的檔案
      這裡寫圖片描述
    • 11.系統在安裝完成必要的軟體之後,會安裝bootloader,之後會重新啟動
      這裡寫圖片描述

相關文章