Luke Ledgerd
2014-Nov-24 07:19 UTC
[syslinux] Windows PE booting without chainloading ipxe
Adding an option for initrdfile= boot argument to be ignored by wimboot worked just fine. They can add this patch, which is probably most sane, or syslinux could add the INITRDFILE configuration option instead of having to append the option for linux.c32 wimboot-2.4.0/src/cmdline.c @ Line ~107 } else if ( key == cmdline ) { /* Ignore unknown initial arguments, which may * be the program name. */ } else if ( strcmp( key, "initrdfile") == 0 ) { /* Ignore this to make this kernel work with sylinux */ } else { die ( "Unrecognised argument \"%s%s%s\"\n", key, ( value ? "=" : "" ), ( value ? value : "" ) ); } I can now boot Windows 8.1 Enterprise PE with Sysinux :) Luke. -----Original Message----- From: Luke Ledgerd Sent: Monday, November 24, 2014 1:10 PM To: 'syslinux at zytor.com' Subject: Windows PE booting without chainloading ipxe I have an interest in booting Windows PE from PXELinux, and it seems that wimboot from ipxe project is the solution. http://ipxe.org/wimboot MENU LABEL Windows 8.1 Enterprise PE Rescue (wimboot) com32 linux.c32 /wimboot APPEND initrdfile=/windows/win81/bootmgr,/windows/win81/boot/bcd,/windows/win81/boot/boot.sdi,/windows/win81/sources/boot.wim The initrdfile= is supported in Syslinux from patches to5.03 onwards on the mailing list but it seems wimboot has moved on from last year so the documentation on various blogs saying this can be done is obsolete. http://www.syslinux.org/archives/2012-October/018708.html What I'm trying to do is outlined here: http://www.howtogeek.com/162070/it-geek-how-to-network-boot-pxe-the-winpe-recovery-disk-with-pxelinux-v5-wimboot/ Cmdline.c in wmiboot is not happy, it's freaking out at the presence of the initrdfile= option in the boot arguments. This I'll patch now and see what happens. I'm going to go onto the ipxe chainloading way of solving this problem if I can't patch wimboot into submission. I just thought I'd let you know that it would be great if you developers could add an INITRDFILE option to the syslinux config that loads raw initrd disks the ipxe way, without appending stuff to the kernel boot argument. That way an unpatched wimboot from ipxe could be made to work. Cheers, Luke Luke Ledgerd / Internal IT Add: 156 Xa Dan II, 14th Floor, ?????????Dong Da District, Hanoi, Vietnam. Mobile Vietnam: +84 (0) 995304270 Email: luke.ledgerd at niteco.se Skype: luke-ledgerd-niteco Web: http://niteco.se
> -----Original Message----- > From: Luke Ledgerd > Sent: Monday, November 24, 2014 1:10 PM > To: 'syslinux at zytor.com' > Subject: Windows PE booting without chainloading ipxe > > I have an interest in booting Windows PE from PXELinux, and it seems that wimboot from ipxe project is the solution. > http://ipxe.org/wimboot > > MENU LABEL Windows 8.1 Enterprise PE Rescue (wimboot) > com32 linux.c32 /wimboot > APPEND initrdfile=/windows/win81/bootmgr,/windows/win81/boot/bcd,/windows/win81/boot/boot.sdi,/windows/win81/sources/boot.wim > > The initrdfile= is supported in Syslinux from patches to5.03 onwards on the mailing list but it seems wimboot has moved on from last year so the documentation on various blogs saying this can be done is obsolete. > http://www.syslinux.org/archives/2012-October/018708.html > > What I'm trying to do is outlined here: > http://www.howtogeek.com/162070/it-geek-how-to-network-boot-pxe-the-winpe-recovery-disk-with-pxelinux-v5-wimboot/ > > Cmdline.c in wmiboot is not happy, it's freaking out at the presence of the initrdfile= option in the boot arguments. > This I'll patch now and see what happens. > I'm going to go onto the ipxe chainloading way of solving this problem if I can't patch wimboot into submission. > > I just thought I'd let you know that it would be great if you developers could add an INITRDFILE option to the syslinux config that loads raw initrd disks the ipxe way, without appending stuff to the kernel boot argument. That way an unpatched wimboot from ipxe could be made to work. > > Cheers, > > Luke > > > > > Luke Ledgerd / Internal IT > > Add: 156 Xa Dan II, 14th Floor, > ?????????Dong Da District, Hanoi, Vietnam. > Mobile Vietnam: +84 (0) 995304270 > Email: luke.ledgerd at niteco.se > Skype: luke-ledgerd-niteco > Web: http://niteco.se > > > > > > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >> Adding an option for initrdfile= boot argument to be ignored by wimboot worked just fine. > They can add this patch, which is probably most sane, or syslinux could add the INITRDFILEconfiguration option instead of having to append the option for linux.c32> > wimboot-2.4.0/src/cmdline.c @ Line ~107 > } else if ( key == cmdline ) { > /* Ignore unknown initial arguments, which may > * be the program name. > */ > } else if ( strcmp( key, "initrdfile") == 0 ) { > /* Ignore this to make this kernel work with sylinux */ > } else { > die ( "Unrecognised argument \"%s%s%s\"\n", key, > ( value ? "=" : "" ), ( value ? value : "" ) ); > } > > I can now boot Windows 8.1 Enterprise PE with Sysinux :) > > Luke. > >Just a minor "presentation" change, so perhaps Michael Brown would be more receptive to accept your patch. AFAIK and FWIW, the syntax used in Syslinux ('append initrdfile=') used to work before wimboot 2.00. (PS: The "howtogeek" tutorial you linked-to has several issues. Let's not publicize it as being accurate.) --- diff U3b a/src/cmdline.c b/src/cmdline.c --- a/src/cmdline.c Fri Nov 07 02:27:56 2014 +++ b/src/cmdline.c Mon Nov 24 15:18:15 2014 @@ -104,6 +104,8 @@ /* Ignore unknown initial arguments, which may * be the program name. */ + } else if ( strcmp( key, "initrdfile") == 0 ) { + /* Ignore this keyword so to make this kernel work with sylinux */ } else { die ( "Unrecognised argument \"%s%s%s\"\n", key, ( value ? "=" : "" ), ( value ? value : "" ) ); --
Michael Brown
2014-Dec-08 15:58 UTC
[syslinux] Windows PE booting without chainloading ipxe
On 25/11/14 02:01, Ady wrote:> --- a/src/cmdline.c Fri Nov 07 02:27:56 2014 > +++ b/src/cmdline.c Mon Nov 24 15:18:15 2014 > @@ -104,6 +104,8 @@ > /* Ignore unknown initial arguments, which may > * be the program name. > */ > + } else if ( strcmp( key, "initrdfile") == 0 ) { > + /* Ignore this keyword so to make this kernel work with sylinux */ > } else { > die ( "Unrecognised argument \"%s%s%s\"\n", key, > ( value ? "=" : "" ), ( value ? value : "" ) );Thanks; applied and pushed as wimboot v2.4.1. Michael