Jump to content











Photo
- - - - -

Boot Mini Windows VHD from Network via iPXE

vhd ipxe network minixp mini7 mini8

  • Please log in to reply
68 replies to this topic

#51 pazhanii

pazhanii

    Member

  • Members
  • 57 posts
  • Location:India
  •  
    India

Posted 13 February 2015 - 12:40 PM

OK some how I managed to network boot vhd by adding grub4dos menu. But face bsod 7b. When ipxe sanhook and boot.. is it not considered as local disk? Even after xp.fix same blue screen. What can be the problem?

#52 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1918 posts
  • Location:Nantes - France
  •  
    France

Posted 13 February 2015 - 01:20 PM

share your ipxe script.

share some details about your O.S : xp? iscsi installed? firewall disabled? services set to start?



#53 pazhanii

pazhanii

    Member

  • Members
  • 57 posts
  • Location:India
  •  
    India

Posted 13 February 2015 - 04:49 PM

Thanks for reply. I re-read the forum of you again and again ..managed to boot vhd, from server 2008 with iscsi and ipxe grub4dos in to memory. Thanks for your guide.

#54 pazhanii

pazhanii

    Member

  • Members
  • 57 posts
  • Location:India
  •  
    India

Posted 04 May 2015 - 02:49 PM

Hai, erwan
Plz let know any way to boot this device vensmile ipc002 using WiFi to USB adapter. Does this device has support in bios to serve the adapter WiFi to USB as boot device? Or meegopad has support? I searched the specifications but no use. I am plainly using to boot small vhd of xp sp3 in ram using grub4dos using Intel 945gclf board but want to be more compact.

#55 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1918 posts
  • Location:Nantes - France
  •  
    France

Posted 04 May 2015 - 02:58 PM

ipxe has support for some wifi cards.

 

you may want to check their web site to see if you hw is supported.

iPXE is the leading open source network boot firmware. It provides a full PXE implementation enhanced with additional features such as:
boot from a web server via HTTP
boot from an iSCSI SAN
boot from a Fibre Channel SAN via FCoE
boot from an AoE SAN
boot from a wireless network
boot from a wide-area network
boot from an Infiniband network
control the boot process with a script
You can use iPXE to replace the existing PXE ROM on your network card, or you can chainload into iPXE to obtain the features of iPXE without the hassle of reflashing.


#56 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 17 May 2015 - 10:26 AM

First of all thank you all for the very helpful tips and discussions in this thread. Hope that i am not in the wrong section with my followig question here ?!

I just started to make the first steps booting images with PXE over the network.

So far i've set up a PXE server with tftp-hpa and isc-dhcp on a Debian Wheezy host which works without any problems

Also installed wimboot and the related files to PXE boot the Win 8.1 bootmanager (second label entry in defaults) which works fine as well and makes me quite sure PXE booting in general works in this setup.

 

My (tftproot)/pxelinux.cfg/default file looks like this:

 

DEFAULT vesamenu.c32

PATH libs
LABEL Win8.1SE   --> (stucks in grub4dos CLI)
KERNEL memdisk keeppxe
APPEND initrd=Win8.1SE_x86.ISO iso raw
LABEL Win81Boot   --> (works fine an boots 8.1 Bootloader)
com32 linux.c32 libs/wimboot
APPEND initrdfile=bootmgr,boot/bcd,boot/boot.sdi,sources/boot.wim
 
My simple goal is it to PXE boot a 32bit Win8.1SE ISO image i successfully created with the "oven cookinwithcodes" tools and which boots successfully in Virtualbox and from stick.
 
With the first label entry (defaults) it boots over the network but shortly after the start it ends up in the gru4dos command screen.  :(
I tried to combine loading the iso image with wimboot as well like booting the 8.1 bootmgr but didnt succeed so far.
Can somebody point me into the right direction which knob has to be turned here to make it work and simply boot the 32bit Win8.1SE iso image via PXE ?
Thanks a lot in advance...

Edited by aqui2, 17 May 2015 - 10:42 AM.


#57 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 17 May 2015 - 11:29 AM

Forgot to add that the PXE booting machines have no UEFI BIOS. So standard legacy BIOS mode.


Edited by aqui2, 17 May 2015 - 11:30 AM.


#58 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13600 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 May 2015 - 11:40 AM

 

With the first label entry (defaults) it boots over the network but shortly after the start it ends up in the gru4dos command screen.  :(
 

Well, that means that either the menu.lst of grub4dos is not found or it is found but contains a command that creates an error and makes grub4dos drop to command line.

You need to trouble shoot the grub4dos part of the booting.

 

:duff:

Wonko



#59 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1918 posts
  • Location:Nantes - France
  •  
    France

Posted 17 May 2015 - 11:48 AM

 

First of all thank you all for the very helpful tips and discussions in this thread. Hope that i am not in the wrong section with my followig question here ?!

I just started to make the first steps booting images with PXE over the network.

So far i've set up a PXE server with tftp-hpa and isc-dhcp on a Debian Wheezy host which works without any problems

Also installed wimboot and the related files to PXE boot the Win 8.1 bootmanager (second label entry in defaults) which works fine as well and makes me quite sure PXE booting in general works in this setup.

 

My (tftproot)/pxelinux.cfg/default file looks like this:

 

DEFAULT vesamenu.c32

PATH libs
LABEL Win8.1SE   --> (stucks in grub4dos CLI)
KERNEL memdisk keeppxe
APPEND initrd=Win8.1SE_x86.ISO iso raw
LABEL Win81Boot   --> (works fine an boots 8.1 Bootloader)
com32 linux.c32 libs/wimboot
APPEND initrdfile=bootmgr,boot/bcd,boot/boot.sdi,sources/boot.wim
 
My simple goal is it to PXE boot a 32bit Win8.1SE ISO image i successfully created with the "oven cookinwithcodes" tools and which boots successfully in Virtualbox and from stick.
 
With the first label entry (defaults) it boots over the network but shortly after the start it ends up in the gru4dos command screen.  :(
I tried to combine loading the iso image with wimboot as well like booting the 8.1 bootmgr but didnt succeed so far.
Can somebody point me into the right direction which knob has to be turned here to make it work and simply boot the 32bit Win8.1SE iso image via PXE ?
Thanks a lot in advance...

 

 

Hi Aqui2,

 

I am lost : how come you end up with a grub4dos prompt when you use pxelinux.0 as bootstrap?

Is it your iso which uses grub4dos as  bootloader?

If so, then indeed, as Wonko mentionned, your issue is not pxe boot but your iso bootloader.

 

EDIT : not sure you need the keeppxe instruction unless you have a specific plan there.

 

Regards,

Erwan



#60 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 17 May 2015 - 12:55 PM

Hi Erwan, Wonko !

 

Thanks a lot for your fast reply much apprechiated.

Right, my PXE load file is pxelinux.0 and the grub4dos loader must be included somehow in the iso. 

By the way Erwan i just tested booting the iso with iPXE as well loading undionly.kpxe (instead of pxelinux.0) from the TFTP server and issuing a "filename "tftp://my.server/Win8.1SE.iso";" which loads the iso too, but exits after loading with an error 2e008001.

 

I created the Win8.1SE iso image from scratch with just downloading the actual tool from the Win8.1SE project website and created the iso with no special or additional setting (except setting the install source directory) with just clicking the blue triangle...

The iso was created without any errors and loads fine in differnt hypervisors like Virtual Box. So i assume the grub4dos loader must be included by default in the Win8.1SE iso by the tool.

I guess that the error is maybe here that i need to set additional features in the Win8.1SE tool to build a correct iso image which boots correctly via PXE ?!

The big question for me is what button has to be set there to achieve this ?? 

 

Cheers

aqui2


Edited by aqui2, 17 May 2015 - 01:02 PM.


#61 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 17 May 2015 - 02:19 PM

Hello Erwan, Wonko !

 

Tadaaa...solved the issue !

Easy with a bit "thinking about it".... I copied the boot.wim image under /WIM directory from the Win8.1SE tools subdirectory and booted that one and that does the trick.  :thumbsup:

So if you have all required files installed for wimboot the only thing is just to tell wimboot to boot the specific WIM file from the builder tool at the end.

So finally no need to use the iso image ;-)

Btw. i also found the menu.lst file most likely for grub4dos but putting that into the tftp root did'nt help either booting the iso.

Anyway.. wimboot is the easier way to sucess.

 

Cheers

aqui2


Edited by aqui2, 17 May 2015 - 02:21 PM.


#62 erwan.l

erwan.l

    Gold Member

  • Developer
  • 1918 posts
  • Location:Nantes - France
  •  
    France

Posted 17 May 2015 - 04:29 PM

Hello Erwan, Wonko !

 

Tadaaa...solved the issue !

Easy with a bit "thinking about it".... I copied the boot.wim image under /WIM directory from the Win8.1SE tools subdirectory and booted that one and that does the trick.  :thumbsup:

So if you have all required files installed for wimboot the only thing is just to tell wimboot to boot the specific WIM file from the builder tool at the end.

So finally no need to use the iso image ;-)

Btw. i also found the menu.lst file most likely for grub4dos but putting that into the tftp root did'nt help either booting the iso.

Anyway.. wimboot is the easier way to sucess.

 

Cheers

aqui2

 

 

Hi Aqui2,

 

What about posting :

-your pxelinux script

-your menu.lst 

-you iso root structure

-you tftp root structure

 

could be helpful for people reading this thread.

 

Regards,

Erwan



#63 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 18 May 2015 - 10:29 AM

Hi Erwan !

 

Sorry, forgot that. Here are the basic steps to bring it to work....

 

sudo apt-get install isc-dhcp-server

sudo apt-get install tftp-hpa

 

Edit the /etc/defaults/tftp-hpa file and set TFTP_OPTIONS="--secure --ipv4" to prevent an error message when starting the TFTP server with IPv4 only (RaspberryPi etc.).

Syslinux 5.0.1

wget https://www.kernel.o...slinux-5.01.zip  (Make sure using 5.0.1)

Wimboot from iPXE

wget http://git.ipxe.org/...boot-latest.zip

 

Copy some files from there into the TFTP directory...

mkdir -p /srv/tftp/libs 

mkdir -p /srv/tftp/boot 
mkdir -p /srv/tftp/winpe 
mkdir -p /srv/tftp/win81se 
mkdir -p /srv/tftp/pxelinux.cfg 
cp /syslinux-5.01/com32/lib/libcom32.c32 /srv/tftp/libs/ 
cp /syslinux-5.01/com32/libutil/libutil.c32 /srv/tftp/libs/ 
cp /syslinux-5.01/com32/modules/linux.c32 /srv/tftp/libs/ 
cp /syslinux-5.01/com32/elflink/ldlinux/ldlinux.c32 /srv/tftp/ 
cp /syslinux-5.01/com32/menu/vesamenu.c32 /srv/tftp/ 
cp /syslinux-5.01/core/pxelinux.0 /srv/tftp/ 
cp /syslinux-5.01/memdisk/memdisk /srv/tftp/ 
cp /syslinux-5.01/com32/elflink/ldlinux/ldlinux.c32 /srv/tftp/  
cp /wimboot-2.4.1/wimboot /srv/tftp/libs/ 

 

Copy Windows files from an install DVD or extracted Win 8.1 eval file into the Win8.1SE tools directory:

\bootmgr —> /srv/tftp/ 

\boot\bcd —> /srv/tftp/ 
\boot\boot.sdi —> /srv/tftp/ 
\sources\boot.wim —> /srv/tftp/winpe/ 

 

The specific boot.wim files from the Win8.1SE tool can always be found here: \ISO\Targetimage\WIM\sources

and can be copied into dedicated directories on the TFTP server.

 

This is the /pxelinux.cfg/default file:

DEFAULT vesamenu.c32 

PATH libs 
LABEL Win8.1PE 
COM32 linux.c32 libs/wimboot 
APPEND initrdfile=bootmgr,boot/bcd,boot/boot.sdi,winpe/boot.wim 
LABEL Win8.1SE 
COM32 linux.c32 libs/wimboot 
APPEND initrdfile=bootmgr,boot/bcd,boot/boot.sdi,win81se/boot.wim 

 

That basically needs to be added in the DHCP Server:

allow booting; 

allow bootp;  
next-server 10.2.0.100; 
filename "pxelinux.0";

 

So the above one works fine that way. Booting the ISO fails, ether if you have the menu.lst file in the TFTP root or not.

My guess is a probably wrong or missing directory structure on the TFTP server but not sure.

Content of menu.lst is the following and direktly taken from the Win8.1SE tool:

default 0

timeout 5
gfxmenu /Boot/GFXBoot.gfx
 
title Win8.1SE
chainloader /BOOTMGR
 
title MemTest86+ 4.20
kernel /Boot/IMG/MEMTEST.BIN
lock
 
title Plop Boot Manager
kernel /Boot/IMG/PLPBT.BIN
lock
 
title Boot from Hard Disk
rootnoverify (hd0)
chainloader +1
 
iftitle [if exist (hd0,0)/bootmgr] Load Microsoft Windows Vista/Win7/Win8 from Hard Disk
root (hd0,0)
chainloader (hd0,0)/bootmgr
 
iftitle [find --ignore-floppies --ignore-cd /bootmgr] Find and Load BOOTMGR of Windows Vista/Win7/Win8
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr
iftitle [find --ignore-floppies --ignore-cd /ntldr] Find and Load NTLDR of Windows NT/2K/XP
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
 
iftitle [find --ignore-floppies --ignore-cd /cmldr] Find and Load CMLDR of Windows NT/2K/XP
find --set-root --ignore-floppies --ignore-cd /cmldr
chainloader /cmldr
 
iftitle [find --ignore-floppies --ignore-cd /io.sys] Find and Load IO.SYS of Windows 9x/Me
find --set-root --ignore-floppies --ignore-cd /io.sys
chainloader /io.sys
 
iftitle [find --ignore-floppies --ignore-cd /sbin/init] Find and Boot Linux with menu.lst already installed
find --set-root --ignore-floppies --ignore-cd /sbin/init
configfile /Boot/grub/menu.lst
 
title CommandLine
commandline
 
title Reboot
reboot
 
title Halt
halt

Edited by aqui2, 18 May 2015 - 10:49 AM.


#64 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13600 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 18 May 2015 - 04:56 PM

This:

 

title Win8.1SE
chainloader /BOOTMGR

 

which is the "short version" of the more proper:

 

title Win8.1SE
chainloader ()/BOOTMGR

 

since the () means "current root" equates to "no matter which is the current root device/volume, attempt to chainload the /bootmgr on it".

 

It is clear that in this case there is no "proper" root established, you need to have grub.exe (which is both a DOS executable and a Linux "kernel" and as such chainloadable form pxelinux) and a menu.lst , something *like*:

http://diddy.boot-la...s/files/pxe.htm

 

title Load 8.1 SE ISO

map --mem (pd)/Win8.1SE_x86.ISO (0xff)
map --hook
root (0xff)
chainloader /BOOTMGR

 

 

:duff:

Wonko


  • aqui2 likes this

#65 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 18 May 2015 - 05:13 PM

Mille grazie per la tua risposta !

 

Bet this is the solution. I'll give it a try and change this and let you know.



#66 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 19 May 2015 - 07:09 AM

Ciao Wonko !

 

You were exactly right ! 

Your above change in the menu.lst file did exactly the trick and now the PXE server boots also the ISO image !!  :thumbsup:

 

So what i have done is created a menu.lst subdirectory in the TFTP root. Copied the menu.lst file in that directory and renamed it default like in the description of your above provided link.

I changed the old title description with your provided changes:

title Load 8.1 SE ISO

map --mem (pd)/Win8.1SE_x86.ISO (0xff)

map --hook
root (0xff)
chainloader /BOOTMGR

 

and that was it ! PXE now boots the ISO without any issues. So thanks a lot for pinpointing to that solution. I guess every ISO image now can be booted that way.

Interesting here is that after booting the ISO image the PXE client jumps into the Grubloader menu and continues booting while showing:

[0M/401M].....

[8M/401M].....

[16M/401M].....

....

Do you know what those entries mean and can they probably be supressed with a command ?

 

Cheers

/aqui



#67 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13600 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 19 May 2015 - 10:04 AM

I guess every ISO image now can be booted that way.

Wrong guess :(.
Most will, many won't, TANSTAAFL!:
http://reboot.pro/to...all-iso-images/

We can say losely that any .ISO that can be booted locally through mapping to (hd32) or (0xff) grub4dos virtual CD-like device is likely to work if residing on the (pd) device when PXE booting.

Interesting here is that after booting the ISO image the PXE client jumps into the Grubloader menu and continues booting while showing:
[0M/401M].....
[8M/401M].....
[16M/401M].....
....
Do you know what those entries mean and can they probably be supressed with a command ?


Well, you are running a command:
map --mem (pd)/Win8.1SE_x86.ISO (0xff)
the "map --mem" can be read as "download and copy to memory" what you see is the progress in the copying of the image to RAM, you can try to redirect that output to the nul device, but with a 400 Mb imsge it will take some time, so you would be looking for several seconds at a blank screen instead of seeing the loading progress.
Maybe you could load a graphical image as splashscreen to avoid the "blank".

:duff:
Wonko

#68 aqui2

aqui2
  • Members
  • 8 posts
  •  
    Germany

Posted 25 May 2015 - 10:07 AM

Thanks a lot Wonko for clarifying this !



#69 Killerwolf91

Killerwolf91
  • Members
  • 1 posts
  •  
    Hungary

Posted 10 June 2015 - 07:18 PM

Hi everybody.

 

Firstly, sorry for my english, but I try to be clear as possible.

 

So I would like to boot a Windows 7 VHD image from network without RAMDISK (I've readed the posts, I can and I will do it) but before I start to build my Windows 7 VHD image I have a few question:

 

-->I can change files on booted windows 7 vhd image on the client PC? (for example, install drivers -sound- vga). If yes it possible to make sure that these changes will be disappear on the next boot form this VHD (so work like a deepfreezed windows which always boot back on restart to the original image)? If no what can be my way to do this? I know that this request is so easy but I try to explain why I need this:

 

I would like to make a windows 7 VHD image with a few standard test-application and system stability stress test apllication. I can't use RAMDISK because the target PCs always  changed form time to time with differrent HW specifications (more/less memory, sometimes less than 2Gb). Because I must to collect some data form it (HW stats, temperatures) and I must to run a few specified test (VGA test --> I need vga driver, Sound test -->I need soundcard driver,....) so I must to write to somewhere (install drivers, use temp files). I can't write to the PC's HDD because I didn't want to access it (reasons: data privacy, sometimes it is missing or bad). The simpliest way is to install a "TEST" HDD to the tested PC but sometimes I can't do it or hard to remove and repalce it. So what is the methode to install drivers and use temp fiels on the client PC's booted windos 7 vhd image?

 

Thank you for the future answers and if something is not clear please say it to me and I try to use different words.

 

Thank you again and have a good day.







Also tagged with one or more of these keywords: vhd, ipxe, network, minixp, mini7, mini8

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users