admin 管理员组文章数量: 887021
2024年3月5日发(作者:php源码 房产中介)
局域网电脑用Freenas搭建网启服务器重装操作系统
关键词:freenas,pxe,ipxe,ghost,wim,winpe,系统重装
运行硬件环境:有线局域网,服务器一台,支持pxe启动的电脑客户端。
解决方案:使用freenas搭建网启服务器,客户端通过pxe,ipxe启动winpe系统,还原以前保存在freenas上的操作系统备份,完成系统重新安装。
优点:稳定快捷方便,有网络即可以完成系统重装。
缺点:需要电脑硬件支持,部分旧电脑不支持pxe,多台同时安装,速度降低,占用网络带宽。
单位旧电脑安装windows系统,使用一段时间,用户不善于自己维护电脑,程序安装的多,不清理导致开机运行速度降低,经常为电脑重装操作系统,有时忘记拿安装盘,电脑里又没有备份,用网络启动,从服务器下载备份安装操作系统,使用百兆网络传输几个G文件速度慢,今年网络升级改造成千兆网络,于是重新搭建网启服务器。用freenas搭建因为它比较稳定,停电后能重新启动,不用手工干预。Ipxe还支持http协议传输winpe镜像文件,
freenas上面正好有http服务,同时他本身是存储服务器,将不同型号的电脑备份镜像以及维修工具软件存在上面。捣鼓了一周时间才弄好。
一、下面是启动过程截图:
1. 电脑开机,从网卡启动。
2. 从dhcp服务器上获取ip地址,引导文件linux0引导调入默认菜单default。
3.默认引导ipxe。
4. 启动winpe,ipxe可以通过http协议下载winpe的镜像文件,这样速度比较快,新机器几十秒。
5.启动带网络驱动winpe系统,直接将网络中的镜像恢复到本机。
二、简单的搭建过程:
1.安装freenas系统。
找一个服务器,我是在esxi5上建的一个虚拟机,安装网上教程一步一步安装,设置ip地址,开启tftp,smb共享。
2. 配置ipxe。
原来是用小小强的pxe启动winpe系统。Pxe使用tftp协议下载镜像速度不快,搜索到ipxe可以使用http,ftp协议这样下载个几个G的文件也用不了几分钟。主板bios中没有刷ipxe,都是pxe,每台电脑都刷太麻烦。所以选择了网上的文章中的办法:
Chainloading iPXE
可以把iPXE当作固件刷进计算机网卡的ROM里替换掉自带的PXE,但更为常见的是通过chainloading的方式进入iPXE。
通常我们会接触到两种iPXE:iPXE firmware()和iPXE kernel image()。两者都可以用来作为bootloader引导OS安装程序,iPXE支持的命令和脚本都能在firmware和kernel中使用。 kernel相当于一个linux系统,功能更加完善,比如支持命令行操作,支持initrd等,而firmware更多是作为bootloader来使用。 在bare metal
provision的过程中,一般仅利用iPXE的bootloader功能,所以firmware和kernel都能用来加载操作系统安装程序。
下面介绍一下如何进入iPXE方法:
BIOS (burned-in PXE) => PXELINUX => iPXE Kernel ()
当计算机从网络启动时,先从TFTP下载PXELINUX作为bootloader,然后引导进入iPXE kernel。
这样可以自动引导默认default菜单,调入ipxe。PXELINUX会根据下的配置文件进行相应的引导工作。默认情况下PXELINUX按以下规则选择匹配的配置文件,根据计算机网卡的MAC地址查找配置文件,文件名的格式为以中划线-分割的16进制MAC地址。比如拥有MAC地址为88:99:AA:BB:CC:DD以太网卡(ARP类型为1)的计算机会匹配文件名为01-88-99-aa-bb-cc-dd的配置文件
如果步骤1失败,则会尝试以计算机的IP地址(大写的16进制格式)查找配置文件,比如192.0.2.91对应C000025B配置文件。如果查找失败,会移除最后一位值尝试查找C000025文件,直至查找文件名为C的文件失败。最后会选择名为default(小写)的配置文件。
这样原则上可以为每一台机器制作一个引导菜单。Pxelinux文件使用的小小强pe工具里面的pxelinux.0引导文件。Default引导菜单内容:
default menu.c32
prompt 0
menu title PXE Boot Menu
timeout 50
f1
f2
label ipxe-boot
menu label Using via iPXE booting (iPXE booting)
kernel
append initrd=
label boot-else
menu label Bypass iPXE (exit)
localboot 1
还需要几个文件,引导菜单需要设置菜单模块(通常是“menu.c32”或“vesamenu.c32”),ipxe的内核文件(从网下载的),ipxe引导菜单文件,(从网上下载的WinPE_5.1_32&64_里面找到)内容:
#!ipxe
set menu-timeout 10000
iseq ${platform} efi && set menu-default win864 || set menu-default win832
set xieyi:string http
set next-server 172.17.120.15
isset ${ip} || dhcp
:start
menu iPXE Boot Menu --${platform}--${ip}
item --gap -- --------------------------------- PE --------------------------------
item
item win832 Win8.1 Update PE x86
item
item win864 Win8.1 Update PE x64
item
item --gap -- -------------------------------- TOOL --------------------------------
item
item mem Windows Memmory Diagnostic
item test ${xieyi} ---- select change
item
item --gap -- ---------------------------- Advanced options -----------------------
item --key c config Configure settings --
c
item shell Drop to iPXE shell
item reboot Reboot computer
item --key x exit Exit iPXE and continue BIOS boot -- x
choose --timeout ${menu-timeout} --default ${menu-default} selected
goto ${selected}
:shell
echo Type 'exit' to get the back to the menu
shell
goto start
:reboot
reboot
:exit
exit
:config
config
goto start
:test
iseq ${xieyi} tftp && set xieyi http && goto start ||
iseq ${xieyi} http && set xieyi tftp && goto start ||
:mem
kernel ${xieyi}://${next-server}/boot/wimboot || goto retry
initrd ${xieyi}://${next-server}/boot/ || goto retry
initrd ${xieyi}://${next-server}/boot/bme BCD || goto retry
initrd ${xieyi}://${next-server}/boot/Fonts/segmono_ segmono_ || goto
retry
initrd ${xieyi}://${next-server}/boot/Fonts/wgl4_ wgl4_ || goto retry
initrd ${xieyi}://${next-server}/boot/ || goto retry
boot || goto retry
goto start
:win832
set pefile
goto bootpe
:win864
set pefile
goto bootpe
:winefi
initrd ${xieyi}://${next-server}/EFI/Boot/ || goto retry
initrd ${xieyi}://${next-server}/boot/bcd || goto retry
initrd ${xieyi}://${next-server}/boot/ || goto retry
boot || goto retry
goto start
:bootpe
kernel ${xieyi}://${next-server}/boot/wimboot gui || goto retry
initrd ${xieyi}://${next-server}/boot/ || goto retry
iseq ${platform} pcbios || goto winefi
initrd ${xieyi}://${next-server}/boot/ || goto retry
initrd ${xieyi}://${next-server}/boot/bxe bcd || goto retry
initrd ${xieyi}://${next-server}/boot/${pefile} || goto retry
boot || goto retry
goto start
:retry
imgfree
prompt Error! press any key to retry
goto start
成功引导ipxe后出现菜单内容,启动winpe使用wimboot来引导WinPE的.wim镜像
wimboot提供了一下几个优点:
1.
高速 wimboot支持通过http下载WinPE镜像,而不受限于TFTP。以一个千兆网卡为例,典型200MBWinPE镜像耗时不超过两秒。
2.
高效 wimboot支持Windows复用被RAM盘占用的内存资源,这样就不会造成内存浪费。
3.
易用 wimboot能直接加载.wim镜像文件,不用打包成ISO或FAT文件系统的镜像。
Winboot引导winpe镜像需要的几个文件,
wimboot
bxe
(winpe的镜像文件)
以上的文件目录结构:
Tftp根目录 pxelinux.0 menu.c32
Tftp根目录syslinuxcfg default
tftp根目录boot bcd bxe wimboot
3. 使用ssh登陆freenas ,将tftpboot链接到httpboot上,这样可以使用http,tftp两种协议下载镜像文件。
4. 修改镜像文件,开机自动建立网络磁盘映射,将电脑系统备份镜像所在的目录映射到本地磁盘驱动器。
使用g工具修改
关键词定义:
PXE
PXE是Preboot eXecution Environment的简称,又称为预执行环境, 通过PXE我们可以通过网络给计算机安装操作系统。 PXE协议大致上结合了DHCP和TFTP。当计算机通过PXE启动时,通过DHCP查找合适的启动服务器,然后通过TFTP下载初始引导程序和附加文件。 现在的网卡一般都烧了PXE的固件,以支持PXE启动
gPXE
gPXE是PXE的一个开源实现(更早的实现是Etherboot)。通过gPXE能让网卡直接支持网络启动,而不依赖于网卡自带的PXE固件。同时相比PXE,gPXE支持更多的协议。 传统的PXE只能通过TFTP进行传输,而gPXE支持HTTP,iSCSI和ATA over Ethernet(AoE),甚至支持wifi链接。
iPXE
iPXE表示
it doesn't PXE。iPXE是gPXE的原班人马写的(他们从Etherboot开始),作为官方的gPXE的替代品。 gPXE扩展的功能在iPXE中都得到支持。 之所以不再使用gPXE是由于存在版权纠纷,iPXE从2010年4月开始,基于同一个代码库开始开发。
PXELINUX
Syslinux是一个优秀的系统启动加载器(bootloader),可引导自硬盘、光盘、和通过PXE的网络启动。 PXELINUX派生自Syslinux,用来使支持PXE的网卡从网络引导启动Linux。PXELINUX程序不是烧在网卡里,而是存储在TFTP服务器上。
版权声明:本文标题:局域网电脑用Freenas搭建网启服务器重装操作系统 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1709641689h542360.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论