Jump to content

A Multiple Partition USB Stick with Multi Boot OS


Markymoo

Recommended Posts

@jaclaz

ok apologies, i got it touring the web. i got it from the linux community like kde or gentoo if i can remember right. some here grub splash screens

http://schragehome.de/splash/

http://www.schultz-net.dk/grub.html

if your using linux heres a easy way to convert a image to grub format. it easy it just like the same way for cdshell. you cant get above 14 colours, it uses some form of vesa.it easy to convert a image to 640x480 you need gzip and

imagemagick http://www.imagemagick.org/script/index.php

and gimp http://www.gimp.org/

Quoted

1. Start the GIMP.

2. Click on File->New or type Ctrl+N

3. In the new image dialog, change Width to 640 pixels and Height to 480 pixels. (The image should be of size 640x480 pixels.) Now click OK.

4. Create the image which you would like to be the splash image. It's quite fun to experiment with the various tools of the GIMP!

5. After you have finished creating the image, hit Alt+i or right click on the image and click on Image->Mode->Indexed...

6. In the Indexed Color Conversion dialog that appears, click on the radio button "Generate optimal Palette" and in "# of colors" enter 14. Click OK.(The image should be of only 14 colors)

7. Now right-click on the image and click on File->Save As...Save the file as ImageName.xpm in a directory of your choice.

For some reasons i could not create *.xpm so i save it as *.png and then

convert ImageName.png ImageName.xpm

(convert is a part of media-gfx/imagemagick)

You can save image from this page and convert it skipping image creation hassle

Creating image (Imagemagick)

* You can also pick an image (any type supported by ImageMagick) and execute:

convert -resize 640x480 -colors 14 picture.jpg ImageName.xpm

Installing the Image

gzip ImageName.xpm

mount /boot

mv ImageName.xpm.gz /boot/grub/

* In the /boot/grub/grub.conf you have to point splashimage to newly created image i.e.

File: /boot/grub/grub.conf

# Splash Image

splashimage=(hd0,0)/grub/ImageName.xpm.gz

Edited by Markymoo
Link to comment
Share on other sites

  • 5 weeks later...

Thanks for this great guide for partitioning USB sticks. I followed your outline and scuessfully created the parations I wanted and boot menue on my usb stick.

I am new to this stuff, now I need to know how to get a workable iso file on to my partitions!

Link to comment
Share on other sites

  • 8 months later...

Hello I have been searching around for ages to see if its possible to split a flash usb into multiple drives.

You say above:

Ok XP can only see one partition on a removable USB but if change the USB driver to a fixed disk driver then XP will see it as a hard drive then we can have lay down multiple partitions as we like.

So does this mean that after the driver modification it would see multiple drives in XP but any other PC you stick the flash into would only see the first partition? :ph34r:

Link to comment
Share on other sites

  • 4 weeks later...
So does this mean that after the driver modification it would see multiple drives in XP but any other PC you stick the flash into would only see the first partition? :ph34r:

Yes, that is right! But this is the only way to force WinXP to see other partitons!

BTW, it is a good idea to add this driver to WinXP installation distributive. Any idea how to make this?

I think after driver integration it will be possible to install full (not PE) WinXP on USB flash drive! :)

Link to comment
Share on other sites

  • 2 months later...

In this section most of the discuss on GRUB. But topic is USB stick partition.

I change & modified cfadisk.inf file. But when I try to install my kingston 1 GB usb driver from cfadisk.inf, XP says drive information found.

pls anyone give any sample cfadisk.inf as he modified.

Thanks.

Link to comment
Share on other sites

  • 4 weeks later...

Hi,

This topic is just what I want!

But I have a problem following the instructions.

I have a SanDisk cruzer 4GB usb stick.

By changing the driver, it is recognized as a HD in XP.

I split it into three FAT16 partitions by using Partition Magic. (One thing to notice is that after launching partition magic, it complains about the space is not consistent for the usb stick, and I have to choose to fix it or the stick would be recognized as bad in Partition magic.)

Then I use WinGrub to install grub to the usb stick as the instructions said.

The partitions are all empty at this point.

When I reboot and try to boot from the usb stick, nothing happens. I mean the BIOS still launches from the hard drive even the usb stick has a higher boot priority.

Link to comment
Share on other sites

  • 2 weeks later...

Right, I got the Grub boot working. Only problem is when I use Markymoo's menu.lst it works the first time, but never again. the reason is that the partitions are hidden! So then I have to use a partition manager to unhide the partitions. Is there any way around this? Markymoo, what do you do once your partitions are hidden? I tried editing the menu.lst and removing the hide/unhide lines, but then BartPE would boot halfway and blue screen.

So far I have tried numerous methods and Markymoo's seems to be the best. I just need some help avoiding the hidden partition problem.

Link to comment
Share on other sites

@stevesumner

What you report is VERY strange, markymoos entries in boot.ini come in pairs:

unhide (hd0,0)

hide (hd0,1)

hide (hd0,0)

unhide (hd0,1)

So everything should be cool.

However, you can add a "service" only entry in menu.lst, something like:

title Unhide all partitions
unhide (hd0,0)
unhide (hd0,1)

and choose it when you find problems, if it works, nothing prevents you from adding the two line at the top of each entry.

FYI, this interesting tutorial by markymoo appears to be a bit dated now, there are other ways to boot, expecially the direct chainloading feature of system files from grub4dos and the mapping features, so that in most cases hiding/unhiding partitions is not necessary.

jaclaz

Link to comment
Share on other sites

Hmmm, not sure what I did. I found that after booting and getting the blue screen from BartPE, the next time grub wouldn't even work, it would just say

try (hd 0,0) fat 16

try (hd 0,1) fat 16

error

Or something like that from memory. Then when I plugged my USB back into Windows PC and checked in Explorer one drive had become hidden, a bit of a nuisance.

I changed the second partition to the iso method and ramdrive and now the USB boots fine, maybe there was something wrong with my partitions and using the "pe2usb -f f:" command with the -f format switch fixed it? Still end up with a hidden partition which is not ideal.

I would be interested in which method you prefer and what your menu.lst file would have, if you use grub as a bootloader, jaclaz.

Link to comment
Share on other sites

I would be interested in which method you prefer and what your menu.lst file would have, if you use grub as a bootloader, jaclaz.

I guess it's all a matter of preferences, and of what you want to do.

Personally, though it is fun to try different methods/solutions, I try to keep things as KISS as possible.

There is no actual need to have the stick multipartitioned, unless you are going to boot a few tens of different OS.

Of course there are limits, but most can be overcome, as long as you stay (STRONGLY suggested) with FAT16 or FAT32 as filesystem.

What I usually do is:

1) Keep the Win2K/XP/2003 MBR (if it is the case in the "hacked" version that comes with the "HP" utility) untouched

2) Keep the bootsector (invoking NTLDR) written by the Win2K/XP/2003 FORMAT command or by the HP utility untouched

3) Add to root of the stick NTLDR, grldr and a boot.ini with a line:

C:\GRLDR="Grub4dos"

4) from the above setup you can boot a FULL 2K/XP directly through a line in boot.ini

5) for a PE/BartPE/Winbuilder you simply have an entry in boot.ini menu.lst like:

title PE/BartPE/Winbuilder
chainloader /setupldr

or

title PE/BartPE/Winbuilder
chainloader /minint/setupldr

6) For DOS (7.1 aka Win98) you can use either BOOTPART and chainload it directly from BOOT.INI or add an entry in menu.lst like:

title DOS 7.1
chainloader /IO.SYS

though usually it is much more convenient to use images, loaded either directly or through memdisk

7) for Linux, see above, also worth a shot is the RAMDISK using HMLOAD

Here are a few links with some more ideas, details:

http://www.911cd.net/forums//index.php?sho...c=19873&hl=

http://www.911cd.net/forums//index.php?sho...c=18045&hl=

http://www.911cd.net/forums//index.php?sho...c=18031&hl=

http://www.911cd.net/forums//index.php?sho...c=18846&hl=

http://www.msfn.org/board/index.php?showtopic=95537

More generally search on the 911CD forum for keyword "grub4dos", please DO remember that here we are talking of grub4dos, NOT grub, the grub4dos WHERETO is here:

http://www.boot-land.net/forums/Grub4Dos-t14.html

http://www.911cd.net/forums//index.php?sho...c=19097&hl=

And here there are some more related threads:

http://www.boot-land.net/forums/Boot-methods-f12.html

Have a look at the given links, and if anything is not clear or you need additional help just post so, specifying which OSses you are willing to multiboot.

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

Hey cheers for that jaclaz, really useful info.

I have tried your method and just want to check a couple of things.

I should use XP's format to format the USB to FAT, then copy BartPE files to the USB.

Then copy ntldr and boot.ini from c: drive and also copy grldr.

Then edit boot.ini to have the line

C:\GRLDR="Grub4dos"

and

title PE/BartPE/Winbuilder
chainloader /setupldr

or similar. Is that right?

And that's all?

My boot.ini looks like this:

[boot loader]
timeout=30
[operating systems]
C:\GRLDR="Grub4dos"
title BartPE
chainloader /setupldr

Edited by stevesumner
Link to comment
Share on other sites

Well, NO, the:

title BartPE
chainloader /setupldr

goes into the menu.lst file, sorry for the mistyping :(.

To further clarify, NTLDR looks for choices in boot.ini.

Grub4dos' grldr, grldr.mbr and grub.exe look for choices in menu.lst.

Syntax of menu.lst entries is detailed in the download and docs, briefly here is an example of a complete menu.lst:

# This is a basic menu.lst file for GRUB4DOS, in the version for ezG4DOS.
# You can make changes to it.

# Following lines load a splashimage and set text foreground/background colour
# splashimage /GRUB4DOS/ezG4DOS.xpm.gz
foreground = 69ed4e
background = 337326

# Following line is the choice for colours when background image is NOT SET
# (see above) they are commented out as a splashimage is SET
# color black/cyan yellow/cyan

# 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 Win98.ima memdisk Boot
find --set-root /grldr
kernel /memdisk.gz
initrd /win98.ima

title Win98 HD
find --set-root /IO.SYS
chainloader /IO.SYS

title BartPE
find --set-root /setupldr.bin
chainloader /setupldr.bin

title NTLDR
find --set-root /NTLDR
chainloader /NTLDR

I am correcting my previous post. :)

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

  • 1 year later...

EDIT: read post #31, to get better instructions.

Just got finished USB-Uber stick.

USB trippleboot containing UBCD, DOS & CentOS.

First I follow Markymoo's instructions:

A Multiple Partition USB Stick with Multi Boot OS

Scroll down for 5/4/2006 update

I wanted several operating systems on a USB stick and after many hours messing with syslinux, memdisk, grub4dos, xosl, freedos, avlgomgr, acronis os selector, ranish partition manager. I have succumbed. I first started out wanting to boot an iso off USB and ran into trouble loading large img with memdisk which I found out is due to a bug in msdos so I used freedos but things didn’t work out as planned and it’s a similar woe story’s with the rest. Acronis os selector lets you boot multiple os from one partition from different folders but don’t work great when it comes to dos.

I have 5 partitions on my USB stick and using the boot loader BootIt NG http://www.bootitng.com/bootitng.html This is a 30 day trial. There’s a iso boot image inside the zip you need to burn to cd.

Now I wasn’t happy just putting one os on my USB stick. I wanted linux and diagnostic tools etc.

I now have what I think is the easiest helpful solution below.

Stage 1.

Ok XP can only see one partition on a removable USB but if change the USB driver to a fixed disk driver then XP will see it as a hard drive then we can have lay down multiple partitions as we like. Now open regedit and goto HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR

and double click on USBSTORE and you see a subkey below it, select the first subkey below USBSTORE and right click and select Copy Key Name

Here is mine, yours maybe different.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Disk&Ven_Generic&Prod_USB_Flash_Disk&Rev_0.00

Now we need only need this part:

USBSTOR\Disk&Ven_Generic&Prod_USB_Flash_Disk&Rev_0.00

Copy and paste it temporarily into notepad.

You will now need this driver. http://www.xpefiles.com/viewtopic.php?t=92

Unpack it to a folder on your desktop. Inside the folder is the file cfadisk.inf. You need to open this file and scroll down to you see the line %Microdrive_devdesc% = cfadisk_install, specific data

Now you need to replace all lines %Microdrive_devdesc% = cfadisk_install, specific data with

the line you copied from your registry like so.

%Microdrive_devdesc% = cfadisk_install,USBSTOR\Disk&Ven_Generic&Prod_USB_Flash_Disk&Rev_0.00

There could be more lines so replace all and save the file.

Goto Device Manager and click on disk drives. You see your USB listed, dbl click on it and goto the driver tab and click update driver and install from a specific location and choose the driver to install and click on Have Disk and browse to the cfadisk.inf file your modified driver on your desktop and force that to replace your existing driver. It might ask you to reboot. You should now have your USB showing as Local Disk

We want your first partition dos bootable so run HP USB Disk Storage Format Tool. I’m using version 2.1.8. Select your drive letter of your USB device and select "Create a DOS startup disk" and browse to your 98 boot disk folder. Click Start. Your USB will be formatted and 3 files will be copied from your dos startup files. You need to manually copy the rest of the 98 boot files to your USB drive.

You can now resize the drive (mines 512MB) and create multiple partitions. All partition software now sees it as a fixed disk. I used acronis disk director and resized the partition keeping the first dos bootable partition intact and made another 4 fat partitions so I had 5 in total.

Make sure your format all partitions as Primary not Logical.

So this way makes it easy to load multiple iso using ramdisk also.

After this I made another stick only containing UBCD, because when I use UBCD own script it wipes whole stick as 1 partition containing only UBCD.

- Windows XP or Vista (32-bit):

Connect small ~ 150 MB small USB stick to computer.

Mount UBCD and open command prompt, next go to the \tools\ubcd2usb folder and type ubcd2usb.bat D: E: (the D: is my cdrom and E: is stick).

Now I have 1 stick containing UBCD only and another stick which seems to be as local disk.

- WinImage software:

Next thing is that I read the UBCD stick with WinImage software. and after that I write the data to the other stick.

I notice that the other stick has now the data, but the MBR is missing, so I choose "edit master boot record properties" and save the mbr to bin file from UBCD stick to local disk and after that I import saved mbr to the other stick.

Now I have stick containing UBCD with plenty room on it.

- GParted:

I modify flags to hide UBCD partition just in case not to lose the partition and then create new partition for DOS I also give the boot flag to this partition.

- DOS boot

Now boot computer with DOS boot floppy and format the partition which created earlier, remember to format to bootable.

If everything went ok, if changed the boot flag with GParted I get either UBCD or DOS boot.

Now I have two boots on the stick.

Next I boot with CentOS 5.1 DVD and make custom partitioning. I create the OS root partition to the rest of stick (no swap or other partitions).

To the bootloader I add the hidden UBCD /dev/sda1 to the bootmenu and I choose advanced and install the bootloader to the /dev/sda3. Then I choose custom install on packages, and take everything else away but editors and BASE install. After I have installed the system, I used GParted to manage the flags once more. Now I put the boot flag to the /dev/sda3.

After reboot the stick finds GRUB, which has the other to boots (DOS and UBCD).

Sorry this bad English etc, hope this helps some ppl, who tries to do the same as I did. Enjoy.

Edited by MI4C
Link to comment
Share on other sites

I noticed that the extra mbr.bin import is not necesary.

Also that the first partition of the stick is viewable on normal computers, which is in my earlier post ~150 MB.

Now question to others, how could I grow the UBCD partition ~5 GB without 5 GB UBCD stick?

If I try to resize the stick with GParted the mbr brokes and partition magic can't even recognice the partition after I have used the ubcd script.

Is there any way to fool operating system with ex. virtual hd (safe way) that I could create ~5 GB UBCD partition (with mbr), I think that the mbr somehow has information of partition table and if partition is touched it doesn't anymore match to the information kept in mbr.

The bad side is that if I run the ubcd2usb.bat the script makes whole hd to same partition, I check'd that there is missing partitioning posibility on the running script (maybe if I get custom binary for this). The script formats the disk by checking %device%, so if I create virtual disk (also have to dig how to do it), could it be recogniced as device also?

Edited by MI4C
Link to comment
Share on other sites

MI4C,

sorry, but I do not understand what you are trying to do.

If what you are asking for is to create Virtual hard disks of given size/geometry or "manually" formatting a USB stick, you may find these batches useful MBRBATCH/MKIMG:

http://www.boot-land.net/forums/?showtopic=3191

http://www.boot-land.net/forums/?showtopic=5000

Otherwise, can you re-describe what you are trying to do?

jaclaz

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...