Create GeeXBoX LiveUSB using UnetBootIn on Linux

I know we have the win32 installer,
I know we can install to USB from CD,
but I wanted to use only Linux to
create a live USB that replicates the CD.

Requirements

UnetBootIn (in Xubuntu repos)
Standard or Custom GeexBox iso ( I used a Custom GeexBox 1.2.3)
USB Flash Drive (Used a Buffalo 1GB)

This all carried out on Xubuntu 9.04

Part I – Create Bootable USB Drive

Insert USB Drive to your PC running Linux (Ubuntu etc)
Start UnetBootIn
Tick the Disk Image Radio Button, ensure ISO is selected in the drop down and then select your GeexBox iso
Select your USB drive from the drop down box
Click OK and Wait until you get the Reboot or Exit buttons appear
Click Exit

Part II – Get the right GEEXBOX directory

Mount the GeexBox iso so you can access files
I use Gmountiso but you can create a directory and issue a command in the terminal

sudo mkdir /media/gb-iso
sudo mount -o loop /path/to/geexbox.iso /media/gb-iso

Go to your root directory of your USB drive and delete (yes, delete!) the entire GEEXBOX directory
Got to /media/gb-iso and copy the GEEXBOX directory, pasting it to the root of your USB drive.

Why have we done this? UnetBootIn does something to the GEEXBOX directory files, you need the unadulterated ones on the iso.

Part III – Edit syslinux.cfg

In a terminal, run the command:

sudo blkid -L

On newer systems (e.g. Karmic) run

sudo blkid

or

sudo blkid -o full

You will get all the UUID’s from your drives and partitions.
Note down the UUID for your USB drive
Mine was 0633-157B

Open up syslinux.cfg on the USB drive in your favourite text editor
Make it look like this:

########################################
default vesamenu.c32
prompt 0
timeout 20

MENU BACKGROUND /GEEXBOX/boot/splash.png
MENU TITLE Welcome to GeeXboX i386 1.2.3 (C) 2002-2009
MENU VSHIFT 11
MENU ROWS 6
MENU TABMSGROW 15
MENU CMDLINEROW 14
MENU HELPMSGROW 16
MENU TABMSG Press [Tab] to edit options, [F1] for boot options.
MENU COLOR sel 7;37;40 #e0000000 #fa833b all
MENU COLOR border 30;44 #00000000 #00000000 none

label ubnentry0
menu label Start GeeXboX …
kernel /GEEXBOX/boot/vmlinuz
append initrd=/GEEXBOX/boot/initrd.gz root=/dev/ram0 rw rdinit=linuxrc boot=UUID=0633-157B lang=en remote=atiusb receiver=atiusb keymap=qwerty splash=silent vga=789 video=vesafb:ywrap,mtrr quiet

label ubnentry1
menu label Start GeeXboX for HDTV …
kernel /GEEXBOX/boot/vmlinuz
append initrd=/GEEXBOX/boot/initrd.gz root=/dev/ram0 rw rdinit=linuxrc boot=UUID=0633-157B lang=en remote=atiusb receiver=atiusb keymap=qwerty splash=silent vga=789 video=vesafb:ywrap,mtrr hdtv quiet

label ubnentry2
menu label Install GeeXboX to disk …
kernel /GEEXBOX/boot/vmlinuz
append initrd=/GEEXBOX/boot/initrd.gz root=/dev/ram0 rw rdinit=linuxrc boot=UUID=0633-157B lang=en remote=atiusb receiver=atiusb keymap=qwerty splash=silent vga=789 video=vesafb:ywrap,mtrr installator quiet

label ubnentry3
menu label Start in debugging mode …
kernel /GEEXBOX/boot/vmlinuz
append initrd=/GEEXBOX/boot/initrd.gz root=/dev/ram0 rw rdinit=linuxrc boot=UUID=0633-157B lang=en remote=atiusb receiver=atiusb keymap=qwerty splash=0 vga=789 video=vesafb:ywrap,mtrr debugging

label ubnentry4
menu label Start HDTV edition in debugging mode …
kernel /GEEXBOX/boot/vmlinuz
append initrd=/GEEXBOX/boot/initrd.gz root=/dev/ram0 rw rdinit=linuxrc boot=UUID=0633-157B lang=en remote=atiusb receiver=atiusb keymap=qwerty splash=0 vga=789 video=vesafb:ywrap,mtrr hdtv debugging

########################################

Make sure you replace my UUID entry with your own for each stanza

Save syslinux.cfg

Part IV – Clean Up

Unmount the iso

sudo umount /media/gb-iso

Delete the directory if you wish

sudo rmdir /media/gb-iso

You are done. Either safely remove your USB drive, or leave it in and reboot.
You may need to edit your bios settings to allow booting from USB.
And there you have it, LiveUSB, just like the CD, but you can edit settings if you wish.

4 thoughts on “Create GeeXBoX LiveUSB using UnetBootIn on Linux

Leave a Reply

Your email address will not be published. Required fields are marked *