[SOLVED] RE: iPXE & WDS [Prestaged: false] - Printable Version +- iPXE discussion forum (https://forum.ipxe.org) +-- Forum: iPXE user forums (/forumdisplay.php?fid=1) +--- Forum: General (/forumdisplay.php?fid=2) +--- Thread: [SOLVED] RE: iPXE & WDS [Prestaged: false] (/showthread.php?tid=7242) |
[SOLVED] RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-20 10:04 Hi! I`am trying to boot to an WDS Server. But the WDS Server rejects it. Directly from from pxe (without iPXE) it works. Code: dhcp This works, WDNBP is loaded, and then it tries to load the pxeboot.n12 where it stucks... On the WDS-Server i have the following Event: EVENT ID: 4096 PRESTAGED: false RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-20 15:10 some more details..... PXE ----> WDS = OK! iPXE ----> WDS = FALSE! PXE ----> PXELINUX ---->iPXE --> WDS = FALSE! Every time the same problem. I have also tried to boot directly with autoboot from the ipxe.iso, same problem. RE: iPXE & WDS [Prestaged: false] - BAUR-ITCS - 2014-03-21 17:32 Hi, funny, I just ran into the same problem today. What solved it for me was performing the steps listed under "If you are using WDS without SCCM 2007" at http://windowsdeployments.net/how-to-speed-up-pxe-boot-in-wds-and-sccm/ : On the WDS server find the file default.bcd in the \REMOTEINSTALL\Boot\x86 folder (This was the folder you setup when you configured WDS) Copy default.bcd from the \REMOTEINSTALL\Boot\x86 folder to the local C:\ drive Then from a command line type: Bcdedit -store c:\default.bcd -set {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdisktftpblocksize 16384 Make a copy of the original \REMOTEINSTALL\Boot\x86\default.bcd file by changing the extension to default.bcd.backup Copy the c:\default.bcd back to it’s original location at \REMOTEINSTALL\Boot\x86 Now repeat steps 1 thru 5 for the \REMOTEINSTALL\Boot\amd64\default.bcd Then on the WDSServer from a command prompt type: Sc control wdsserver 129 Though for good measure, I manually stopped and started the WDSServer in addition to that. In short, the client doesn't *stop* at the TFTP boot stage for pxeboot.n12, it just becomes incredibly slow due to a wrong tftp packet size. I saw that as the NIC activity indicator kept flashing although there was no other traffic to be expected on the network I was testing it on. Currently, I'm using the following parameters to boot in addition to applying the above fix: dhcp ; set 252:string \Boot\BCD ; imgexec tftp://${next-server}/Boot\x86\wdsnbp.com Note that there are ways to make this work with x86 and x64 by turning this into a script and changing it like this: cpuid --ext 29 && set arch x64 || set arch x86 dhcp set 252:string \Boot\BCD imgexec tftp://${next-server}/Boot\${arch}\wdsnbp.com I will now try if applying the patch above also allows for running ipxe without passing any parameters. -Stefan RE: iPXE & WDS [Prestaged: false] - BAUR-ITCS - 2014-03-21 20:39 (2014-03-21 17:32)BAUR-ITCS Wrote: I will now try if applying the patch above also allows for running ipxe without passing any parameters. And tadaa, it does. You don't need to pass any funny options to ipxe after applying the WDS-server-side patch as described above. -Stefan RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-22 13:49 Ok, i will try the patch on Monday. That makes sense at all, because normal PXE was working very well :-) Does it works normal only over PXE? We have an WDS with RPK running over here.... big thanks!!!!! RE: iPXE & WDS [Prestaged: false] - BAUR-ITCS - 2014-03-22 16:49 (2014-03-22 13:49)KingBonecrusher Wrote: Does it works normal only over PXE? I haven't seen any negative side effects from that patch when not using iPXE, but then again, I'm not a production user of WDS, I only have a test environment. My guess is that something in the WDS code that gets loaded and executed via PXE sets the TFTP packet size to a useful, high value, but only if it hasn't been set before, and iPXE sets that before transferring control (this is my theory; I haven't looked at the iPXE source to verify that that is what's actually happening). (2014-03-22 13:49)KingBonecrusher Wrote: We have an WDS with RPK running over here.... Not sure what RPK is, care to explain? -Stefan RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-22 18:37 Quote:Not sure what RPK is, care to explain? RPK is Refurbisher Preinstallation Kit. Nice Frontend for managing images, drivers etc... RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-24 07:12 Very sad, hasn`t solved my problem. It stucks at the same position :-( RE: iPXE & WDS [Prestaged: false] - BAUR-ITCS - 2014-03-24 08:13 (2014-03-24 07:12)KingBonecrusher Wrote: Very sad, hasn`t solved my problem. It stucks at the same position :-( Did you only try the solution I quoted in my message, or did you follow the link I posted and check the other options listed there, too? As I've never seen RPK, maybe it's a SCCM in disguise, so one of the fixes listed for the WDS + SCCM works for you? -Stefan RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-24 12:59 I have only WDS, no SCCM. I have applied the patches to the bcd files. I have used your code... Code: dhcp Normally i have loaded the wdsnbp.com from an alternate server, direct loading fails instantly.... :huh! Ipxe show the following error code: (Error code 3d1260) -> Error: Inappropriate I/O control operation case TFTP_ERR_ILLEGAL_OP: return -ENOTTY; RE: iPXE & WDS [Prestaged: false] - BAUR-ITCS - 2014-03-24 23:01 Don't use Code: dhcp a) I only used that during my experiments, but it doesn't do any good. b) you're missing the part that populates {$arch}, so it is bound to fail*. Either pass no parameters to iPXE at all or use what you previously used, I'd say. -Stefan * that part would be Code: cpuid --ext 29 && set arch x64 || set arch x86 RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-24 23:44 Hi Stefan Yes, sure ;-) I know, but if the file is not found, you get an file not found message instead of 3d1260, even if the path is wrong or with non existent variables. It seems that the wds-tftp rejects ipxe request completely. I`ve tried: Code: dhcp I`ve compiled a debug version, maybe this gives me a hint... RE: iPXE & WDS [Prestaged: false] - BAUR-ITCS - 2014-03-24 23:52 (2014-03-24 23:44)KingBonecrusher Wrote: It seems that the wds-tftp rejects ipxe request completely. Not in general, as iPXE and WDS work as expected in my test environment. Are you sure it isn't related to you using literal backslashes? I'm rather sure I saw examples that used %5C instead. Also, in the picture you posted at the beginning of the thread, you're loading a wdsbnp.com from the x86 directory, then you try to TFTP pxeboot.n12 from the x64 directory. Seems a bit odd to me. Maybe your best bet is to use iPXE interactively and go through the steps manually, possibly with tcpdump on the wire, to see what's actually happening "behind the scenes". -Stefan [SOLVED] RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-25 09:04 Hi Stefan! It must be an issue with iPXE. It works now, but not with iPXE, i`am using pxelinux and pxechn.c32! First try, SUCCESS!! Code: LABEL wdschk It works like it should.... :-) RE: iPXE & WDS [Prestaged: false] - BloodFox - 2014-03-29 02:57 (2014-03-24 12:59)KingBonecrusher Wrote: I have only WDS, no SCCM. I have applied the patches to the bcd files. I have used your code... i got this error too, and i know why: iPXE send TFTP Request is this: /Boot\${arch}\wdsnbp.com the "/" is reason, WDS TFTP dosn't locate "/", but "\" or "" is ok so, modify source code tftp.c static int tftp_send_rrq ( struct tftp_request *tftp ) { const char *path = tftp->uri->path; modify to: static int tftp_send_rrq ( struct tftp_request *tftp ) { const char *path = tftp->uri->path + 1; BTW: i'm sorry, my english is very poor. RE: iPXE & WDS [Prestaged: false] - KingBonecrusher - 2014-03-31 09:42 (2014-03-29 02:57)BloodFox Wrote:(2014-03-24 12:59)KingBonecrusher Wrote: I have only WDS, no SCCM. I have applied the patches to the bcd files. I have used your code... I will try it! Could be the problem! But at all, take a look on pxechn.c32, works really nice here! |