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
下一篇 2016-11-05

相關推薦

  • vim編輯器

    vim編輯器三種模式轉換 G跳到尾行 gg:跳到首行 H:跳到當前頁的首行 L: 跳到當前頁的尾行 M: 跳到當前而的中間行 dd: 刪除光標所在的行 #dd:多行刪除 yy:復制行 #yy: 復制多行 ? Y: 復制整行 cc:刪除當前行并輸入新內容 #cc:刪除多行 C:刪除當前光標到行尾,并切換成插入模式 修改配置文件 全局: /etc/vimrc 用…

    2017-08-05
  • 第十七周 作業–結合圖形描述lvs原理

        LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。   Lvs有三種模式分別是lvs-nat、lvs-dr、lvs-tun。下面分別介紹lvs-nat、lvs-dr…

    Linux干貨 2016-12-07
  • 馬哥教育網絡班22期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;       [root@localhost ~]#…

    Linux干貨 2016-10-09
  • 第十八周

    “1、為LNMP架構添加memcached支持,并完成對緩存效果的測試報告; 架構(3臺centos7) nginx與php 192.168.1.108    nginx,php-fpm,php-mysql php-pecl-memcache mysql         192…

    2017-08-21
  • Linux批量創建用戶、passwd、shadow、組管理、group、gshadow、默認配置文件login.defs、切換用戶su、提升權限(二)

    Linux批量創建用戶、passwd、shadow、組管理、group、gshadow、默認配置文件login.defs、切換用戶su、提升權限(二) Linux對于權限的管理非常完善,其強大的權限管理機制體現了它的魅力之處,讓無數人為之操碎了心。Linux中的權限既能放也能收,既可以管理整個組的權限,也可以管理單個用戶的權限,正是因為有了ACL的加入變得非…

    Linux干貨 2016-08-06
欧美性久久久久