PXE

BootStraping 系統提供

PXE

簡介

PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端(客戶?)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統

原理圖

PXE

依賴環境

  • dhcp server:用來獲取網關和地址,以及dns;指明要加載的文件所在位置(tftp的地址)。(ip/nemask, gw, dns; filename, next-server)

  • tftp server:提供系統內核等 (bootloader, kernel, initrd)

       TFTP(trivial file transfer protocol),一種開銷很小的簡單文件傳輸協議,語法類似ftp.因簡單、高效,常用于網絡設備的OS和配置更新.
  • yum repository :應用程序服務器構建(ftp, http, https, nfs)

  • kickstart

運行步驟

整個安裝的過程是這樣的:PXE網卡啟動 => DHCP獲得IP地址 => 從TFTP上下載 pxelinux.0、vmlinuz、initr.img 等 => 引導系統進入安裝步驟 => 通過PEX linux 下載ks.cfg文件并跟據ks.cfg自動化安裝系統 => 完成。
PXE

PXE和Kickstart

Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,并生成一個名為ks.cfg的文件。如果在安裝過程中(不只局限于生成Kickstart安裝文件的機器)出現要填寫參數的情況,安裝程序首先會去查找Kickstart生成的文件,如果找到合適的參數,就采用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。所以,如果Kickstart文件涵蓋了安裝過程中可能出現的所有需要填寫的參數,那么安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后就去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啟系統,并結束安裝。(redhat的版本是通過anaconda讀取kickstart文件來獲取所有需要參與的安裝配置就能無人值守的安裝。這里要指明安裝文件所在的路徑)

PXE+Kickstart 無人值守安裝操作系統完整過程如下:
PXE

準備工作

環境
centos 7.2為dhcp和tftp的server 地址10.1.6.72

1、tftp server安裝配置

安裝

# yum install tftp-server tftp

啟動 
CentOS 7:

    systemctl start tftp.socket

CentOS 6:

    chkconfig tftp on
    service xinetd restart

端口及配置文件

    69/udp

默認的文件根目錄:/var/lib/tftpboot/

客戶端為tftp

可以cp一個文件到/var/lib/tftpboot/然后用tftp連上去下載測試。
注意用tftp是不支持ls這種命令的。

2、dhcp的安裝及簡要配置

安裝

# yum install dhcp -y

配置
復制模板文件

]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf

修改模板文件

PXE

service dhcpd configtest 檢查測試
啟動服務

PXE

3、提供pxelinux.0

這個文件由 syslinux安裝包提供

安裝syslinux

]# yum install syslinux

由這個文件包提供的文件可以找到

PXE

復制此文件到tftp的主目錄中

]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

測試:新建一個虛擬機是否能用

PXE

這時可以在服務端看到有沒有租約信息
PXE

這時加載pxelinux.0是沒有問題的

4.提供內核文件和內存引導文件(和initrd相似的啟動)到tftp主目錄

內核文件

PXE

內存引導文件syslinux包提供

PXE

  • mboot.c32 :此文件表示從內存來引導,用內存當磁盤引導

  • menu.c32 :給用戶提供一個可選的菜單

  • memdisk :使內存模擬成磁盤用的文件

  • chain.c32:基于鏈式引導(即bootloader引導)操作系統的文件

提供pxelinux.cfg目錄創建菜單加載時用到的配置文件信息

PXE

編輯這個配置文件提供菜單信息

PXE

含義
PXE

5、安裝vsftp用來當做yum倉庫

# yum install vsftpd

配置光盤掛載地址

#mkdir /var/ftp/pub/7

PXE

啟動vsftp測試安裝

PXE

PXE

OK!

基于Kickstart來一件安裝

用Kickstart生成ks.cfg文件,修改好文件內容
PXE

重新配置/var/lib/tftpboot/pxelinux.cfg/default文件

PXE

重啟客戶端主機就可以安裝了

PXE

PXE

Centos 6的安裝

CentOS 6:
yum  -y install syslinux

cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}  /var/lib/tftpboot/

mkdir /var/lib/tftpboot/pxelinux.cfg/        

cp  /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

mount -o bind /media/cdrom /var/www/html/centos6

內容如下所示:這個是圖形化顯示的菜單^是快捷鍵的方式

    default vesamenu.c32
    timeout 600
    prompt 5
    display boot.msg

    menu background splash.jpg
    menu title Welcome to CentOS 6.7 MageEdu!
    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 autoinst
        menu label ^Auto Install CentOS
        menu default
        kernel vmlinuz
        append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg
    label linux
        menu label ^Install or upgrade an existing system
        kernel vmlinuz
        append initrd=initrd.img
    label vesa
        menu label Install system with ^basic video driver
        kernel vmlinuz
        append initrd=initrd.img 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 -

原創文章,作者:qzx,如若轉載,請注明出處:http://www.www58058.com/57747

(0)
qzxqzx
上一篇 2016-11-05 20:41
下一篇 2016-11-05 21:42

相關推薦

  • Grep 文本搜索工具與正則表達式

            grep (縮寫來自Globally search a Regular Expression and Print)是一種強大的文本搜索工具,它能使用特定模式匹配(包括正則表達式)搜索文本,并默認輸出匹配行。Grep在實際中對于我們的工作有著很大的作用,用于對文件的搜索,通過由正則表達式字符以及…

    2017-04-15
  • MySQL管理應用入門(一)

    什么是數據庫? 數據庫(Database)是按照數據結構來組織、存儲和管理數據的建立在計算機存儲設備上的倉庫。 簡單來說是本身可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。 在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的“倉庫”,并根據管理的需要進行相應的處理。 例如, 企業或事業單位的人事部…

    Linux干貨 2017-07-08
  • day7作業練習

    1、顯示當前系統root、mage或wang用戶的UID和默認shell  2、找出/etc/rc.d/init.d/functions文件中行首為某單詞(包 括下劃線)后面跟一個小括號的行  3、使用egrep取出/etc/rc.d/init.d/functions中其基名     v …

    系統運維 2016-08-08
  • 馬哥教育網絡班21期-第八周課程練習

    第八周作業 1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 集線器:集線器工作在OSI七層模型的物理層;功能是將傳輸信號再生或放大,收到數據后將數據轉發至除接收接口外的所有接口(廣播)),但是由于集線器所有端口屬于共享帶寬,屬于同一個沖突域和屬于同一個廣播域,容易產生信號沖突導致幀碎片,現今大部分集線器已經被交換機所替代; 網…

    Linux干貨 2016-09-01
  • 源碼包編譯安裝MariaDB-10.1.22

    源碼包編譯安裝MariaDB-10.1.22 1、獲取源碼包        mariadb-10.1.22.tar.gz 2、編譯環境及依賴關系     yum groupinstall -y Development Tools yum -y install …

    Linux干貨 2017-03-16
  • linux的發展史

    一、今天要介紹的Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。 但是很多時候我們了解到的技術都不是…

    Linux干貨 2016-10-17
欧美性久久久久