Adds script to build bootable USB drives
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 7 Oct 2014 21:00:08 +0000 (14:00 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 7 Oct 2014 21:03:58 +0000 (14:03 -0700)
Requires extlinux.  See the script for more info.

scripts/bootable-usb.sh [new file with mode: 0644]

diff --git a/scripts/bootable-usb.sh b/scripts/bootable-usb.sh
new file mode 100644 (file)
index 0000000..cb00f87
--- /dev/null
@@ -0,0 +1,56 @@
+#!/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/rootdir/files/
+USER=username
+GROUP=usergroup
+
+# comment this once you're done
+exit
+
+echo "make one partition, bootable and type 83 (linux)"
+
+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: $(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