PXE BOOT DIY自己的網路啟動工具集合

來源:互聯網
上載者:User

大家對深山紅葉,矮人DOS工具箱之類的維護光碟片應該不陌生了,作為企業,網吧網管,隨手準備這樣的光碟片真的是能解決很多問題。對於網刻,相信很多人也有所瞭解。但是,在網吧/公司維護機器時。基本上面對的都是無光碟機的機器,如果要用這些工具,只能是關機接上一個光碟機,雖然也有USB TO IDE的轉換線可以把台式機的光碟機變成USB介面的,但受限於主板的相容性以及外置電源供電的穩定性。有時候會出這樣那樣的問題。那麼,如何更快速的開始我們的工作呢,答案是將這些工具移植到網路上一台伺服器上,客戶機利用PXE BOOT功能來得到一個菜單,來使用這些功能。如:

     對於絕大部分機器來說,目前都整合了PXE BOOT功能,開機按F12即可從網卡啟動,部分8139的網卡可能是SHIFT+F10來進入PXE BOOT的設定菜單來管理這項功能。關於PXE BOOT的原理,在上一篇文章中已經講過。http://coolerfeng.blog.51cto.com/blog/133059/48801 本文所實現的功能,在windows平台下有大量的第三方開發的軟體可以實現,別人開發的軟體始終難以完全滿足我們自己的需求,因此,我們可以利用LINUX平台自己DIY一個同樣功能的工具出來。       下面說一下安裝過程。LINUX下需要安裝TFTP,DHCP,SAMBA服務。dhcp和samba可以用RPM安裝,但是rpm安裝的tftp-server有一些bug,因此我們要用源碼安裝tftp-server從http://www.kernel.org/pub/software/network/tftp/下載tftp-server的最新源碼,然後打上patch,(http://oss.netfarm.it/guides/ris-linux-0.3.tar.gz)#wget http://www.kernel.org/pub/software/network/tftp/tftp-hpa-0.48.tar.gz#wget http://oss.netfarm.it/guides/ris-linux-0.3.tar.gz#tar zxvf tftp-hpa-0.48.tar.gz#tar zxvf ris-linux-0.3.tar.gz# cd tftp-hpa-0.48#patch -p1 < ../ris-linux-0.3/patches/tftp-hpa-filecase.diff #./configure --prefix=/usr/local/tftp#make#make install# mkdir /tftpboot 接下來修改

# vi /etc/xinetd.d/tftp =============+==========+===========+============+============  
service tftp  
{  
        disable = no (預設是yes,這裡改成no,啟用它)
        socket_type             = dgram  
        protocol                = udp  
        wait                    = yes  
        user                    = root  
        server                  = /usr/local/tftp/sbin/in.tftpd//改成源碼編譯安裝產生的開機檔案  
        server_args             = -v -m /tftpboot/rules -s /tftpboot //-s 表示用/tftpboot作為tftp目錄的根目錄. -v開啟日誌在/var/log/messages便於調試, -m 指定重新導向規則
        per_source              = 11  
        cps                     = 100 2  
        flags                   = IPv4  
}  接下來建立tftp的rule檔案vi /tftpboot/rules ri ^[a-z]: # Remove "drive letters"  
rg \\ / # Convert backslashes to slashes  
rg \# @ # Convert hash marks to @ signs  
rg /../ /..no../ # Convert /../ to /..no../  
rg A a  
rg B b  
rg C c  
rg D d  
rg E e  
rg F f  
rg G g  
rg H h  
rg I i  
rg J j  
rg K k  
rg L l  
rg M m  
rg N n  
rg O o  
rg P p  
rg Q q  
rg R r  
rg S s  
rg T t  
rg U u  
rg V v  
rg W w  
rg X x  
rg Y y  
rg Z z  
r ^/(.*) \1

 

tftp是由xinted來啟動的,修改完後要記得service xinetd restart

建立rules的原因是因為tftp對大小寫敏感,而windows下檔案不分大小寫,linux下檔案分大小寫,為了統一,用這規則把所有的大寫字母轉換為小寫字母。接下來配置DHCP server# vi /etc/dhcpd.conf =============+==========+===========+============+============  
ddns-update-style interim;
ignore client-updates;
default-lease-time 21600;
max-lease-time 43200;
authourtative;
next-server 192.168.1.103;
subnet 192.168.1.0 netmask 255.255.255.0 {
    option routers          192.168.1.1;
    option subnet-mask      255.255.255.0;
    range 192.168.1.1 192.168.1.100;
    default-lease-time 21600;
    max-lease-time 43200;
    filename "/pxelinux.0";
    option domain-name-servers 202.106.0.20;
} pexlinux.0來源於syslinux這個rpm包。如果沒有安裝syslinux,你需要手動安裝這個包。我們把它複製到tftpboot目錄。# cp /usr/lib/syslinux/pxelinux.0 /tftpboot 下面建立菜單#mkdir /tftpboot/pxelinux.cfg#vi /tftpboot/pxelinux.cfg/defaultdefault menu
prompt 0  
timeout 60

 

menu title PXELINUX ADVANCED MENU SYSTEM
MENU WIDTH 80
MENU MARGIN 10
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 19
MENU ENDROW 24
MENU TIMEOUTROW 20
MENU BACKGROUND syslinux.jpg

label  local
menu label Boot From Local Disk
LOCALBOOT 0

label knoppix
kernel images/knoppix/knoppix
append ramdisk_size=100000 init=/sbin/init lang=cn apm=power-off vga=791 splash=silent  initrd=images/knoppix/knoppix.gz nfsdir=192.168.1.251:/opt/inst/knoppix nomce quiet BOOT_IMAGE=knoppix

label rhel4-i386
menu label RHEL 4 AS U4 i386  nfs(192.168.1.251:/opt/inst/r4)
kernel images/redhat/vmlinuz-rhel4-i386
append initrd=images/redhat/initrd-rhel4-i386.img devfs=nomount ramdisk_size=9216 text

label rhel4-x86_64
menu label RHEL 4 AS U4 x86_64  nfs(192.168.1.251:/opt/inst/r4-64)
kernel images/redhat/vmlinuz-rhel4-x86_64
append ks=nfs:192.168.1.240:/opt/inst/ks/ks4-x86_64 initrd=images/redhat/initrd-rhel4-x86_64.img devfs=nomount ramdisk_size=9216

label rhel5-i386
menu label RHEL 5 i386  nfs(192.168.1.251:/opt/inst/r5)
kernel images/redhat/vmlinuz-rhel5-i386
append ks=nfs:192.168.1.240:/opt/inst/ks/ks5 images=images/redhat/vmlinuz-rhel5-i386 initrd=images/redhat/initrd-rhel5-i386.img devfs=nomount ramdisk_size=9216

label rhel5-x86_64
menu label RHEL 5 x86_64  nfs(192.168.1.251:/opt/inst/r5-64)
kernel images/redhat/vmlinuz-rhel5-x86_64
append ks=nfs:192.168.1.240:/opt/inst/ks/ks5-x86_64 images=images/redhat/vmlinuz-rhel5-x86_64 initrd=images/redhat/initrd-rhel5-x86_64.img devfs=nomount ramdisk_size=9216

label clonezilla
menu label Boot a clonezilla
kernel images/clonezilla/vmlinuz
append initrd=images/clonezilla/initrd.gz boot=casper netboot nfsroot=192.168.1.240:/opt/inst/clonezilla

label ping
menu label Boot ping
kernel images/ping/kernel
append vga=normal devfs=nomount pxe ramdisk_size=33000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=images/ping/initrd.gz root=/dev/ram0 rw noacpi noapm pci=noacpi lba acpi=off apm=off nfsroot=192.168.1.240:/opt/inst/ping

label floppy
menu label Boot a DOS 7.0 floppy disk with ghost2003
kernel images/floppy/memdisk
append initrd=images/floppy/fd.img

label ghost83
menu label Boot Ghost8.3
kernel images/ghost83/memdisk
append initrd=images/ghost83/ghost83.img

label win2k3
menu label Windows 2003 pxe install
kernel w2k3.0

LABEL winpe
menu label WindowsPE with Office  
kernel winpe.0

label menu
menu hide
kernel vesamenu.c32

 OK,到這裡,菜單就好了,菜單內容可以自己編輯修改,背景圖片syslinux.jpg可以自己替換。接下來,開一個vmware。啟動,然後按F12。應該可以看到剛才我發的那個圖片樣子的菜單了,如果有問題,請自己根據/var/log/messages下的log來排錯。有了菜單,但每個菜單依然不能用,我們還要去定義每一個項目 由於時間關係。。。敬請期待續集。。。。。。。。。嘿嘿

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.