小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Tiny pxe網絡啟動

 寶寶和明明 2023-05-13 發(fā)布于遼寧

Tiny pxe網絡啟動–遠程安裝、維護系統(tǒng)

參考文檔:

  1. http:///erwan/?page_id=958

  2. https:///docs

Tiny PXE Server是一款小巧而功能強大的網絡系統(tǒng)啟動軟件,支持DHCP/TFTP/HTTP/BINL/DNS等多個協(xié)議,支持grub4dos,pxelinux,ipxe等多個引導器,支持從PXE/gPXE/IPXE啟動,支持http協(xié)議啟動或傳輸文件。

Tiny PXE Server下載地址:http://erwan./tinypxeserver/pxesrv.zip

啟動PXE服務端

下載解壓后直接運行pxesrv.exe,點擊”Online“即可運行服務端,終止運行點擊”Offline“。

配置說明

在這里插入圖片描述

說明:

  1. ProxyDhcp:是Dhcp代理服務

    勾選:在局域網已有Dhcp服務的情況下,建議勾選,不會與現(xiàn)有Dhcp服務沖突,但它能傳遞Next-Server等選項,傳統(tǒng)Dhcp服務不一定能傳遞參數(shù)和選項;

    不勾選:如果局域網沒有Dhcp服務,可使用此軟件的Dhcp服務,就不勾選,客戶端會得到該軟件分配的IP。

  2. HTTPd:開啟本機的httpd服務,即web服務,可通過httpd服務來啟動系統(tǒng),瀏覽器可訪問。

  3. SMB:文件共享協(xié)議,勾選并啟動后主機會把當前目錄下的files目錄共享出去,共享名為PXE,可通過命令:net share查看主機共享出去的目錄,如:

    C:\Users\wzy>net share
    
    共享名       資源                            注解
    
    -------------------------------------------------------------------------------
    C$           C:\                             默認共享
    D$           D:\                             默認共享
    E$           E:\                             默認共享
    IPC$                                         遠程 IPC
    ADMIN$       C:\Windows                      遠程管理
    PXE          E:\pxe網絡啟動\pxesrv\files
    命令成功完成。
    
  4. Option:有多個Option項,在不啟動ProxyDhcp時,它會讓主機充當DHCP服務器,分配IP地址及這些選項都能生效,啟動ProxyDhcp時,這里設定的ip地址/子網/DNS等選項被忽略,由主Dhcp來分配,其它選項(比如Next-server)可以被分配。

  5. Boot File:啟動文件,可選擇files目錄下的各種啟動文件,默認ipxe.pxe適合BIOS/UEFI等多種啟動,在有些情況下也有選擇pxelinux.0等的,一般保持默認。

  6. Filename if user-class=gPXE or iPXE:選擇ipxe或gpxe啟動菜單文件,默認menu.ipxe,在files目錄下,可以根據(jù)這個模板生成自己的菜單文件。

  7. More:更多選項(略)

  8. TFTP服務:面板上沒有體現(xiàn)的服務,其實Tftp服務是pxe啟動的根本,運行這個軟件時,Tftp服務自動啟動。沒有tftp服務,就沒有pxe在啟動之初下載文件的能力,Httpd或Smb服務雖然能下載文件,但客戶端pxe沒有啟動前是不能使用的;

    Tftp服務適合傳輸小文件,大文件傳輸太慢,舊的pxe僅基于tftp來傳輸,不適合安裝大系統(tǒng);

    檢測服務啟動是否成功,在命令行下運行,可以看到UDP:69端口在偵聽:

    C:\Users\wzy>netstat -an | find '69'
      UDP    172.16.6.36:69         *:*
    
  9. Tftpboot目錄:即Tftp服務啟動的根目錄,它存放pxe啟動文件和菜單文件,在軟件里這個目錄是files目錄,我們可以在files下創(chuàng)建各系統(tǒng)的子目錄,但目錄結構要與menu.ipxe啟動菜單內核和安裝包文件對應一致。

  10. 日志:在軟件面板中上部,有一塊區(qū)域顯示日志,客戶端啟動時獲取IP,下載文件,執(zhí)行啟動等都會有日志顯示在上面,這里可以在出錯時給我們分析排除錯誤很大的幫助。

iPxe啟動菜單配置文件

這個菜單文件才是重點,系統(tǒng)提供了多個菜單文件,擴展名為.ipxe的都是,但它并非只能叫這個擴展名,.txt或者別的擴展名也是可以的,只要它是純文件文件,符合ipxe的語法規(guī)則就可以。

具體的ipxe語法和案例可參考:https:///官方的文檔。

我們打開一個menu.ipxe的文檔來看看:

#!ipxe

#set boot-url http://${proxydhcp}/next-server
set boot-url http://${next-server}
set iscsi-server ${next-server}
set iqn iqn.2008-08.com.starwindsoftware:target1
set iscsi-target iscsi:${iscsi-server}::::${iqn}
set nfs-server ${next-server}
set cifs-server //${next-server}

# Setup some basic convenience variables
set menu-timeout 5000
set submenu-timeout ${menu-timeout}

# Ensure we have menu-default set to something
isset ${menu-default} || set menu-default exit

######## MAIN MENU ###################
:start
menu Welcome to iPXE's Boot Menu
item
item --gap -- ------------------------- Utilities ------------------------------
#item bootsan    Boot On San (${iscsi-target})
item bootaoe    Boot On AOE (e0.0)
#item iscsi	setup, sanhook or sanboot iscsi
item iscsi	Boot On San
item pxelinux    pxelinux
item grub4dos    grub4dos
item grub2    grub2
#item grub_cd		boot to dvd (via grub4dos)
#item grub_startrom		boot to startrom.0 (via grub4dos)
item grub_floppy		boot floppy (via grub4dos)
item grub_hd0		boot to hd0 (via grub4dos)
item hdt    hdt
#item netbootme	Netboot.Me
#item undi_dos    undi_dos
item disk_util Disk Utilities
item winpe Live Systemes
item linux Install Linux Distros
item --gap -- ------------------------------ Advanced ---------------------------------
item config       Configure settings
item shell      Enter iPXE shell
item reboot     Reboot
item exit       Exit (boot local disk)
choose --default exit --timeout 30000 target && goto ${target}

########## UTILITY ITEMS ####################
:shell
echo Type exit to get the back to the menu
shell
set menu-timeout 0
goto start

:failed
echo Booting failed, dropping to shell
goto shell

:reboot
reboot

:exit
exit

:cancel
echo You cancelled the menu, dropping you to a shell
 
:config
config
goto start
 
:back
set submenu-timeout 0
clear submenu-default
goto start
......

整個菜單文件篇幅太大,我們后面省略,它有一級、二級、三級等多級菜單,很多小系統(tǒng)工具我們平時用不上,我們能根據(jù)模板編寫一級菜單就基本夠用了。

ipxe語法規(guī)則:

首行:

#!ipxe

這行是必須的,就像Linux的腳本文件前面的 #!/bin/bash 一樣,類似于指定命令解釋程序。

除了首行#號有特殊意義,后面的#都表示注釋

變量設置:

set boot-url http://${next-server}
set iscsi-server ${next-server}
set iqn iqn.2008-08.com.starwindsoftware:target1
set iscsi-target iscsi:${iscsi-server}::::${iqn}
set nfs-server ${next-server}
set cifs-server //${next-server}

# Setup some basic convenience variables
set menu-timeout 5000
set submenu-timeout ${menu-timeout}

# Ensure we have menu-default set to something
isset ${menu-default} || set menu-default exit

設置變量:一般把全局變量定義在前面,作用于下面所有啟動項。

語法:set <變量名> <變量值>

$<變量名>:調用前面已經定義過的變量

${next-server}:是指調用在Tiny pxe server面板上指定的next-server值,通常我們把它指定為pxesrv本機

isset ${menu-default} || set menu-default exit:||表示執(zhí)行前面的命令,如果前面執(zhí)行結果為假,則執(zhí)行后面的命令,

啟動菜單設置:

案例:

1.安裝windows7
2.安裝windows10
3.啟動再生龍系統(tǒng)
4.啟動Debian10的系統(tǒng)安裝

實現(xiàn):

######## MAIN MENU ###################
:start
menu Welcome to iPXE's Boot Menu
item
item --gap -- ------------------------- Utilities ------------------------------
item win7        Install Windows 7
item win10       Install Windows 10
item winpe       Winpe
item clonezilla  Boot clonezilla
item debian      Install Debian 10
item --gap -- ------------------------------ Advanced ---------------------------------
item --key r reboot	[R] Reboot the Computer
item --key x exit	[X] Exit (boot local disk)
choose --default exit --timeout 60000 target && goto ${target}

:(冒號):這個冒號表示一段代碼,到下一個冒號前,這段代碼都是一個整體,會按照順序執(zhí)行,除非遇到goto跳轉到其它冒號的代碼段。

item:item [執(zhí)行代碼段名稱] [代碼段執(zhí)行功能描述]

表示一個標題項,比如一個啟動菜單項,一行一個標題,item和它后面的一個單詞不顯示,item后面第二個單詞之后的會顯示在屏幕上,比如item win7 Install windows 7,這行僅顯示”Install windows 7“,后面要有:win7代碼段,否則選擇它也執(zhí)行不了。

item --gap:此行用于分割一行,后面的內容顯示在屏幕上,但它不能作為菜單項可選擇,即調整光標時,它將跳過此行不能被選擇。

item --key:item --key <快捷鍵字符> <執(zhí)行代碼段名稱> [代碼段執(zhí)行功能描述]

item --key這行菜單可定義快捷鍵,即不將光標移動到此行,直接按一個快捷鍵就會立即執(zhí)行。

choose --default: choose --default <執(zhí)行代碼段名稱> --timeout <時間毫秒> target && goto ${target}

choose --default exit --timeout 60000 target && goto ${target},設置exit為默認選擇項,可以修改成默認從硬盤啟動或者重啟皆可,&&表示執(zhí)行前面的時間到期,就執(zhí)行后面的語句。

程序代碼段:

這里才是真正要執(zhí)行的命令,代碼段以:(冒號)開頭,至下一個:(冒號)前截止,或者遇到goto跳轉到其它代碼段。

########## UTILITY ITEMS ####################
#執(zhí)行錯誤返回到開始菜單項
:failed
echo Booting failed, dropping to shell
goto start

:reboot
reboot

:exit
exit

:win7
kernel ${next-server}/wimboot || goto failed
initrd ${next-server}/windows7/boot/bcd bcd || goto failed
initrd ${next-server}/windows7/boot/boot.sdi boot.sdi  || goto failed
#windows的boot.wim最好是用微軟工具生成的winpe啟動文件,win10的也一樣,在此不贅述
initrd ${next-server}/windows7/sources/boot.wim boot.wim || goto failed
boot || goto failed
goto start

:win10
kernel ${next-server}/wimboot || goto failed
initrd ${next-server}/windows10/boot/bcd bcd || goto failed
initrd ${next-server}/windows10/boot/boot.sdi boot.sdi  || goto failed
initrd ${next-server}/windows10/sources/boot.wim boot.wim || goto failed
boot || goto failed
goto start

:winpe
sanboot --no-describe ${boot-url}/images/winpe.iso || goto failed
goto start 

:clonezilla
initrd ${boot-url}/_ISO/clonezilla/live/initrd.img || goto failed
kernel ${boot-url}/_ISO/clonezilla/live/vmlinuz boot=live config noswap nolocales edd=on nomodeset vga=788 nosplash noprompt fetch=${boot-url}/_ISO/clonezilla/live/filesystem.squashfs || goto failed
boot || goto failed
goto start

:debian
cpuid --ext 29 && set arch amd64 || set arch i386
#sanboot http://ftp.fr./debian/dists/Debian9.1/main/installer-amd64/current/images/netboot/mini.iso
sanboot ${boot-url}/images/debian-10.7.0-amd64-netinst.iso || goto failed
boot || goto failed
goto start

上面的代碼,每一個啟動菜單項對應一段執(zhí)行代碼,每行命令執(zhí)行都帶了 || goto failed代碼,可省略,但有它出錯了它可以返回主菜單;

kernel:調用內核

initrd:調用img

sanboot:調用iso文件

以上啟動過程中調用的文件,也可以調用httpd服務或者smb服務上的文件來啟動,大文件不適合tftp服務來調用,速度非常慢,httpd和smb傳輸文件非???,所以代碼段執(zhí)行的文件調用本例中我們都采用httpd路徑來調取。

創(chuàng)建windows7/10等系統(tǒng)安裝包存儲的目錄和文件

在files目錄下創(chuàng)建,首先進入這個目錄,在此用命令來創(chuàng)建,win的命令與linux有點類似

創(chuàng)建目錄:

cd pxesrv\files
#創(chuàng)建windows7/10及其下的boot和sources子目錄
#創(chuàng)建_ISO及其下的clonezilla子目錄
mkdir windows7\boot,windows7\sources,windows10\boot,windows10\sources,_ISO\clonezilla

拷貝或解壓win的啟動內核文件和安裝包,x為光盤驅動符號:

# windows7內核及wim安裝包,加載win7的iso到x盤
copy x:\boot\bcd  pxesrv\files\windows7\bootcopy x:\boot\boot.sdi  pxesrv\files\windows7\bootcopy x:\sources\boot.wim  pxesrv\files\windows7\sources
# windows10內核及wim安裝包,加載win10的iso到x盤
copy x:\boot\bcd  pxesrv\files\windows10\bootcopy x:\boot\boot.sdi  pxesrv\files\windows10\bootcopy x:\sources\boot.wim  pxesrv\files\windows10\sources

復制iso光盤鏡像文件到指定路徑,images存放iso文件:

copy e:\iso\winpe.iso pxesrv\files\images
copy e:\iso\debian-10.7.0-amd64-netinst.iso pxesrv\files\images

查下結果:

E:\pxe網絡啟動>tree /f pxesrv\files\windows7
├─boot
│      bcd
│      boot.sdi
│
└─sources
        boot.wim

E:\pxe網絡啟動>tree /f pxesrv\files\windows10
├─boot
│      bcd
│      boot.sdi
│
└─sources
        boot.wim
        
E:\pxe網絡啟動>tree /f pxesrv\files\images
E:\PXE網絡啟動\PXESRV\FILES\IMAGES
    debian-10.7.0-amd64-netinst.iso
    winpe.iso
沒有子文件夾

結果目標文件與menu.ipxe的路徑一致。

最終測試

  1. 啟動服務端:
    在這里插入圖片描述

  2. 啟動客戶端:
    在這里插入圖片描述

  3. 客戶端啟動過程:

在這里插入圖片描述

最后附上完整的menu.ipxe內容

#!ipxe

set boot-url http://${next-server}

# Setup some basic convenience variables
set menu-timeout 5000

# Ensure we have menu-default set to something
isset ${menu-default} || set menu-default exit

######## MAIN MENU ###################
:start
menu Welcome to iPXE's Boot Menu
item
item --gap -- ------------------------- Utilities ------------------------------
item win7        Install Windows 7
item win10       Install Windows 10
item winpe       Winpe
item clonezilla  Boot clonezilla
item debian      Install Debian 10
item --gap -- ------------------------------ Advanced ---------------------------------
item --key r reboot	[R] Reboot the Computer
item --key x exit	[X] Exit (boot local disk)
choose --default exit --timeout 60000 target && goto ${target}

########## UTILITY ITEMS ####################
:failed
echo Booting failed, dropping to shell
goto start

:reboot
reboot

:exit
exit

:win7
kernel ${next-server}/wimboot || goto failed
initrd ${next-server}/windows7/boot/bcd bcd || goto failed
initrd ${next-server}/windows7/boot/boot.sdi boot.sdi  || goto failed
#windows的boot.wim最好是用微軟工具生成的winpe啟動文件,win10的也一樣,在此不贅述
initrd ${next-server}/windows7/sources/boot.wim boot.wim || goto failed
boot || goto failed
goto start

:win10
kernel ${next-server}/wimboot || goto failed
initrd ${next-server}/windows10/boot/bcd bcd || goto failed
initrd ${next-server}/windows10/boot/boot.sdi boot.sdi  || goto failed
initrd ${next-server}/windows10/sources/boot.wim boot.wim || goto failed
boot || goto failed
goto start

:winpe
sanboot --no-describe ${boot-url}/images/winpe.iso || goto failed
goto start 

:clonezilla
initrd ${boot-url}/_ISO/clonezilla/live/initrd.img || goto failed
kernel ${boot-url}/_ISO/clonezilla/live/vmlinuz boot=live config noswap nolocales edd=on nomodeset vga=788 nosplash noprompt fetch=${boot-url}/_ISO/clonezilla/live/filesystem.squashfs || goto failed
boot || goto failed
goto start

:debian
cpuid --ext 29 && set arch amd64 || set arch i386
#sanboot http://ftp.fr./debian/dists/Debian9.1/main/installer-amd64/current/images/netboot/mini.iso
sanboot ${boot-url}/images/debian-10.7.0-amd64-netinst.iso || goto failed
boot || goto failed
goto start

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多