Install Ubuntu 10.10 server from USB (with GRUB4DOS)

I have had no problem installing Ubuntu desktop when I boot off a live USB, but the server version has given me some trouble. I think it has to do with the way GRUB handles drivers. When the server install tries to look from the CD it can't find it.

I use the following to load it:

find --set-root /ISO/ubuntu-10.10-server-i386.iso
map /ISO/ubuntu-10.10-server-i386.iso (0xff)
map --hook
root (0xff)
kernel /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed boot=install iso-scan/filename=/ISO/ubuntu-10.10-server-i386.iso splash
initrd /install/initrd.gz

Is there any way to pass the location of the ISO to Ubuntu?

EDIT: GRUB4DOS is run from the USB, not the HD.


It's awfully simple:

  1. Set GRUB4DOS to boot from ISO, (which is what you probably done already)
  2. When Ubuntu Installer complains about no CD-ROM select go to shell console option,
  3. Use a set of commands like this one:

    mkdir /mnt/tmp
    mount /dev/<your USB dev path here, probably sdb1 if you have 1 HDD> ~/mnt/tmp
    mount -o loop -t iso9660 <path to ISO on your USB> /cdrom
    exit
    
  4. Go back to installer and enjoy

Hope it helps somebody... I've spent lots of time looking for this solution, until finally coming to it by myself.


I just installed ubuntu 12.04 server with Vaxquis' trick in USB with grub4dos. Apparently the server version dose not support cdrom-detect and iso-scan in installer. So we can ignore that part. Here is my config:

title install Ubuntu server 12.04
find --set-root /ubuntu-12.04-server-i386.iso
map /ubuntu-12.04-server-i386.iso (0xff) || map --mem /ubuntu-12.04-server-i386.iso (0xff)
map --hook
rootnoverify (0xff)
kernel /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed boot=install splash --
initrd /install/initrd.gz
boot

WHen you get CD-ROM detection errors, just "Continue" twice back to Installer Main Menu. press ALT-F2 to console. Type in:

mkdir /mnt/tmp
mount /dev/sdb1 /mnt/tmp
mount -o loop -t iso9660 /mnt/tmp/ubuntu-12.04-server-i386.iso /cdrom

press ALT-F1 back to Installer. Continue on "Load installer components from CD"

note: you can use file=/cdrom/preseed/ubuntu-server-minimal.seed to install a smaller server or remove the whole "file=..." part to select components manually. If you don't have enough memory to load entire iso to memory, remove "|| map --mem /ubuntu-12.04-server-i386.iso (0xff)" from config. To avoid "error 60", better format USB with "mkfs.vfat"(e.g. mkfs.vfat /dev/sdc1) and then copy the iso file to it as the first file. Then copy bootlace.com, grldr[.mbr] and menu.lst to USB and run

./bootlace.com /dev/<your_usb_device> (e.g. /dev/sdc)