大家对深山红叶,矮人DOS工具箱之类的维护光盘应该不陌生了,作为企业,网吧网管,随手准备这样的光盘真的是能解决很多问题。对于网刻,相信很多人也有所了解。但是,在网吧/公司维护机器时。基本上面对的都是无光驱的机器,如果要用这些工具,只能是关机接上一个光驱,虽然也有USB TO IDE的转换线可以把台式机的光驱变成USB接口的,但受限于主板的兼容性以及外置电源供电的稳定性。有时候会出这样那样的问题。那么,如何更快速的开始我们的工作呢,答案是将这些工具移植到网络上一台服务器上,客户机利用PXE BOOT功能来得到一个菜单,来使用这些功能。如下图:

   
对于绝大部分机器来说,目前都集成了PXE BOOT功能,开机按F12即可从网卡启动,部分8139的网卡可能是SHIFT+F10来进入PXE BOOT的设置菜单来管理这项功能。关于PXE BOOT的原理,在上一篇文章中已经讲过。[url]http://coolerfeng.blog.51cto.com/blog/133059/48801[/url]
本文所实现的功能,在windows平台下有大量的第三方开发的软件可以实现,别人开发的软件始终难以完全满足我们自己的需求,因此,我们可以利用LINUX平台自己DIY一个同样功能的工具出来。
下面说一下安装过程。LINUX下需要安装TFTP,DHCP,SAMBA服务。dhcp和samba可以用RPM安装,但是rpm安装的tftp-server有一些bug,因此我们要用源码安装tftp-server
从[url]http://www.kernel.org/pub/software/network/tftp/[/url]下载tftp-server的最新源码,然后打上patch,([url]http://oss.netfarm.it/guides/ris-linux-0.3.tar.gz[/url])
#wget [url]http://www.kernel.org/pub/software/network/tftp/tftp-hpa-0.48.tar.gz[/url]
#wget [url]http://oss.netfarm.it/guides/ris-linux-0.3.tar.gz[/url]
#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/default
default 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 p_w_picpaths/knoppix/knoppix
append ramdisk_size=100000 init=/sbin/init lang=cn apm=power-off vga=791 splash=silent  initrd=p_w_picpaths/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 p_w_picpaths/redhat/vmlinuz-rhel4-i386
append initrd=p_w_picpaths/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 p_w_picpaths/redhat/vmlinuz-rhel4-x86_64
append ks=nfs:192.168.1.240:/opt/inst/ks/ks4-x86_64 initrd=p_w_picpaths/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 p_w_picpaths/redhat/vmlinuz-rhel5-i386
append ks=nfs:192.168.1.240:/opt/inst/ks/ks5 p_w_picpaths=p_w_picpaths/redhat/vmlinuz-rhel5-i386 initrd=p_w_picpaths/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 p_w_picpaths/redhat/vmlinuz-rhel5-x86_64
append ks=nfs:192.168.1.240:/opt/inst/ks/ks5-x86_64 p_w_picpaths=p_w_picpaths/redhat/vmlinuz-rhel5-x86_64 initrd=p_w_picpaths/redhat/initrd-rhel5-x86_64.img devfs=nomount ramdisk_size=9216

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

label ping
menu label Boot ping
kernel p_w_picpaths/ping/kernel
append vga=normal devfs=nomount pxe ramdisk_size=33000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=p_w_picpaths/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 p_w_picpaths/floppy/memdisk
append initrd=p_w_picpaths/floppy/fd.img

label ghost83
menu label Boot Ghost8.3
kernel p_w_picpaths/ghost83/memdisk
append initrd=p_w_picpaths/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来排错。
有了菜单,但每个菜单依然不能用,我们还要去定义每一个项目
由于时间关系。。。敬请期待续集。。。。。。。。。嘿嘿

转载于:https://blog.51cto.com/pkol45/132021

PXE BOOT DIY自己的网络启动工具集合相关推荐

  1. 通过pxe从网络启动安装Windows XP

    搭建Linux系统中的PXE远程安装 Windows XP 和Linux 服务已经有很长时间了,大概折腾了一个多星期 ,Linux系统安装比较简单,已经搞定了.但是Windows XP的安装遇到了太多 ...

  2. 通过PXE从网络启动安装Windows

    系统不幸中招,系统时间被改,杀毒软件一打开就自动关闭,只要是杀毒相关的程序,一打开就都自动关闭了,打开进程管理器,发现不断有一系列名字类似(一个系统文件名加上不断递增的数字,具体名字想不起来了)的进程 ...

  3. 通过pxe从网络启动安装Windows XP - dragonbbc的专栏 - CSDNBlog

    导读: 新一篇: 光盘的文件复用 | 旧一篇: 如何在stdin(键盘)中输入EOF呢?版权声明:本文是在参考了互联网上一些文章,并以这些文章为指导在本地环境下进行操作实践,并根据操作实际情况写出来的 ...

  4. Tiny pxe网络启动--远程安装、维护系统

    Tiny pxe网络启动–远程安装.维护系统 参考文档: http://labalec.fr/erwan/?page_id=958 https://ipxe.org/docs Tiny PXE Ser ...

  5. linux 启动网络服务,Linux下网络启动服务器安装和配置方法(pxe+tftp+dhcpd)

    背景: 在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量,但是批量自动化安装服务器的基础是网络启动服务器(bootserver),下面就是网络启动服务器的安装和配置方法,供大家 ...

  6. UEFI调试网络启动-WINDOWS搭建PXE服务器

    这里使用tftpd64搭建此服务器,PXE设置两个服务器: 1.DHCP服务器:用来动态分配IP地址(同时分配子网掩码.网关.TFTP服务器地址.启动文件名.DNS服务器.时间服务器等等). 2.TF ...

  7. pxe启动工具tftpd32

    pxe启动工具tftpd32 tftpd32.exe,一个绿色的自由软件,用dhcp, tftp sever等5个服务器功能 可以很方便得用来网络启动机器. 解压缩就可以用, 启动目录下的dos.im ...

  8. 树莓派pxe网络启动官方文档(译文)

    树莓派网路启动配置方法: 该文档适用于Pi 3 和 Pi 4,需要两台树莓派,一台作为server 另一台作为client只需要一张SD卡,因为client使用网络启动 如果无法成功网络启动,请 关闭 ...

  9. 以PXE或UEFI PXE网络启动WinPE系统

    有些小伙伴,或许遇到过电脑开机系统起不来,黑屏外加英文N行,如下图: 图中最下面英文提示找不到启动设备,解决办法:建议检查硬盘,或引导甚至系统,,,本文这里谈的不是这个故障哦,请看框中部分,这些是电脑 ...

最新文章

  1. 知名大学4篇学术论文被撤!校方:已做相关取证!
  2. Access denied for user ‘root‘@‘localhost‘ (using password:YES) 解决方案
  3. android 截屏指定区域,Android截图 截取ContentView 截取指定的View并且保存
  4. jsessionid每次请求都在变_为什么每次沟通都变争吵,学会这4条沟通原则,解决90%的沟通问题...
  5. 【java】深入了解JAVA可变长度的参数
  6. paip.提升用户体验-----可访问性大原则及一些方法
  7. cocos tiledmap无法显示 不显示 无法加载
  8. 合肥工业大学机器人足球仿真robcup作业一(python实现)附代码有注释
  9. 海康摄像头录像回放功能
  10. MySQL代码错误号大全
  11. 福大计算机课程表,福州大学课程表(非全日制工程硕士研究生2015年周末班公共....doc...
  12. Android.AsyncTask
  13. [ESP8266]刷MQTT固件以及连接服务器失败的问题解决
  14. 菜鸟弟弟从零开始的爬取Bilibili弹幕的Python爬虫教程-哔哩哔哩 - ( ゜- ゜)つロ 干杯~
  15. cherry键盘G80-3000s无法使用组合快捷键
  16. 创建非模态对话框时向非模态对话框传递参数方法
  17. 安装opencv4.5.5
  18. 文心一言能成为中国版的ChatGPT吗?
  19. 存储学习之--StarWind虚拟存储配置和Linux客户端连接
  20. [ROS2 Foxy]#1.1 ROS2安装

热门文章

  1. 新手搭建阿里云FTP服务器
  2. Android开发之大位图二次採样压缩处理(源码分享)
  3. MySQL与MongoDB之SQL语法对比
  4. MVC进阶学习--HtmlHelper控件解析(一)
  5. Python 大括号和百分号
  6. mysql数据库-主主配置
  7. centos 安装php5.6
  8. nagios自定义监控API插件
  9. Ceph mon节点故障处理案例分解
  10. sql server2005 常用语句