| #!/bin/bash | 
 | echo "you need to customize this script; don't run it without editing" | 
 | USBDRIVE=/dev/sdwhatever | 
 | MNTPOINT=/mnt/wherever | 
 | # rootdir contains the files from an existing image.  minimum of /extlinux.conf, | 
 | # /boot/, and /boot/mboot.c32 | 
 | ROOTDIR=/path/to/tools/bootable-usb/rootdir-files/ | 
 | USER=username | 
 | GROUP=usergroup | 
 |  | 
 | SANITY=`mount | grep $USBDRIVE` | 
 |  | 
 | if [ "x$SANITY" != "x" ] | 
 | then | 
 | 	echo "$USBDRIVE might be mounted, aborting!" | 
 | 	exit -1 | 
 | fi | 
 |  | 
 | # comment this once you're done | 
 | exit | 
 |  | 
 | echo "" | 
 | echo "Make one partition, bootable and type 83 (linux).  Reminder:" | 
 | echo "	d (delete old partitions)" | 
 | echo "	n (make new partitions)" | 
 | echo "	t, 83 (set type 83)" | 
 | echo "	a (toggle bootable)" | 
 | echo "	p (print, make sure it's okay)" | 
 | echo "	w (save)" | 
 |  | 
 | fdisk $USBDRIVE | 
 | mke2fs ${USBDRIVE}1 | 
 | mount ${USBDRIVE}1 $MNTPOINT | 
 | # copy in the contents of the rootfs.  extlinux.conf in the main directory.  no | 
 | # ldlinux (extlinux will add it later).  we put all the images in /boot. | 
 | cp -r $ROOTDIR/* $MNTPOINT | 
 | chown -R $USER:$GROUP $MNTPOINT | 
 | extlinux -i $MNTPOINT | 
 | umount $MNTPOINT | 
 | # this mbr is the same as extlinux's | 
 | dd if=$ROOTDIR/mbr.bin of=${USBDRIVE} | 
 |  | 
 | # other notes: | 
 | ###################### | 
 | # over a serial connection, you'll only see: | 
 | #    Booting from Hard Disk... | 
 | #    Booting from 0000:7c00 | 
 | #   on a monitor, you'll see the boot: prompt | 
 |  | 
 | # put something like this in your Akaros Makelocal: | 
 | #$(OBJDIR)/kern/.usb.touch: $(CMP_KERNEL_OBJ) | 
 | #	@echo "  (USB) Copying to /dev/sdb1" | 
 | #	$(Q)mount /dev/sdb1 | 
 | #	$(Q)sudo cp $^ /mnt/wherever/boot/akaros | 
 | #	@sync | 
 | #	$(Q)umount /mnt/wherever | 
 | #	@touch $@ | 
 | # | 
 | #usb: $(OBJDIR)/kern/.usb.touch ; | 
 |  | 
 | # here's a basic extlinux.conf | 
 | #PROMPT 1 | 
 | #TIMEOUT 50 | 
 | # | 
 | #DEFAULT akaros | 
 | # | 
 | #LABEL akaros | 
 | #    MENU LABEL Akaros | 
 | #    MENU DEFAULT | 
 | #    KERNEL /boot/mboot.c32 | 
 | #    APPEND /boot/akaros | 
 |  | 
 | # You can test without booting with: | 
 | # $ qemu-system-x86_64 -hda /dev/sdb |