1. 程式人生 > >PXE遠程自動安裝操作系統

PXE遠程自動安裝操作系統

enable empty none 目錄結構 wid 內核和 img windows blog

一、PXE的工作原理

PXE:基於Client/Server的網絡模式,支持遠程主機通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統;PXE可以引導和安裝Windows,linux等多種操作系統。

PXE工作原理:

1、Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的位置信息一並傳送給Client
2、Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之後再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的同意大小信息之後,正式向Client發送pxelinux.0
3、Client執行接收到的pxelinux.0文件
4、Client向TFTP Server發送針對本機的配置信息文件(在TFTP 服務的pxelinux.cfg目錄下),TFTP將配置文件發回Client,繼而Client根據配置文件執行後續操作。
5、Client向TFTP發送Linux內核請求信息,TFTP接收到消息之後將內核文件發送給Client
6、Client向TFTP發送根文件請求信息,TFTP接收到消息之後返回Linux根文件系統
7、Client啟動Linux內核
8、Client下載安裝源文件,讀取自動化安裝腳本

註意:如果要是用PXE遠程安裝操作系統,網卡必須支持PXE(即網卡中包含tftp的客戶端)

二、PXE實現遠程安裝Linux操作系統

1、實驗環境:

1)centos6或7
2)準備一張或多張系統盤(centos)

2、基礎組件的安裝和配置

1)需要安裝的rpm包

  1. yum install -y tftp-server syslinux dhcp httpd

2)配置tftp—server

1、配置光盤源

  1. vim /etc/yum.repos.d/localrepo.repo
  2. [localrepo]
  3. name=localrepo
  4. baseurl=file:///mnt
  5. enabled=1
  6. gpgcheck=0

2、掛載光盤

  1. mount /dev/sr0 /mnt

3、復制以下文件到指定目錄

  1. mkdir /var/lib/tftpboot/pxelinux.cfg/
  2. cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/ #啟動文件和啟動菜單文件
  3. cp /mnt/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ #內核和rootfs
  4. cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #菜單配置文件

4、修改菜單文件(以下為示例,實際情況自行修改)

  1. default menu.c32 #這裏要改成menu.c32,因為我們復制的是menu.c32文件
  2. timeout 600
  3. display boot.msg
  4. menu separator # insert an empty line
  5. label linux
  6. menu label ^Install CentOS 7
  7. kernel vmlinuz
  8. append initrd=initrd.img ks=http://192.168.13.1/ksdir/ks7-mini.cfg
  9. menu separator # insert an empty line
  10. label local
  11. menu label Boot from ^local drive
  12. menu default
  13. localboot 0xffff

5、當前目錄的目錄結構

  1. .
  2. ├── initrd.img
  3. ├── menu.c32
  4. ├── pxelinux.0
  5. ├── pxelinux.cfg
  6. │ └── default
  7. └── vmlinuz

3)配置dhcp

  1. vim /etc/dhcp/dhcpd.conf
  2. default-lease-time 7200; #默認租期時間
  3. max-lease-time 7200; #最大租期時間
  4. log-facility local7; #記錄到系統日誌的級別
  5. subnet 192.168.30.0 netmask 255.255.255.0 {
  6. range 192.168.30.1 192.168.30.50;
  7. filename "pxelinux.0"; #指定系統啟動文件
  8. next-server 192.168.30.200; #指定tftp-server的ip地址
  9. }

4)配置ks應答文件

配置ks應答文件可以手動修改/root/anaconda-ks.cfg 文件,其中的選項,可以參照紅帽官方安裝手冊,也可以通過kickstart快速配置(但是需要圖形化,配置簡單),這裏我們使用第二種方式來配置,一下是配置步驟

第一步:安裝kickstart

  1. yum install system-config-kickstart

註意:kickstart依賴圖形,所以在安裝kickstart的時候會安裝非常多的依賴包,不要在生產的服務器上安裝,我建議在自己的虛擬機上安裝,並使用終端的x11來啟動圖形,生成完我們需要的應答文件之後將應答文件拷貝到指定機器的/var/www/html/ksdir/下面。

第二步:使用X11轉發來實現在當前windows系統打開kickstart

在我們的虛擬機服務器端安裝xorg-x11-xauth包

  1. yum install -y xorg-x11-xauth

打開虛擬機服務器端ssh中的”X11Forwarding”選項

  1. vim /etc/ssh/sshd.conf
  2. X11Forwarding yes

在我們的windows上安裝xmanager

技術分享圖片

開啟

技術分享圖片

輸入虛擬機服務器端的信息,命令填寫”system-config-kickstart”,如下圖

技術分享圖片

點擊運行,使用kickstart來配置應答文件。如下圖,配置需要的應答選項

技術分享圖片

將生成的文件拷貝到/var/www/html/ksdir/ks7-mini.cfg

第三部:掛載光盤鏡像到”/var/www/html/c7″,並啟動服務

  1. mount /dev/sr0 /var/www/html/c7
  2. systemctl restart httpd

PXE遠程自動安裝操作系統