Jump to content











Photo
- - - - -

PXE boot 45MB Stripped Down XP PE for Ghosting


  • Please log in to reply
52 replies to this topic

#26 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 04 September 2009 - 04:28 PM

Here are the memdisk 3.8.2 loading output from 4 units. I changed syslinux.cfg to PROMPT 1 so I could check this info.

Lenovo Laptop - Reboots

Ramdisk at 0x3c4c0000, length 0x03200000
command line: initrd=MINIXP.IMA BOOT_IMAGE=memdisk
MEMDISK: Image seems to have fractional end cylinder
Disk is hd0, 51200 K, C/H/S = 6/255/63
Using safe INT 15h access to high memory
Total size needed = 2490 bytes, allocating 3K
Old dos memory at 0x9ec00 (map says 0x9ec00), loading at 0x9e000
1588: 0xffff 15E801: 0x3c00 0x3b4c
INT 13 08: Success, count = 1, BPT = 0000:0000
old: int13 = f000621f int15 = f0006224 int1e = f000efc7
new: int13 = 9e00000a int15 = 9e00037f int1e = f000efc7

Loading boot sector... booting...

MSI NetBook - Trap 00000006 - Exception

Ramdisk at 0x18d20000, length 0x03200000
command line: initrd=MINIXP.IMA BOOT_IMAGE=memdisk
MEMDISK: Image seems to have fractional end cylinder
Disk is hd0, 51200 K, C/H/S = 6/255/63
Using safe INT 15h access to high memory
Total size needed = 2334 bytes, allocating 3K
Old dos memory at 0x9f800 (map says 0x9fc00), loading at 0x9ec00
1588: 0xffff 15E801: 0x3c00 0x17d2
INT 13 08: Success, count = 1, BPT = 0000:0000
old: int13 = f0008348 int15 = f000f859 int1e = f000efc7
new: int13 = 9ec0000a int15 = 9ec0037f int1e = f000efc7

Loading boot sector... booting...

eMachine Desktop - Works

Ramdisk at 0x34cc0000, length 0x03200000
command line: initrd=MINIXP.IMA BOOT_IMAGE=memdisk
MEMDISK: Image seems to have fractional end cylinder
Disk is hd0, 51200 K, C/H/S = 6/255/63
Using safe INT 15h access to high memory
Total size needed = 2382 bytes, allocating 3K
Old dos memory at 0x9f000 (map says 0x9f800), loading at 0x9e400
1588: 0xffff 15E801: 0x3c00 0x33cc
INT 13 08: Success, count = 1, BPT = 0000:0000
old: int13 = f0006f30 int15 = f000f859 int1e = f000efc7
new: int13 = 9e40000a int15 = 9e40037f int1e = f000efc7

Loading boot sector... booting...

Dell 1501 - Works

Ramdisk at 0x74c50000, length 0x03200000
command line: initrd=MINIXP.IMA BOOT_IMAGE=memdisk
MEMDISK: Image seems to have fractional end cylinder
Disk is hd0, 51200 K, C/H/S = 6/255/63
Using safe INT 15h access to high memory
Total size needed = 2406 bytes, allocating 3K
Old dos memory at 0x9d800 (map says 0x9d800), loading at 0x9cc00
1588: 0xffff 15E801: 0x3c00 0x73c5
INT 13 08: Success, count = 1, BPT = 0000:0000
old: int13 = e5cb11e1 int15 = f000f859 int1e = f000efc7
new: int13 = 9cc0000a int15 = 9cc0037f int1e = f000efc7

Loading boot sector... booting...

Does this provide any insight?

#27 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7,100 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 04 September 2009 - 05:54 PM

Does this provide any insight?


Yes, you still have a "defective" base image.

Come off it, the image is 51200 K, C/H/S = 6/255/63
6x255x63x512=49,351,680

Now, let's tackle the problem "properly".

A "non-kosher" image will be:
  • booted by "good" BIOSes ONLY
  • NOT booted by "not-so-good BIOSes

LENOVO's are a "particular" kind of BIOSes, as they usually default to a "strange" nx240x63 geometry.

Is the partiion inside the image formatted as FAT32?

Or NTFS?

Or FAT16?

If FAT is it 06, 0E, 0C or 0F?

You may need to correct the partition ID, the balancing between CHS and LBA and/or the bootsectors code.

I suspect there is an added layer of complexity you are adding by using PXE before having a "kosher" image, but it seems to me like the "oirgin of all evil" is probably the image and not the PXE setup.

What you need to do IMHO is to test the thingy locally, you can use a USB stick for doing so on the sample 4 machines.

I presume that all the 4 test machines can boot from USB.

You need:
  • to create "properly" an image, without the conversions back and forth with winimage Virtual PC and what not.
  • the image should have a FAT16 partition, type 06, the proper size, balanced CHS/LBA values, a bootsector invoking SETUPLDR.BIN and SETUPLDR.BIN itself in ROOT
  • put the image on a stick, with grub4dos booting it
  • use a menu.lst like this:
    title my image
    
    map (hd0) (hd1)
    
    map (hd0)/myimage.img (hd0)
    
    map --hook
    
    find --set-root /setupldr.bin
    
    chainloader /setupldr.bin

The result will be an error from SETUPLDR.BIN, indicating that you went past actual initial booting on all four machines.

Are you running on XP or Vista or what? :D

(This info I need in order to advice you about a handy way to create the image properly.)

jaclaz

#28 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 04 September 2009 - 06:27 PM

The partiion inside the image formatted as FAT16, MSDOS formated, active.

All the units can boot from usb except for the MSI netbook. I have others I can test on too.

They all do work with the usb, the reason I had been using VirtualPC to make the images was so I could create small size disks. If there is another way to create them please let me know, the only other option I can think of would be to find a 64MB flash drive. I dont think I can shrink the bin image to under 30 megs to fit on a 32MB flash drive. I tracked down a 1GB drive so can test FAT16.

I'm running XP. but I have access to Vista if needed. and Win7 at home.

Attached Thumbnails

  • format.JPG


#29 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7,100 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 04 September 2009 - 06:57 PM

XP 32 is allright. :D

You can use my small batches allright, then:
http://www.boot-land...?showtopic=3191
Read this also:
http://www.boot-land...?showtopic=5000

They may be "ugly" but they represent a way to make sure we are "talking the same language".

Use a 255/63 geometry, choose 06 as FAT type, use your current 49351680 as image size.

After the image has been made and formatted, check with beeblebrox:
http://students.cs.byu.edu/~codyb/
or any similar utility or disk/hex editor, that the partition type has remained 06 after the format (and be prepared to change it to 0E later if needed)

Before unmounting the image, you may want to use this:
http://www.boot-land...?showtopic=2362
and change the name of the invoked loader from NTLDR to SETUPLDR.BIN.

Try the batches a couple of times, to get the hang of 'em, once you get it they work as a breeze.

jaclaz

#30 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 04 September 2009 - 07:06 PM

While I'm reading I'm testing to see if an image made from the full 1GB flash drive will boot over PXE.... lol taking a looooooong time to load. :D

#31 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1,050 posts
  •  
    Belgium

Posted 05 September 2009 - 12:58 PM

Try the MEMDISK of the last testing version of the Syslinux package (syslinux-3.83-pre10). Also update PXELINUX (not necessarily needed, but some bugs are fixed in the last PXELINUX version).

The problem that you have on the Lenovo PC is hopefully solved ;) :
Still issues... - Lenovo's and MEMDISK fails to load any floppy image - Lets tackle it!

You can add pause to the APPEND line. MEMDISK will halt before the actual booting of the image and will give you time to see the info that is displayed:
DEFAULT winpeghost

PROMPT 0



LABEL winpeghost

LINUX memdisk

INITRD yourharddisk.img

APPEND pause


#32 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 08 September 2009 - 03:22 PM

Can the mkimg.cmd be modified to allow creation of an nx240x63 image? I tried looking through the batch but couldn't see anything to change.

"LENOVO's are a "particular" kind of BIOSes, as they usually default to a "strange" nx240x63 geometry."

The new image I created with mkimg.cmd and the syslinux bootloader has fixed the fractional end cylinder error issue. Again the image loads fine on the normally working systems, but the Lenovo still reboots with no error messages. And the MSI gives the Exception error.

I'm going to keep working on this, but its getting so frustrating, going to have to go ahead and load the MSIs via USB CDROM and rely on USB for the other odd units that don't work. Getting a little behind on my deadlines. Thanks for the help so far, greatly appreciated and great learning experience. I think I'm going to give win builder a try and create a new XP PE enviroment.

#33 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 08 September 2009 - 03:39 PM

Tried BIOS update on the Lenovo and no change. MEMDISK load screen was still same as pre-flash so it did not have any effect.

#34 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1,050 posts
  •  
    Belgium

Posted 09 September 2009 - 08:27 PM

Did you update MEMDISK to the version of Syslinux 3.83-pre10?
MEMDISK of Syslinux 3.82 doesn't work on Lenovo.

#35 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 09 September 2009 - 08:40 PM

I'll try that right now. I did make sure everything was updated to 3.82, including my pxelinux stuff, but I'll give the pre10 a spin.

#36 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 09 September 2009 - 09:03 PM

That didn't change anything... yet....

Here are up to date screen shots of memdisk loading and initial grub4dos loading in debug mode. then it goes to a basic boot menu and when I boot it still gets Trap 00000006 Exception error. And as usual it works fine on all the others "compatible systems".

In the grub screen shot, its complaining about the CHS layout of the internal hard drive.

After updating everything to the latest versions my odd little PAUSE button + ENTER does not seem to work anymore, probably loading too fast and cant time it right.

Any advice on how to get more debugging information so I can try to pinpoint where the problems are ocurring?

Attached Thumbnails

  • Picture_002__Small_.jpg
  • Picture_003__Small_.jpg


#37 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1,050 posts
  •  
    Belgium

Posted 09 September 2009 - 09:43 PM

MEMDISK of Syslinux 3.83-pre10 doesn't help for the Trap 00000006 Exception error problem, but it should solve the reboot problem of the Lenovo PC with MEMDISK.
Can you confirm this?

You can try to put grldr on your tftp server and use that as main PXE bootloader instead of PXELINUX (just to rule out a possible problem with PXELINUX).

Put the following menu.lst on the tftp server:
title my image

map (hd0) (hd1)

map (pd)/myimage.img (hd0)

map --hook

find --set-root /setupldr.bin

chainloader /setupldr.bin


#38 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 09 September 2009 - 09:46 PM

OH YEAH!!!!

SOLVED!!!

I'm so dumb....

I set my pxelinux.cfg/default file to

LABEL 3
MENU LABEL ^1 GHOST MINI WIN XP/NETWORK/AHCI
MENU DEFAULT
KERNEL memdisk raw
APPEND initrd=MINIXP.ima

Now it works... on the Lenovo, the MSI, all of them.

I had seen this listed in the Syslinux/MEMDISK wiki. I dont know why I hadn't tried it.

Plus I changed anticipation window in TFTPD32 to 4092 and the image flys across the network. Now it only takes like 40 seconds to go from PXE menu to fully loaded and ready to multicast, less than a minute in total from off.

#39 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 09 September 2009 - 09:55 PM

Many thanks to Icecube, jaclaz and maanu!

I'm still going to keep trying to improve on this but now atleast I can finally get some work done.

BTW - Anyone know how to skip right to Trying to find: pxelinux.cfg/default instead of searching though all the others when the PXE is loading?

#40 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7,100 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 10 September 2009 - 07:42 AM

Happy you found the solution. :(

jaclaz

#41 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1,050 posts
  •  
    Belgium

Posted 10 September 2009 - 06:16 PM

BTW - Anyone know how to skip right to Trying to find: pxelinux.cfg/default instead of searching though all the others when the PXE is loading?

Read the PXELINUX documentation (Syslinux package /doc/pxelinux.txt).

PXELINUX will search for its config file on the boot server in the following way:

First, it will search for the config file using the client UUID, if
one is provided by the PXE stack (note, some BIOSes don't have a
valid UUID, and you might end up with something like all 1's.) This is
in the standard UUID format using lower case hexadecimal digits, e.g.
b8945908-d6a6-41a9-611d-74a6ab80b83d.

Next, it will search for the config file using the hardware type
(using its ARP type code) and address, all in lower case hexadecimal
with dash separators; for example, for an Ethernet (ARP type 1)
with address 88:99:AA:BB:CC:DD it would search for the filename
01-88-99-aa-bb-cc-dd.

Next, it will search for the config file using its own IP address
in upper case hexadecimal, e.g. 192.0.2.91 -> C000025B
(you can use the included progam "gethostip" to compute the
hexadecimal IP address for any host.)

If that file is not found, it will remove one hex digit and try
again. Ultimately, it will try looking for a file named "default"
(in lower case).

As an example, if the boot file name is /mybootdir/pxelinux.0, the
UUID is b8945908-d6a6-41a9-611d-74a6ab80b83d, the Ethernet MAC
address is 88:99:AA:BB:CC:DD and the IP address 192.0.2.91, it will
try:

/mybootdir/pxelinux.cfg/b8945908-d6a6-41a9-611d-74a6ab80b83d
/mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/mybootdir/pxelinux.cfg/C000025B
/mybootdir/pxelinux.cfg/C000025
/mybootdir/pxelinux.cfg/C00002
/mybootdir/pxelinux.cfg/C0000
/mybootdir/pxelinux.cfg/C000
/mybootdir/pxelinux.cfg/C00
/mybootdir/pxelinux.cfg/C0
/mybootdir/pxelinux.cfg/C
/mybootdir/pxelinux.cfg/default

... in that order.

Note that all filename references are relative to the directory
pxelinux.0 lives in. PXELINUX generally requires that filenames
(including any relative path) are 127 characters or shorter in length.

++++ SPECIAL DHCP OPTIONS ++++

PXELINUX (starting with version 1.62) supports the following
nonstandard DHCP options, which depending on your DHCP server you may
be able to use to customize the specific behaviour of PXELINUX. See
RFC 5071 for some additional information about these options.

Option 209 pxelinux.configfile
- Specifies the PXELINUX configuration file name.



#42 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 11 September 2009 - 02:12 PM

Yeah, I saw that but wasn't quite sure how to implement it. Would I add 209 to the first Additional Option field in TFTPD32/DHCP Settings and default or pxelinux.cfg/default to the second field?

#43 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1,050 posts
  •  
    Belgium

Posted 11 September 2009 - 02:33 PM

I never used PXELINUX myself. The PXELINUX doc assumes you are using a DHCP server running on Linux. So ask in the Tftpd32 subforum, how to do it.

#44 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 11 September 2009 - 03:11 PM

Adding 209 and pxelinux.cfg/default worked. I tried before but used a \ instead.... now it skips searching and loads right to the menu. I should probably go post a new topic, but do you know of a way to hide the transfer progress once you choose a boot option from the menu? Everything is working properly so I just want to try and give it a polished finish.

#45 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1,050 posts
  •  
    Belgium

Posted 11 September 2009 - 03:57 PM

LABEL 3

MENU LABEL ^1 GHOST MINI WIN XP/NETWORK/AHCI

MENU DEFAULT

LINUX memdisk

INITRD MINIXP.ima

APPEND raw quiet
The quiet will remove the "..." file loading progress.

But I think it isn't a good thing to do it if you have to load a large file that takes a lot of time to download (PC "seems" to hang).

#46 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 11 September 2009 - 04:10 PM

Thanks! That worked perfectly! I thought you could only use that on Linux kernels... but I guess that means it works for memdisk too. I don't worry about the watching the progress because after changing Anticipation Window in TFTPD32 to 4096 it only takes about 5 seconds to load the image now.

#47 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 11 September 2009 - 04:16 PM

:) Is there a way to hide the output from Memdisk? lol


I guess I could just blink for half a second.

#48 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7,100 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 11 September 2009 - 07:09 PM

I guess I could just blink for half a second.


Or quickly switch off/on the display. :)

jaclaz

#49 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1,050 posts
  •  
    Belgium

Posted 12 September 2009 - 09:58 PM

Is there a way to hide the output from Memdisk? lol

Yes. use this attached copy of MEMDISK (differences between the official MEMDISK and this one can be found in the source-diff dir). I modified MEMDISK 3.83-pre10 so that it won't display anything when the quiet keyword is passed to the append line, unless there is a fatal error.

The following doesn't display anything:
LABEL 3

MENU LABEL ^1 GHOST MINI WIN XP/NETWORK/AHCI

MENU DEFAULT

LINUX memdisk

INITRD MINIXP.ima

APPEND raw quiet
While the following does display everything:
LABEL 3

MENU LABEL ^1 GHOST MINI WIN XP/NETWORK/AHCI

MENU DEFAULT

LINUX memdisk

INITRD MINIXP.ima

APPEND raw
You owe me a beer :) .
I still don't recommend using quiet, because it is annoying if you have a PC that doesn't boot the image well. You can't tell quickly what is going wrong (retrieving the file, or something else).

I thought you could only use that on Linux kernels... but I guess that means it works for memdisk too.

It is not specific to the linux kernel. If Syslinux sees quiet on the APPEND line it doesn't show the file reading progress.
It is only added recently to Syslinux:
http://syslinux.zyto...rch/011823.html

Attached Files



#50 GeekToMe

GeekToMe

    Member

  • Members
  • 39 posts
  •  
    Canada

Posted 14 September 2009 - 02:50 PM

Thats incredible man. Thanks very much! ;)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users