Help - Search - Members - Calendar
Full Version: How to get a boot menu before loading BartPE?
The CD Forum > Bart's PE Builder > General
Pages: 1, 2
Raceit
What I'm after is a way to dual boot my 1GB USB flash stick. I have successfully installed (and can boot from) the Bart PE on it. But I would like a way to get a menu so I can boot right to DOS so I can run other utilities from the USB flash stick.

I can copy the io.sys, msdos.sys and command.com onto it, but I guess it’s more of a boot sector type of thing and then having some kind of a menu to choose between Bart PE and DOS.

Any ideas or thoughts?

Thanks.
ekke
QUOTE (Raceit @ May 3 2006, 02:55 PM) *
What I'm after is a way to dual boot my 1GB USB flash stick. I have successfully installed (and can boot from) the Bart PE on it. But I would like a way to get a menu so I can boot right to DOS so I can run other utilities from the USB flash stick.

I can copy the io.sys, msdos.sys and command.com onto it, but I guess it’s more of a boot sector type of thing and then having some kind of a menu to choose between Bart PE and DOS.

Any ideas or thoughts?

Thanks.


http://www.911cd.net/forums//index.php?s=&...indpost&p=98227


try that
jaclaz
You can use GRUB4DOS.

You can choose to:
1) Install "normally" NTLDR with an entry in boot.ini that points to a DOS bootsector (made with BOOTPART) and another one pointing to GRLDR + an entry in menu.lst pointing to your SETUPLDR.BIN.
2) Install directly GRLDR with an entry in menu.lst pointing to your SETUPLDR.BIN + an entry pointing to a DOS floppy image

Also check these:
http://www.911cd.net/forums//index.php?showtopic=10806
http://www.msfn.org/board/index.php?showtopic=69211&hl=

jaclaz
edborg
QUOTE (jaclaz @ May 3 2006, 06:17 PM) *
You can use GRUB4DOS.

You can choose to:
1) Install "normally" NTLDR with an entry in boot.ini that points to a DOS bootsector (made with BOOTPART) and another one pointing to GRLDR + an entry in menu.lst pointing to your SETUPLDR.BIN.
2) Install directly GRLDR with an entry in menu.lst pointing to your SETUPLDR.BIN + an entry pointing to a DOS floppy image

Also check these:
http://www.911cd.net/forums//index.php?showtopic=10806
http://www.msfn.org/board/index.php?showtopic=69211&hl=

jaclaz

I've read the above thread with instructions for WINGRUB and GRUB4DOS, but haven't been able to succeed yet. sad.gif
WINGRUB, which calls for an MBR install, doesn't give any effect to me. It creates a Grub directory and MBR backup and copies grldr as expected, but it boots as before, with no boot menu. blink.gif
GRUB4DOS, which refers to a boot.ini install, should perhaps refer to a full XP, not BartPE (unless I don't understand how this works, which is quite possible) blink.gif
Thanks for any clarification smile.gif
edborg
UPDATED: I've done some further tests with boot.ini install as well, using an USB disk with full XP, but I still have difficulties.
Could you please explain how to write the boot.ini and menu.lst entries mentioned in 1) above?
Raceit
QUOTE (jaclaz @ May 3 2006, 11:17 AM) *


I was trying some things from the thread above. He gives directions to download a drivers (which I did) and modify the inf file (which I did). After all that XP should see the removeable device as a USB hard drive. But I was never able to modify the inf file correctly so it could load that driver. I've modified inf files before, but whatever I try it won't see it as a legit driver.
jaclaz
OK, here is some info.
I am assuming that you already can boot both DOS (the one from Windows 98 aka 7.1) and PE from USB without problem.

Version 1)
NORMAL DOS INSTALL.
Format the key as usual, including SYSTEM files IO.SYS MSDOS.SYS COMMAND.COM
Verify that it boots.
Add to the key the /I386 directory
Add to the key GRUB.EXE and the following MENU.LST:
QUOTE
# This is a basic menu.lst file for GRUB4DOS

# Following is the timeout for the default choice
# By not pressing any key during the timeout, the default will be chosen
timeout 10

# Following is the menu item that will default
default 0

# This reflects the "normal" behaviour of a PC
# i.e. booting the first partition of first harddisk
# By setting it as default with timeout 10 seconds (see above)
# We try to replicate somehow the "Press any key to boot from CD..." message
# of Microsoft Install CDs, this way if no key is pressed, as an example for
# unattended installs, the system will boot "normally" even if CD is inserted
# of course if the "any" you press is [ENTER]system will boot from this entry
title Boot Hard Disk MBR on (hd0,0)
chainloader (hd0,0)+1
rootnoverify (hd0)

title NTLDR
# This entry simply tries to load a NT/Win2K/XP/2003
# system ALREADY on your hard disk using the NTLDR/NTDETECT.COM
# and boot.ini on the CD
chainloader /NTLDR

If you have your SETUPLDR.BIN renamed as NTLDR in the root directory, it should work.

Alternatively, try adding the following to menu.lst:
QUOTE
title SETUPLDR.BIN
# This entry simply tries to directly load BartPE
# from SETUPLDR.BIN in the /I386 directory
chainloader /I386/SETUPLDR.BIN
version 2)
Through NTLDR
Format the key as usual, including SYSTEM files IO.SYS MSDOS.SYS COMMAND.COM
Verify that it boots.
Copy to the stick bootpart and use it to make a bootsector with DOS Win9x code, say C:\bootsect.dat
Use bootpart to rewrite the NT/2K/XP bootsector.
Copy to the stick NTLDR and this BOOT.INI:
QUOTE
[Boot Loader]
Timeout=5
Default=C:\Bootsect.dat
[Operating Systems]
C:\Bootsect.dat="Windows 98 Command Line" /win95
C:\GRLDR="GRUB"

Add to the stick GRLDR and menu.lst

version 3)
Direct GRUB4DOS+DOS (win9x).
Format as usual, as above.
Copy to the stick GRLDR, menu.lst and bootlace.com, use it to install GRLDR as the main bootmanager in the MBR.
use the options:
--force-backup-mbr
--boot-prevmbr-first
--time-out=5
--hot-key=3920
This way if the SPACEBAR is not pressed within 5 seconds, GRLDR will boot, otherwise the normal DOS will.

The above are just examples, another way is using simply a Floppy image for the DOS booting, in this
case you need an entry in menu.lst along these lines:
QUOTE
title Win98SE (Win98SE.ima)
# This image has been set to boot using directly the GRUB bootloader
# You might also want to experiment with compressed images and memdisk
# The image is first mapped to memory as first floppy
# then Int13h is hooked
# finally the 1st sector of floppy is chainloaded and booted
map --mem /IMAGES/Win98SE.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Win98SE (Win98SE.ima.gz)
# This image has been set to boot using directly the GRUB bootloader
# This example uses a compressed image (gzipped)
# The image is first mapped to memory as first floppy
# then Int13h is hooked
# finally the 1st sector of floppy is chainloaded and booted
map --mem /IMAGES/Win98SE.ima.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Win98SE (Win98SE.imz) memdisk
# This image has been set to boot using memdisk
# Using memdisk instead of direct GRUB booting
# If the compressed image does not boot through memdisk you can always
# try to uncompress it and use it with direct GRUB booting
kernel /IMAGES/memdisk.gz
initrd /IMAGES/Win98SE.imz
Boot


Instead of the floppy image one can use a partition image, there are so many possibilities that it's impossible to list them all.

If on the stick there is also GRUB.EXE it is possible to re-start GRUB from the DOS command line without rebooting.

Please NOTE that GRUB paths/filenames are CaSe SeNsItIvE!

jaclaz
Raceit
I wanted to mess with the boot.ini again real quick. I found that if I copy the ntldr from my XP box to the root of the USB flash then I can get it to give me a menu. However I can't get it to load the BartPE regardless of how I try to edit the boot.ini file.

Right now my USB flash has these files and folders...
\minint
\minint\ntdetect.com
\minint\setupldr.bin
\minint\ntldr, etc
\Programs

boot.ini
ntldr
ntdetect.com, etc

Depending on how I change the boot.ini file around it will either lock up the pc, reboot it, or give me an error message when I select a menu option.
edborg
QUOTE (jaclaz @ May 8 2006, 08:35 PM) *
OK, here is some info.
.......
jaclaz

Thanks a lot for your info. I can now make some tests in a better way! smile.gif
The reason I asked is that I had no idea of Grub's features and syntax and couldn't find documentation on the site where I downloaded it from. I've now found a Grub's manual that, together with your clear examples above, will hopefully allow me to succeed. rolleyes.gif
edborg
jaclaz
QUOTE (Raceit @ May 8 2006, 11:50 PM) *
I wanted to mess with the boot.ini again real quick. I found that if I copy the ntldr from my XP box to the root of the USB flash then I can get it to give me a menu. However I can't get it to load the BartPE regardless of how I try to edit the boot.ini file.

Right now my USB flash has these files and folders...
\minint
\minint\ntdetect.com
\minint\setupldr.bin
\minint\ntldr, etc
\Programs

boot.ini
ntldr
ntdetect.com, etc

Depending on how I change the boot.ini file around it will either lock up the pc, reboot it, or give me an error message when I select a menu option.


Raceit,
you are missing a logical step:
1) The BOOTSECTOR (i.e. first sector of the Active Primary Partition) contains CODE that boots (under NT/2K/XP/2003) the NTLDR
2) The NTLDR has the capacity to boot (through the selection in BOOT.INI and using NTDETECT.COM) only the windows NT/2K/XP/2003 System partition, (i.e. \Winnt or \Windows) through an arcpath sintax, (i.e. something like multi(0)disk(0)rdisk(0)partition(1)\WINNT)
3) To keep compatibility with elder MS operating systems, the NTLDR has also the option to load ANOTHER bootsector; this bootsector MUST have the same geometry (dynamic data) of the main one, but can have different CODE, i.e. can load something different like the DOS files IO.SYS SDOS.SYS COMMAND.COM or another OS, or even another bootloader
4) BartPE normally boots by using a copy of SETUPLDR.BIN renamed as NTLDR or PELDR.
5) SETUPLDR.BIN behaves differently from NTLDR:
a.) It DOES NOT use the BOOT.INI settings file
b.) Searches for needed files in the \I386 directory (this is fixed, hardcoded INSIDE SETUPLDR.BIN, needs hexediting to be changed) or in the \minint one if on hard disk
c.) Reads the textsetup.SIF, or WINNT.SIF (or any other .sif file)

The way to have a BartPE selection in boot.ini is to have an alternate BOOTSECTOR, peboot.bin, that loads PELDR (i.e. a renamed SETUPLDR.BIN) INSTEAD of NTLDR.

So the booting goes like this:
1) REAL BOOTSECTOR loads NTLDR
2) NTLDR loads BOOT.INI
3) If the line invoking the ALTERNATE bootsector peboot.bin is chosen, peboot.bin loads PELDR

You cannot load anything else but an ARCPATH or a BOOTSECTOR from NTLDR/BOOT.INI! wink.gif

See these threads here:
http://www.911cd.net/forums//index.php?showtopic=2316
http://www.911cd.net/forums//index.php?showtopic=11213
http://www.911cd.net/forums//index.php?showtopic=11226
http://www.911cd.net/forums//index.php?showtopic=13930
http://www.911cd.net/forums//index.php?showtopic=14684

and this post from cdob:
http://www.911cd.net/forums//index.php?showtopic=14164&st=20

Using GRLDR or GRUB.EXE makes it possible to load DIRECTLY (i.e. chainload) NTLDR or SETUPLDR.BIN without need for renaming the latter to NTLDR or PELDR.


jaclaz
cdob
@Raceit

jaclaz wrote a fine manual already. Thanks.

A working example, use peinst tools:
USB drive letter h: at running windows. Not BartPE.
Of course, use your USB drive letter.

Extract boot sector, write boot sector file
QUOTE
D:\pebuilder\plugin\peinst>mkbt -c -x h: h:\peboot.bin
* Copy bootsector mode (-c)
* Expert mode (-x)
Reading source boot sector from "\\.\H:"
Writing boot sector back to "h:\peboot.bin"
Edit boot sector file
QUOTE
D:\pebuilder\plugin\peinst>nt2peldr.exe h:\peboot.bin
File "h:\peboot.bin" has been read
1 replacements done
Changes written back to "h:\peboot.bin"

copy h:\minint\setupldr.bin h:\PELDR

Edit h:\boot.ini, load bootsector file
QUOTE
[operating systems]C:\PEBOOT.BIN="BartPE"

C:\ is importand.
But that is not the drive letter from running windows or running PE.
That's the drive letter builded by ntldr, most likely BIOS device 0x80.
If you boot from USB, your USB device get 0x80.
This works in my case, a different BIOS may require another solution.
cdob
Update:
A nice multiboot manual: http://multiboot.solaris-x86.org
QUOTE
(C: in BIOS boot sequence)


Next step: Add recocery console.

Install recocery console at internal hard disk.
Copy \cmdcons h:\CMDCONS
Case is importand at FAT16.

Edit USB drive h:\boot.ini
CODE
[operating systems]
C:\PEBOOT.BIN="BartPE"
C:\PEBOOT.BIN="Recocery Console" /cmdcons
Boot USB drive, select BartPE or Recocery Console.

updated update:
Same USB hardware.
One machine boot BartPE and recovery console.
Another machine boot BartPE only sad.gif Recovery console dosn't find txtsetup.sif.
As known, different hardware (BIOS) may get different USB results.
Ed_P
QUOTE (jaclaz @ May 8 2006, 02:35 PM) *
QUOTE
title Win98SE (Win98SE.ima)
# This image has been set to boot using directly the GRUB bootloader
# You might also want to experiment with compressed images and memdisk
# The image is first mapped to memory as first floppy
# then Int13h is hooked
# finally the 1st sector of floppy is chainloaded and booted
map --mem /IMAGES/Win98SE.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Win98SE (Win98SE.ima.gz)
# This image has been set to boot using directly the GRUB bootloader
# This example uses a compressed image (gzipped)
# The image is first mapped to memory as first floppy
# then Int13h is hooked
# finally the 1st sector of floppy is chainloaded and booted
map --mem /IMAGES/Win98SE.ima.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Win98SE (Win98SE.imz) memdisk
# This image has been set to boot using memdisk
# Using memdisk instead of direct GRUB booting
# If the compressed image does not boot through memdisk you can always
# try to uncompress it and use it with direct GRUB booting
kernel /IMAGES/memdisk.gz
initrd /IMAGES/Win98SE.imz
Boot

The above are just examples, another way is using simply a Floppy image for the DOS booting, in this
case you need an entry in menu.lst along these lines:
Instead of the floppy image one can use a partition image, there are so many possibilities that it's impossible to list them all.

If on the stick there is also GRUB.EXE it is possible to re-start GRUB from the DOS command line without rebooting.

Please NOTE that GRUB paths/filenames are CaSe SeNsItIvE!

jaclaz

ohmy.gif huh.gif If the images are not on the c:\ drive how are they referenced?

initrd (hd0,2)/FLOPPIES/Win98.imz


root (hd0,2)
initrd /FLOPPIES/Win98.imz


map (hd0,2)
initrd /FLOPPIES/Win98.imz

??

I end up with GRUB ERROR 1 and ERROR 12s.
jaclaz
Why you use the initrd without memdisk?

QUOTE
map --mem (hd0,2)/FLOPPIES/Win98.imz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
or

QUOTE
kernel (hd0,2)/FLOPPIES/memdisk.gz
initrd (hd0,2)/FLOPPIES/Win98SE.imz
Boot


should both work

jaclaz
Ed_P
QUOTE (jaclaz @ Jun 25 2006, 03:00 PM) *
Why you use the initrd without memdisk?

Because I don't know any better. smile.gif

QUOTE (jaclaz @ Jun 25 2006, 03:00 PM) *
should both work

jaclaz

Unfortunately, neither worked. sad.gif

The 2nd one failed with Error 21: Linux kernel must be loaded before initrd.
Most likely because I don't have a memdisk.gz file and thus couldn't use the"kernel" operand.

The 1st one failed with Error 21: No such partition. I got the same error when I used (hd0,3) but I got Error 17: File not found when I used (hd0,4). The image file is on my E: drive, in the FLOPPIES folder and is named MODBOOT.imz and that is exactly what I specified in my GRUB map command:
map --mem (hd0,4)/FLOPPIES/MODBOOT.imz (fd0)

I also tried (hd0,5) with the same result.

If under GRUB I do a find /NTLDR it comes back with only (hd0,1) not (hd0,0) which is what I would expect.
jaclaz
It seems like you have TWO problems:
1) the hard disk partition(hd0,x) is somehow wrong, easier would be making multiple entries with x=1,2,3,4,5,6, etc. I cannot say more without knowing exactly how your hard disk is set
2)
QUOTE (Ed_P)
Most likely because I don't have a memdisk.gz file and thus couldn't use the"kernel" operand.

Get it from homepage:
http://syslinux.zytor.com/memdisk.php
http://syslinux.zytor.com/download.php
http://www.kernel.org/pub/linux/utils/boot...slinux-3.11.zip

You can use the file memdisk (no extension) directly or use 7zip to Gzip it to memdisk.gz

QUOTE (Ed_P)
If under GRUB I do a find /NTLDR it comes back with only (hd0,1) not (hd0,0) which is what I would expect.

It is possible that your C : partition is not first partition as seen by grub
http://djack.com.pl/Suse9hlp/ch08s04.html#sec:grub.devices

You can check the sorting order of partitions with beeblebrox and/or sort them with mbrwizard, be careful though.
Since MBRwizard does not deal with Extended Partitions and its Logical Volumes, checking them can be tricky, right now I cannot remember an easy to do way to check them (I would do it manually with an Hex/Disk Editor).

jaclaz
Ed_P
Ok, figured out the partition numbering. GRUB allocates 0-3 to the Primaries then 4-x to the Logicals. D'ol! I knew that. My E: is my 2nd Logical and should thus be (hd0,5) to GRUB. root (hd0, plus Tab shows partitions 1,4,5,6,etc. Why my primary is 1 rather than 0 I have no idea but since everything works with it as 1 I'm not going to change it. I put a dummy file in the root of E: and find /dummy found it at (hd0,5).

I downloaded the 1.6MB syslinux file and extracted the 20KB memdisk. I originally mistook the file name to be the utility that tests RAM.

Unfortunately both approaches to booting an image still don't work. They both give the Error 17: File not found for the 1st file referenced. find /FLOPPIES and find /FLOPPIES/ returned no hits. Too bad GRUB doesn't have a DIR command or a *.* option. mad.gif smile.gif
jaclaz
QUOTE (Ed_P)
find /FLOPPIES and find /FLOPPIES/

I don't think that grub can find directories.

Try the following:
find /FLOPPIES/MODBOOT.imz

Then try copying, just for the sake of it,
MODBOOT.imz to the root of your e: drive
and try
find /MODBOOT.imz

Then try copying, again just for the sake of it,
MODBOOT.imz to the root of your c: drive
and try
find /MODBOOT.imz

Are you really positive about the CaSe AlSo ?
I don't want to seem petulant, but try issuing a dir /s command on the e: drive from command prompt, or try renaming the floppy image to "image.imz".

jaclaz
Ed_P
QUOTE (jaclaz @ Jun 26 2006, 02:00 PM) *
Try the following:
find /FLOPPIES/MODBOOT.imz

Didn't find it.

QUOTE (jaclaz @ Jun 26 2006, 02:00 PM) *
Then try copying, just for the sake of it,
MODBOOT.imz to the root of your e: drive
and try
find /MODBOOT.imz

Didn't find it.

QUOTE (jaclaz @ Jun 26 2006, 02:00 PM) *
Then try copying, again just for the sake of it,
MODBOOT.imz to the root of your c: drive
and try
find /MODBOOT.imz

Didn't find it.

QUOTE (jaclaz @ Jun 26 2006, 02:00 PM) *
Are you really positive about the CaSe AlSo ?

Yes.

When I renamed it to modboot.imz and put it and memdisk on the c: drive GRUB found it.

However....

With map I get Error 14: Invalid or unsupport executable format.

With initrd GRUB pukes!! The screen fills with hex code and MEMDISK: Image has fractional end sector and MEMDISK: Image seems to have fractional end cylinder. followed by Loading boot sector... booting... and then the machine hangs. Apparently GRUB doesn't like .imz files created by Floppy Image 1.5.2. ohmy.gif mad.gif

I'll have to try some RAWrite .img files.
jaclaz
Well, the "right " way for an image is to have it as .ima or .img, in the case of a 1.44 floppy image, the size has to be 1,474,560 bytes.
Than you use your favorite compression program and you compress it either as Gzip or Zip.

Stll there is something strange, since
QUOTE (Ed_P)
I put a dummy file in the root of E: and find /dummy found it at (hd0,5).


it should have found as well /MODBOOT.imz

Try with another "generic" image, like this one:
http://weller.ws/toshiba/ghost/WIN98SE.IMG

I just tested it, and it works with BOTH methods.

Then try Gzipping or Zipping it as above.

jaclaz
Ed_P
Update:

I tried an .img image that I had created with RawWrite for Windows. The image was located on my e: drive as e:\MY UTILS\RAWrite\Win98SE.img and I made a copy to my c:\ drive. c:\Win98SE.img.

GRUB could not find the file on my e: drive, map --mem (hd0,5)/MY UTILS/RAWrite/Win98SE.img (fd0) , even when I put quotes around the folder name. However, both approaches worked when I redirected them to the c:\ drive file.

I've used GRUB to boot CDs, hds and USB keys but never an image before. Very interesting range of possibilities open up. Thanks. smile.gif

BTW The GRUB CD interface, bcdf.bin, only works if run from a floppy, is there a version that runs from USB keys or hds?


hmmmmm or GRUB boots an image of a GRUB floppy which then boots a CD. hmmmm off to play. smile.gif
Ed_P
QUOTE (Ed_P @ Jun 28 2006, 11:30 AM) *
hmmmmm or GRUB boots an image of a GRUB floppy which then boots a CD. hmmmm off to play. smile.gif

Nope, that didn't work.

chainloader (fd0)/bcdf.bin

in the .img floppy started:

Starting BCDL...

IDE/ATAPI CD-ROM Device Driver version 1.11
CD-ROM drive #0 found on 1F0h port slave device
CD-ROM drive #1 found on 170h port slave device

flashes a line that I believe says Booting followed by a line with a white background that I couldn't read quickly enough then hangs with a black/blank screen.

BTW initrd (hd0,1)/GRUB.img didn't work, File not found. It worked when I renamed the file to be grub2.img.
initrd (hd0,1)/grub2.img

The original floppy when booted allowed me to boot the BartPE CD.
jaclaz
QUOTE (Ed_P)
GRUB could not find the file on my e: drive, map --mem (hd0,5)/MY UTILS/RAWrite/Win98SE.img (fd0) , even when I put quotes around the folder name. However, both approaches worked when I redirected them to the c:\ drive file.


I don't think that names with spaces are supported.

But there must be something, cannot say what, with your drive or with the way it is formatted/partitions are listed in the MBR.

I have found something similar, (but that actually did not give normally any problem) in some occasions when using non-standard setup with Partition Magic or Acronis, but I would not try to fix it, unless you are going to reformat from scratch and restore.

QUOTE (Ed_P)
hmmmmm or GRUB boots an image of a GRUB floppy which then boots a CD. hmmmm off to play.


It seems like newest builds of GRUB4DOS have also the (cd) syntax, but cannot say if it works for booting off it or what happens if you have more than one CD drive.

Smart boot manager can be effectively chained by grub/grub4dos, and it works at least for el-torito CDs:
http://www.lrz-muenchen.de/~bernhard/grub-chain-cd.html


jaclaz
Ed_P
QUOTE (jaclaz @ Jun 29 2006, 03:34 AM) *
I don't think that names with spaces are supported.

I wonder if GRUB uses the DOS 8.3 names.

QUOTE (jaclaz @ Jun 29 2006, 03:34 AM) *
But there must be something, cannot say what, with your drive or with the way it is formatted/partitions are listed in the MBR.

Well, the drive hasn't been formated and installed fresh in a couple of years now at least. Whenever something needs to be added or moved I use Partition Magic. GRUB finds files in the root of the various drives just not in folders on drives other than C: . The file name case situation I don't understand since GRUB finds configfile /boot/EdsLsts/menuXtended.lst just fine. I use mixed case names the majority of the time.

QUOTE (jaclaz @ Jun 29 2006, 03:34 AM) *
Smart boot manager can be effectively chained by grub/grub4dos, and it works at least for el-torito CDs:
http://www.lrz-muenchen.de/~bernhard/grub-chain-cd.html
jaclaz

I've heard that. There was a posting here last fall I think about it. I've no real need to boot a CD from a non-floppy machine but since I had a backup image of my GRUB floppy and the new found means of booting it I thought I'd try it.
freelancer
I'm having some problems here... I have a 2gb harddrive with DOS 7.10 installed. It boots fine, no problem. Then I wanted to add GRUB, so I used bootpart to dump the DOS bootsector to C:\bootsector.dat. Then I used bootpart to install NTLDR, and added these lines to boot.ini:
C:\bootsector.dat="MS-DOS 7.10"
C:\GRLDR="GRUB"
(I copied GRLDR to the root of the drive, with a menu.lst file)

So far, so good, right? No. When I boot, NTLDR seems to work properly, it gives me this list:
MS-DOS 7.10
GRUB

But, when I select to boot DOS, it just shows some text and jumps back to the menu. Why? GRUB seems to work, but I can't boot to DOS with it. I'm using a line to boot the MBR at hd0,0 but that just throws me back to the NTLDR menu.

This is pretty annoying, help is much appriciated!

*edit* God I'm stupid, sorry. Of course GRUB puts me back at NTLDR, since that's the bootloader installer to the MBR at hd0,0. That still doesn't explain NTLDR not booting to DOS, though.
jaclaz
freelancer,
double-check your bootpart syntax, read these:
http://forum.winimage.com/viewtopic.php?t=278
http://forum.winimage.com/viewtopic.php?t=631

The syntax you should have used is:
QUOTE
BOOTPART WIN98 C:\BOOTSECT.DAT "Dos 7.1"
QUOTE (freelancer)
I used bootpart to dump the DOS bootsector to C:\bootsector.dat.

Bootpart does not "dump" a bootsector, it "creates" a NEW one with existing harddrive geometry.
If you use the wrong parameter, result will be a wrong bootsector, check this also:
http://forum.winimage.com/viewtopic.php?t=276

Moreover, you appear to have used a filename that is NOT 8.3 compatible, that WON'T WORK ANYWAY.

Also, you should also be able to boot Dos 7.1 from Grub, using this entry in menu.lst:
QUOTE
title Dos 7.1 from Windows 98
chainloader (hd0,0)/io.sys
boot


jaclaz
Ed_P
QUOTE (freelancer @ Jul 2 2006, 01:36 PM) *
C:\bootsector.dat="MS-DOS 7.10"
C:\GRLDR="GRUB"

Try just
CODE
C:\="MS-DOS 7.10"
C:\GRLDR="GRUB"
jaclaz
QUOTE (Ed_P @ Jul 2 2006, 09:17 PM) *
Try just
CODE
C:\="MS-DOS 7.10"
C:\GRLDR="GRUB"


Ed_P,
boot.ini syntax NEEDS a filename or an arcpath, but even if it would work with C:\, since the bootsector of C:\ is the one that loads NTLDR, it won't work. wink.gif

jaclaz
Ed_P
You're probably right. I remember the initial posting stating the the drive had DOS 7.1 on it and I have a Win2K/Win98 machine that has this for it's .ini
CODE
[boot loader]
timeout=15
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINNT="Microsoft Windows 2000 Bkup"
C:\="Microsoft Windows 98SE"
And it does work for booting Windows 98, with no filename or an arcpath. smile.gif

Since the drive doesn't have Windows on it I thought it would boot to NTLDR which would activate the boot.ini and would give the option to select DOS rather than Windows 98. I'm not that familiar with bootpart and the boot .bin/.dat files so I don't know what impact they would play. They may cause the boot process to loop.

(BTW The machine's 1st partition on the 1st hd is a recovery partition. The 2nd hd doesn't have it.)
Ed_P
QUOTE (jaclaz @ Jul 2 2006, 12:35 PM) *
Also, you should also be able to boot Dos 7.1 from Grub, using this entry in menu.lst:
QUOTE
title Dos 7.1 from Windows 98
chainloader (hd0,0)/io.sys
boot


jaclaz

I tried that and GRUB said "Error 13: Invalid or unsupported executable format".

A GRUB find /io.sys shows it to be on (hd0,1) and (hd1,1) on my dual boot machine and I got the error with both locations.
jaclaz
QUOTE
You're probably right. I remember the initial posting stating the the drive had DOS 7.1 on it and I have a Win2K/Win98 machine that has this for it's .ini
QUOTE
And it does work for booting Windows 98, with no filename or an arcpath.

Now that you mention it, yes, if I recall correctly, (I have been using Bootpart for some ten years) the situation you describe happens when you install a NT based OS after Windows 98, most probably NTLDR has a hardcoded filename, something like "bootsect.dat" or "bootsect.dos", but you should be able to find on your C:\ a 512 bytes file or maybe it simply uses a copy of the original bootsector in some "hidden" sector, maybe 6?
I'll have to do some reasearch on this.


QUOTE
I tried that and GRUB said "Error 13: Invalid or unsupported executable format".

A GRUB find /io.sys shows it to be on (hd0,1) and (hd1,1) on my dual boot machine and I got the error with both locations.
That takes us back to the "misterious" --edx switch:
http://www.911cd.net/forums//index.php?showtopic=17144

Here is from latest (2006-06-20) grub4dos docs:
QUOTE
Update 9: Directly boot NTLDR of WinNT/2K/XP and IO.SYS of Win9x/ME and
KERNEL.SYS of FreeDOS. Examples:

chainloader --edx=0xPPYY (hd0,0)/ntldr
boot

chainloader --edx=0xYY (hd0,0)/io.sys
boot

chainloader --ebx=0xYY (hd0,0)/kernel.sys
boot

Hex YY specifies the boot drive number, and hex PP specifies
the boot partition number of NTLDR. If the boot drive is
floppy, PP should be the hex value ff, i.e., decimal 255.

For KERNEL.SYS of FreeDOS, the --edx won't work,
use --ebx please.

The option --edx ( --ebx ) can be omitted if the file is in
its normal place. But in some cases, those options are needed.

If, e.g., the ntldr file is in an ext2 partition called
(hd2,8) while you want it to think of the Windows partition
(hd0,7) as the boot partition, then --edx is required:

chainloader --edx=0x0780 (hd2,8)/ntldr

For DOS kernels(i.e., IO.SYS and KERNEL.SYS), the boot
partition number is meaningless, so you only need to specify
the correct boot drive number YY(but specifying the boot
partition number is harmless).


a test with
QUOTE
chainloader --edx=0180 (hd0,1)/io.sys
boot
or

QUOTE
chainloader --edx=1180 (hd1,1)/io.sys
boot


could be interesting...

jaclaz
Ed_P
QUOTE (jaclaz @ Jul 3 2006, 08:06 AM) *
QUOTE
chainloader --edx=0180 (hd0,1)/io.sys
boot
QUOTE
chainloader --edx=0180 (hd0,1)/io.sys
boot
jaclaz

together with
QUOTE
chainloader --edx=0x0180 (hd0,1)/io.sys
boot
QUOTE
chainloader --edx=0x01 (hd0,1)/io.sys
boot
QUOTE
chainloader --edx=0x00 (hd0,1)/io.sys
boot

All yield: Error 1: Filename must be either and absolute pathname or blocklist

mad.gif
jaclaz
Hmmm, could be a problem of the release? blink.gif
Or maybe it is your "strange" setup that maps something differently? blink.gif

A new release2006-06-30 is out:
http://grub4dos.jot.com/WikiHome

What about this (last lines in README.TXT):
QUOTE
title find and load IO.SYS of Windows 9x/Me
find --set-root /io.sys
chainloader /io.sys


jaclaz
Ed_P
The find works but the chainloader gives the same Error 13.

My GRUB floppy is version 0.95 and does not use DOS.

QUOTE (jaclaz @ Jul 3 2006, 01:11 PM) *
Hmmm, could be a problem of the release? blink.gif
Or maybe it is your "strange" setup that maps something differently? blink.gif

This is a different pc than our other discussion,
jaclaz
QUOTE (Ed_P)
My GRUB floppy is version 0.95 and does not use DOS.


Well, that should explain why it does not work, mad.gif
EVERYTHING I posted here was related to the MODIFIED grub4dos, based on 0.97, besides version, grub4dos has ADDED features. blink.gif

The download file for grub4dos does include two floppy images:
fat12grldr.img
ext2grldr.img
which are however dated March 9 2006.

Why don't you download LATEST file:
http://grub4dos.jot.com/WikiHome/grub_for_...06-06-30.tar.gz
and try them, BOTH work for me under QEMU.

jaclaz
Ed_P
blink.gif unsure.gif glare.gif
Ed_P
Ok, I downloaded the file you suggested and extracted the fat12grldr.img file.

When I try the fat12grldr.img in QEMU I get a white on black GRUB menu screen with 3 finds for menu.lst, an enter commandline mode, a reboot and a halt entry.

With the image written to a floppy, I have 3 files on the floppy, a 2KB file named default, grldr and menu.lst, and when I boot it GRUB 0.97 comes up, displays something quickly about Launching GRUB and Gate A20 then displays a GRUB menu screen of black on turquoise with 5 finds (completely different than the ones under QEMU), a commandline, a floppy, a back to dos, a reboot and a halt.

The find and load IO.SYS option boots Windows 98 from the hd not the floppy.

The floppy option appears to simply reboot the floppy.

The back to dos command brings up Error 61: GRUB was not booted from DOS, or the backup copy of DOS at address x20000 is corrupt.

Overall I don't see where this GRUB uses DOS so I don't understand it's name. If it solves cesar_panter's problem it may be of some use.

BTW The GRLDR on the floppy is dated June 18, 2006, and is the same version I use on my hd, version 0.97.
jaclaz
QUOTE
When I try the fat12grldr.img in QEMU I get a white on black GRUB menu screen with 3 finds for menu.lst, an enter commandline mode, a reboot and a halt entry.
Did you load in Qemu ALSO a HD image? blink.gif
Here it works on Qemu exactly like you describe below.

QUOTE
With the image written to a floppy, I have 3 files on the floppy, a 2KB file named default, grldr and menu.lst, and when I boot it GRUB 0.97 comes up, displays something quickly about Launching GRUB and Gate A20 then displays a GRUB menu screen of black on turquoise with 5 finds (completely different than the ones under QEMU), a commandline, a floppy, a back to dos, a reboot and a halt.

Yep, that is exactly what it is supposed to happen.

QUOTE
The find and load IO.SYS option boots Windows 98 from the hd not the floppy.
Yep, unless you added IO.SYS, MSDOS.SYS and COMMAND.COM on the floppy, it would be strange if it could boot from 'em! wink.gif
But wasn't it what you were trying to do?

QUOTE
The floppy option appears to simply reboot the floppy.

Yep, that option is made to be able, when Grub/GRLDR is installed on Hard disk, to boot from floppy without changing boot order in BIOS.

QUOTE
The back to dos command brings up Error 61: GRUB was not booted from DOS, or the backup copy of DOS at address x20000 is corrupt.
Yep, that entry is useful only if you used grub.exe to load grub from WITHIN dos.

QUOTE
Overall I don't see where this GRUB uses DOS so I don't understand it's name.

I think that the project started like a "simple" Grub port to dos, with some utility to make us non-advanced linux users feel less frustrated by the original Grub setup procedure; later it was merged with some code by Gandalf (ISOEMU), and the idea of GRLDR started.

Later still, GRLDR was transformed is good-for-all boot solution, GRLDR can be used at the moment:
1) As second stage bootloader invoked by NTLDR
2) As first stage bootloader on hard and floppy disk if invoked by GRLDR.MBR
3) As a no-emulation-mode bootable CD-ROM boot image

Additionally, recently direct booting of NTLDR/SETUPLDR.BIN/CMLDR and IO.SYS has been added, which is mainly what we were trying to achieve. smile.gif

jaclaz
Ed_P
QUOTE (jaclaz @ Jul 4 2006, 12:13 PM) *
Did you load in Qemu ALSO a HD image? blink.gif

My standard QEMU test has no access to my hd but does have access to a virtual disk.

QUOTE (jaclaz @ Jul 4 2006, 12:13 PM) *
Yep, unless you added IO.SYS, MSDOS.SYS and COMMAND.COM on the floppy, it would be strange if it could boot from 'em! wink.gif
But wasn't it what you were trying to do?

If this is GRUB4DOS one would think DOS would be present somewhere.

QUOTE (jaclaz @ Jul 4 2006, 12:13 PM) *
Yep, that option is made to be able, when Grub/GRLDR is installed on Hard disk, to boot from floppy without changing boot order in BIOS.

Sounds useful for a hd install. Unfortunately it was an entry on the floppy image's menu.

QUOTE (jaclaz @ Jul 4 2006, 12:13 PM) *
Yep, that entry is useful only if you used grub.exe to load grub from WITHIN dos.

Again, I keep assuming that GRUB4DOS is on the floppy image. That is the name of the download.

QUOTE (Ed_P @ Jul 4 2006, 12:12 AM)
Overall I don't see where this GRUB uses DOS so I don't understand it's name.

And I stand by that statement.

QUOTE (jaclaz @ Jul 4 2006, 12:13 PM) *
I think that the project started like a "simple" Grub port to dos, with some utility to make us non-advanced linux users feel less frustrated by the original Grub setup procedure; later it was merged with some code by Gandalf (ISOEMU), and the idea of GRLDR started.

Later still, GRLDR was transformed is good-for-all boot solution, GRLDR can be used at the moment:
1) As second stage bootloader invoked by NTLDR
2) As first stage bootloader on hard and floppy disk if invoked by GRLDR.MBR
3) As a no-emulation-mode bootable CD-ROM boot image

Additionally, recently direct booting of NTLDR/SETUPLDR.BIN/CMLDR and IO.SYS has been added, which is mainly what we were trying to achieve. smile.gif

jaclaz

From my experience with GRLDR I like it. Maybe GRUB4DOS should be renamed to GRUB LOADER? tongue.gif

Since this floppy image appears to be simply an upgrade to my GRUB 0.95 floppy with it's stage1 and stage2 I may simply add all my menu's to it and use it instead. Does GRLDR provide CD ROM booting when on a hd? The GRUB floppy that I have uses BCDL to boot CDs and it only works if on a floppy.

What is CMLDR?
jaclaz
Yep, Grub4dos is the name of the whole project, that includes a grub.exe file which is run from dos GRLDR is one of the files.
As an example in my (yet to be released) ezGRUB4DOS project, I use GRLDR as a no-emulation image for cdrom booting, from one on the entry in menu.lst I can boot to Win98 dos, residing on a floppy image on the CD, do whatever I need to, then simply issue a command line grub.exe and I am back to menu.lst from where I can boot BartPE on the same CD or a previous operating system on HD.

QUOTE (Ed_P)
If this is GRUB4DOS one would think DOS would be present somewhere.

As said you can add the DOS files to the floppy, they are not redistrebutable in a Open Source project, if you also add grub.exe to the floppy, as said above you will be able to go bact to menu.lst without re-booting.

QUOTE (Ed_P)
I may simply add all my menu's to it and use it instead.

Yep, and it has some more options.

QUOTE (Ed_P)
Does GRLDR provide CD ROM booting when on a hd? The GRUB floppy that I have uses BCDL to boot CDs and it only works if on a floppy.


That is something that will need to be explored. dry.gif
I haven't done any testing in that direction, but the docs say that at list the "Chinese special Edition" has scdrom included, that it should just be it, maybe in a next release there will be this feature in the English version also and some more docs.
The actual version has support for (cd) in the syntax, but I never tried it, and I a also curious how it would deal with multiple cd-rom drives. blink.gif

QUOTE (Ed_P)
What is CMLDR?

It is meant to be the loader for "CMDCONS", the Recovery Console.


jaclaz
Ed_P
QUOTE (jaclaz @ Jul 5 2006, 07:45 AM) *
As an example in my (yet to be released) ezGRUB4DOS project, I use GRLDR as a no-emulation image for cdrom booting, from one on the entry in menu.lst I can boot to Win98 dos, residing on a floppy image on the CD, do whatever I need to, then simply issue a command line grub.exe and I am back to menu.lst from where I can boot BartPE on the same CD or a previous operating system on HD.

I look forward to reading your project. smile.gif

What menu commands do you use to boot the Win98 DOS floppy image on the CD?

QUOTE (jaclaz @ Jul 5 2006, 07:45 AM) *
I haven't done any testing in that direction, but the docs say that at list the "Chinese special Edition" has scdrom included, that it should just be it, maybe in a next release there will be this feature in the English version also and some more docs.

hmmm this looks promizing.

http://blog.gmane.org/gmane.comp.boot-load.../month=20040701
jaclaz
QUOTE
What menu commands do you use to boot the Win98 DOS floppy image on the CD?
The usual ones:
QUOTE
title Win98SE (Win98SE.ima)
# This image has been set to boot using directly the GRUB bootloader
# You might also want to experiment with compressed images and memdisk
# The image is first mapped to memory as first floppy
# then Int13h is hooked
# finally the 1st sector of floppy is chainloaded and booted
map --mem /IMAGES/Win98SE.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Win98SE (Win98SE.ima.gz)
# This image has been set to boot using directly the GRUB bootloader
# This example uses a compressed image (gzipped)
# The image is first mapped to memory as first floppy
# then Int13h is hooked
# finally the 1st sector of floppy is chainloaded and booted
map --mem /IMAGES/Win98SE.ima.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Win98SE (Win98SE.imz) memdisk
# This image has been set to boot using memdisk
# Using memdisk instead of direct GRUB booting
# If the compressed image does not boot through memdisk you can always
# try to uncompress it and use it with direct GRUB booting
kernel /IMAGES/memdisk.gz
initrd /IMAGES/Win98SE.imz
Boot


the
QUOTE
chainloader (fd0)+1
rootnoverify (fd0)
can be probably be substituted by

QUOTE
find --set-root /io.sys
chainloader /io.sys


but I don't see the advantage of it....

Remember that if you use mkisofs with -isolevel 4, you will need QCDROM/SHSUCDX as "normal" MSCDEX.EXE won't be able to access the Cd-rom part otherwise.

jaclaz
Ed_P
huh.gif So those commands, run from a CD install of GRLDR and read a floppy image that's on the CD. What commands do you have for booting BartPE on the CD?

What I'm looking for is how you're are getting access to the CD. If I was running these commands from the FAT12 GRLDR floppy I just created how would they access files/systems on a CD? I don't have BCDL files on the floppy nor SCDROM. And when I issue a ROOT (<tab> command from the floppy all I get are FD0 HD0 HD1 , no CD0. What does that command return for you from the CD version of GRLDR?
jaclaz
QUOTE
So those commands, run from a CD install of GRLDR and read a floppy image that's on the CD. What commands do you have for booting BartPE on the CD?
Simply

QUOTE
chainloader /peldr

the "proper" way should be
QUOTE
find --set-root /peldr
chainloader /peldr
but as the previous one works, why bother?



With a root ( tab
I get (Qemu with HD, CD and FD enabled, booted from CD):
QUOTE
Possible disks are: fd0 hd0 cd


If I do (for example)
find /ntldr

It returns
QUOTE
(cd)
But if I do a root ( tab in Qemu with HD, CD and FD enabled, booted from the grub4dos FD, I get:
QUOTE
Possible disks are: fd0 hd0


sad.gif

That's why the scdrom is needed, I think.

I will try testing the "special Chinese" edition to see if there is a difference in the above and report.

jaclaz
Ed_P
Well, with neither the GRLDR from the FAT12 image nor the GRLDR from my hd, version 0.97 both, do I have access to CD with root (<tab> on real hardware. And neither supports the bcdf.bin option either, so I guess my floppy GRUB will stick with GRUB version 0.95 and it's CD support.

The two GRLDRs did support the booting of IO.SYS, and my hd version doesn't have the A20 Gate debug msgs, so even though they indicate they are vs 0.97 they are different.
freelancer
Sorry for the late reply, I haven't worked on this (booting to DOS from NTLDR/GRUB) for a while.
@jaclaz: Both your solutions worked, thanks! smile.gif I did use the wrong syntax with bootpart, although that's not my fault (the internal help gave me the wrong syntax).
jaclaz
Newish version of grub4dos, supports cdrom --init command:
QUOTE
******************************************************************************
*** The New `cdrom' Command Syntax ***
******************************************************************************

1. Initialize the ATAPI CDROM devices:

grub> cdrom --init

2. Add IO ports for searching the atapi cdrom devices. For example:

grub> cdrom --add_io_ports=0x03F601F0

After running `cdrom --init', the cdroms can be accessed through devices (cd0),
(cd1), ...
QUOTE
2006-07-10

Imported ATAPI CDROM driver from Smart Boot Manager.

Dropped the previous implementation of SCDROM/BIOSCDROM.


smile.gif

jaclaz
Ed_P
Is it a beta? The file, grub_for_dos-0.4.1.zip. at http://grub4dos.freespaces.com/ looks to be the same thing I tried before with file dates of 12/2005 or earlier.

I've also been to http://grub4dos.sourceforge.net/ and http://www.gnu.org/software/grub/ .

If the file you mention flashes msgs about the A20 gate it's probably the same as what I tried.
jaclaz
Sorry, I did not specify the link. sad.gif

But I did before cool.gif :
http://www.911cd.net/forums//index.php?s=&...st&p=116580

http://www.911cd.net/forums//index.php?s=&...st&p=116586

And you alredy been there, unless you LIED wink.gif :
http://www.911cd.net/forums//index.php?s=&...st&p=116609

Latest non-beta are at the addresses you linked to.

Stable, pre-release versions are here:
http://sarovar.org/projects/grub4dos/

All newish, I would call'em "experimental features" or "night builds" rather than BETA, are posted on the wiki here:
http://grub4dos.jot.com/

Latest release (with the said cdrom init added feature ) is here:
http://grub4dos.jot.com/WikiHome/grub_for_dos-2006-07-11.zip

I guess it can be called 0.4.2pre6.R3 rolleyes.gif

jaclaz
Ed_P
QUOTE (jaclaz @ Jul 15 2006, 01:25 PM) *
Latest release (with the said cdrom init added feature ) is here:
http://grub4dos.jot.com/WikiHome/grub_for_dos-2006-07-11.zip

I guess it can be called 0.4.2pre6.R3 rolleyes.gif

jaclaz

Results of using this version on real hardware:
CODE
Launching GRUB...

About to reset the boot drive.  Report bug if machine hangs here.

Return from int13/AH=0.  The reset of the boot drive is OK.

About to enable gate A20.  Report bug if machine hangs here.

Gate A20 is turned on successfully.

CD-ROM setup is OK.
color black/cyan yellow/cyan
timeout 30
default /default




grub> root (<tab>
Possible disks are: fd0 hd0 rd

<- Note : No CDx ->



find and load CMLDR of Windows NT/2K/XP

  Booting 'find and load IO.SYS of Windows 9x/Me'

fallback 2
find --set-root /cmldr

Error 17: File not found
  Booting 'find and load IO.SYS of Windows 9x/Me'

fallback 3
find --set-root /io.sys
(hd0,1)
Filesystem type is ntfs, partition type 0x7
chainloader /io.sys

Error 14: Invalid or unsupported format
  Booting  <- etc ->




grub> cdrom --init

Number of CD-ROMs found: 1

grub> root (<tab>
Possible disks are: fd0 hd0 rd

grub> cdrom --add_io_ports=0x03F601F0

Error 32: Invalid argument

grub> cdrom --add_io_ports=<tab>

Error 12: Unrecognized device string
jaclaz
Newish:
http://grub4dos.jot.com/WikiHome/grub_for_dos-2006-07-16.zip

It seems like previous readme.txt has been corrected, together with the new build

QUOTE
******************************************************************************
*** The New `cdrom' Command Syntax ***
******************************************************************************

1. Initialize the ATAPI CDROM devices:

grub> cdrom --init

This will display the number of atapi cdroms found: atapi_dev_count

2. Stop the ATAPI CDROM devices:

grub> cdrom --stop

This will set atapi_dev_count to 0.

3. Add IO ports for searching the atapi cdrom devices. For example:

grub> cdrom --add_io_ports=0x03F601F0

After running `cdrom --init' and `map --hook', the cdroms can be accessed
through devices (cd0), (cd1), ...
Try with
QUOTE
cdrom --init
map --hook


The above does list "cd0" in Qemu, but in Qemu also "cd" is listed anyhow before doing the above. huh.gif

jaclaz
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.