|  | #!/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 |