连续2周的摸索与测试,终于网络安装linux和windows都能实现了。
相关下载链接:http://pan.baidu.com/s/1sjxwFmP
我首先用的是windows sever 2008 R2 去测试
需要的是 部署服务和 DHCP服务 windows 2008 R2 操作系统,这个在之前的文档说过了。详见
https://www.hmouse.cn/?p=3163 (后续安装有问题,有时间我会补全。)
部署服务和dhcp 以及域 服务安装都很傻瓜式,主要难的是添加驱动,不过2008 的支持比较好,可以找inf文件去添加。还有有时会有错误代码,这个也浪费了我很久时间,可以按照文档去处理即可。测试下来公司的机器可以网络部署了。
然后我主要的精力去测试linux的安装
主要的架构是 dhcp + tftp
先后测试了很多软件,譬如参照鸟哥的做法,然后发现了cobbler,cobbler还是非常好用的。最后也决定使用cobbler了。详细参照另一个文档:
cobbler 总结出来有2点:
1:简单
2:无需另外安装很多东西。
最后为了让linux的服务器安装window,我尝试了很多法子,可惜都没有像部署服务那样方便的方式。也尝试用dhcp转到windows部署服务,不过发现部署服务还想不是用tftp传文件的。所有又不行。
最后只有一个办法引导winpe。
引导winpe 我试验了2种方式,
1:按照linux的安装方式一样,引导pxelinux.0 加载,用的是 小小强Pe工具箱PXE版V4.0.rar 工具
他自带syslinux 引导,可以查看使用使用说明.txt
- .启动菜单密码的设置:
grub4dos的PXE引导,分两个步骤:
1.在服务器端“WXPE\CFG”文件夹下有个“PASSWORD”的文件,用记事本修改其中的两条“password –md5”语句,将该语句后面的字串改为你的密码。具体用途请看“PASSWORD”文件内的注释。
2.将服务器端“WXPE\CFG”文件夹下原有的“default”改名为“default1”,然后将“PASSWORD”文件改名为“default”。
只要将 WXPE 和 syslinux copy出去,再根据提示就可以启动 小小强Pe工具箱。引导文件是:pxelinux.0
LABEL winPE
MENU LABEL winPE
KERNEL WINPE/pxelinux.0
2,后来发现,syslinux可以加载iso,这真是太方便了。
参考url:http://www.laomaotao.net/new/2012/0121/448.html
-
syslinux新手入门教程
-
2012-01-21
- 1、直接引导 ISO,syslinux.cfg 文件如下:
UI vesamenu.c32([color=Red]指定图形化菜单,放在syslinux.cfg 最前面就可以了,下面省略[/color]) - LABEL PEISO-WXRS([color=Red]LABEL 后面是菜单名,随便[/color])
- LINUX memdisk([color=Red]创建虚拟磁盘[/color])
- INITRD /boot/WIN7PE.iso([color=Red]加载 .iso 文件[/color])
- APPEND iso raw([color=Red]APPEND 其实就是 把 后面的参数 追加到 上面一行结尾,这样写可能好看吧[/color])
- 2、用 ntldr 方式引导 PE,syslinux.cfg 文件如下:
LABEL PEHDD-HPY - KERNEL /boot/syslinux/chain.c32([color=Red]这东西反正可以链接的方式引导各种不同分区,MBR等[/color])
- APPEND hd0 1 ntldr=/MINIPE/LDRXPE([color=Red]hd0 1 和 后面那些 其实就是 chain.c32 的参数,靠 append 追加上去[/color])
- LDRXPE 其实是所谓的 ntldr ,其实最原始的应该是 PE的 SETUPLDR.bin 文件,经过修改改名得来。
- 究竟 ntldr 如何工作,如何修改,请参考:hi.baidu.com/whuisland/blog/item/e9955139d9cba9f43b87ce7e.html
- 3、用 ntldr 方式引导 PE,可是我的主板只支持 USB-FDD 模式,怎么办?
LABEL PEFDD-HPY - KERNEL /boot/syslinux/chain.c32
- APPEND fd0 ntldr=/MINIPE/LDRXPE([color=Red]老主板 USB-FDD 或 USB-ZIP 模式引导,会把U盘认成 fd0[/color])
- 4、从 本机硬盘启动:
LABEL HDD 1,0 - KERNEL /boot/syslinux/chain.c32
- APPEND hd1 0([color=Red]一般 情况下 是 USB-HDD 模式引导的,会把U盘认成 hd0,所以 本机硬盘是 hd1, 后面的0是指 MBR,1~4是 主分区,5往后是逻辑分区[/color])
题外话:
在syslinux菜单环境下,可以按TAB键 可以调整每个选择项的参数,不行的时候试一下就试出来了。比如 hd0 改 hd1, hd10 改 hd11。试完再琢磨是怎么回事。
我直接修改
LABEL laomaotao-PE
LINUX memdisk
INITRD iso/lmt2.iso
APPEND iso raw
这里的iso我用的是老毛桃的镜像,测试中发现必须用UEFI启动版,否则会卡在boot。不过这个加载比较慢,没有上个方法快。
记得改完之后要修改/etc/cobbler/pxe/pxedefault.template,否则下次更改配置会还原的。
- [root@localhost syslinux-6.02]# cat /etc/cobbler/pxe/pxedefault.template
UI vesamenu.c32
DEFAULT menu
PROMPT 0
MENU TITLE TOPCMM
TIMEOUT 300
TOTALTIMEOUT 6000
ONTIMEOUT $pxe_timeout_profile - LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1 - LABEL laomaotao-PE
LINUX memdisk
INITRD iso/lmt2.iso
APPEND iso raw - LABEL windows7
LINUX memdisk
INITRD iso/windows7.iso
APPEND iso raw - LABEL winPE
MENU LABEL winPE
KERNEL WINPE/pxelinux.0
$pxe_menu_items - MENU end
后续测试esx4.1用iso加载也可以,这个在cobbler测试当中是不行的。不过iso加载,等于全部加载到内存,耗时而且内存小的机器无法使用。
后续测试中发现,windows7以后的版本无法用这个方法,因为解压出来接近10G,而内存大于10G的机器比较少。不过后来测试一种新方法了。之前找到过安装winpe的方法:http://www.bromosapien.net:8080/media/index.php/Linux_Windows_PXE_Installation
(我在操作中发现制作winpe的cmd脚本有问题,可能是cmd的版本太新了吧。
for /f “Tokens=3” %%x in (‘bcdedit /store %BCDSTORE% /create /d “Windows 7 Installation” /application osloader’) do set GUID=%%x
这个脚本传参时,guid没有带过去,后来手动添加上去,才正确生成了BCD文件,否则会一直报错。
)
我当时测试是不可以的。后来发现是镜像的问题,我换成英文版的就可以了。再后来测试发现。我用windows2008 R2的winpe最好,因为他可以选择版本号。后来我通过使用windows 2008R2的部署工具制作 install.wim 和 制作有驱动的boot.wim。
我的方法是,按照前面的操作进了winpe,然后通过脚本,自动加载install.wim
自动加载参照一篇文章:http://kevinoctober.blog.163.com/blog/static/126890029201331041450772/
因为我只做出来的winpe.wim是个压缩文件,解压出来,会发现一个startnet.cmd(windows/system32/下)。原来winpe.boot(其实跟boot.wim是一个文件)会最后执行这个shell,然后根据制作winpe的办法,我在里面写了
@echo off
wpeinit
net use y: \\192.168.3.9\image
y:
setup.exe
这样就可以自动化了。
PS: 多合一install.wim的制作。
我发现在使用中用window2008 R2的安装盘最好,可以选择,那我再优化了下,通过window2008 R2导出3个我需要的版本。然后通过WimTool追加在一起(WimTool是个编辑wim的好工具,上面修改startnet.cmd也是通过这个软件修改的,不过系统必须要装window的AIK,否则无法工作)。
对了还有winpe.wim添加驱动,如果你没安装windows 2008 R2,也可以网上搜下boot.wim添加驱动的方法,或者用
X:\>net use z: \\10.100.1.1\driver The command completed successfully. X:\> E: E:\> cd network E:\network> drvload driver.inf E:\network> NETCFG -WINPE E:\network> Z: Z:\> drvload sata.inf
这个方法是winpe的制作中有的办法,等于是通过网络安装,不过这个一般安不了网卡没用,如果网卡有问题,压根无法访问samba的。
最终这个功能实现了,为了减少大家制作的错误,我将相关软件也上传上去了。
相关下载链接:http://pan.baidu.com/s/1sjxwFmP
再PS:
后来测试发现我整合的光盘有问题,访问windows7的安装会报

这个问题一直困扰着我,一直也没有发现解决办法,后来发现
http://www.lijyyh.com/2012/06/windows-7windows-server-2008-r2.html 制作多合一中,提示到license需要整合,否则会有问题,我把windows7安装盘的license copy过去,在测试,发现windows7可以安装了。
还有一个提示:那就是我安装完之后可能有些驱动会没有,我打算在安装完之后桌面放一个驱动精灵,后来测试发现,将install.wim挂载,然后在挂载的目录下Users\Public\Desktop 上放上软件安装包即可。测试中发现,windows7的桌面是有的,2008 R2的操作系统是没得。
还有就是如果相装英文版的话,必须加个语言包,否则没有英文包的话,安装会报错的。当时我解决安装windows 7 中文版 和 2008 R2 ,我就没有继续测试下去了。等以后有空的话,可以解决英文版,32位,已经2008 R2 桌面的问题。
PS:有一次不小心重装了cobbler,差点丢失文件,所以补个引导文件,其他的可以自行配置。
[root@localhost pxe]# cat pxedefault.template
UI vesamenu.c32
DEFAULT menu
PROMPT 0
MENU TITLE TOPCMM
TIMEOUT 300
TOTALTIMEOUT 6000
ONTIMEOUT $pxe_timeout_profile
LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1
LABEL laomaotao-PE
LINUX memdisk
INITRD iso/lmt2.iso
APPEND iso raw
LABEL esx4.1
LINUX memdisk
INITRD iso/esx4.1.iso
APPEND iso raw
LABEL windows7&2008 R2
KERNEL Boot/startrom.0
LABEL xiaoxiaoqiang-PE
MENU LABEL winPE
KERNEL WINPE/pxelinux.0
$pxe_menu_items
MENU end