Updates bootable USB tools
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 19 Mar 2015 21:02:28 +0000 (17:02 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 19 Mar 2015 21:02:28 +0000 (17:02 -0400)
Added some sanity checks to the script and put mboot.c32, mbr.bin, and a
basic conf in the repo so people don't have to hunt around for them.

Makelocal.template
scripts/bootable-usb.sh [deleted file]
tools/bootable-usb/make-bootable-usb.sh [new file with mode: 0644]
tools/bootable-usb/rootdir-files/boot/mboot.c32 [new file with mode: 0755]
tools/bootable-usb/rootdir-files/extlinux.conf [new file with mode: 0755]
tools/bootable-usb/rootdir-files/mbr.bin [new file with mode: 0644]

index eb6a1c8..46f3779 100644 (file)
@@ -17,7 +17,7 @@ export CFLAGS_USER CFLAGS_TESTS
 #$(OBJDIR)/kern/.usb.touch: $(KERNEL_OBJ)
 #      @echo "  (USB) Copying to /dev/sdc4"
 #      $(Q)mount /dev/sdc4
-#      $(Q)cp $^ /mnt/pornstick/texas
+#      $(Q)cp $^ /mnt/pornstick/akaros
 #      @sync
 #      $(Q)umount /mnt/pornstick
 #      @touch $@
diff --git a/scripts/bootable-usb.sh b/scripts/bootable-usb.sh
deleted file mode 100644 (file)
index cb00f87..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/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
diff --git a/tools/bootable-usb/make-bootable-usb.sh b/tools/bootable-usb/make-bootable-usb.sh
new file mode 100644 (file)
index 0000000..a74b8b7
--- /dev/null
@@ -0,0 +1,74 @@
+#!/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: $(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
diff --git a/tools/bootable-usb/rootdir-files/boot/mboot.c32 b/tools/bootable-usb/rootdir-files/boot/mboot.c32
new file mode 100755 (executable)
index 0000000..2a17cbb
Binary files /dev/null and b/tools/bootable-usb/rootdir-files/boot/mboot.c32 differ
diff --git a/tools/bootable-usb/rootdir-files/extlinux.conf b/tools/bootable-usb/rootdir-files/extlinux.conf
new file mode 100755 (executable)
index 0000000..7f6ffd0
--- /dev/null
@@ -0,0 +1,10 @@
+PROMPT 1
+TIMEOUT 20
+
+DEFAULT akaros
+
+LABEL akaros
+    MENU LABEL Akaros
+    MENU DEFAULT
+    KERNEL /boot/mboot.c32
+    APPEND /boot/akaros
diff --git a/tools/bootable-usb/rootdir-files/mbr.bin b/tools/bootable-usb/rootdir-files/mbr.bin
new file mode 100644 (file)
index 0000000..0d8bad4
Binary files /dev/null and b/tools/bootable-usb/rootdir-files/mbr.bin differ