perf: Treat the kernel like [kernel.kallsyms]
[akaros.git] / tools / bootable-usb / make-bootable-usb.sh
1 #!/bin/bash
2 echo "you need to customize this script; don't run it without editing"
3 USBDRIVE=/dev/sdwhatever
4 MNTPOINT=/mnt/wherever
5 # rootdir contains the files from an existing image.  minimum of /extlinux.conf,
6 # /boot/, and /boot/mboot.c32
7 ROOTDIR=/path/to/tools/bootable-usb/rootdir-files/
8 USER=username
9 GROUP=usergroup
10
11 SANITY=`mount | grep $USBDRIVE`
12
13 if [ "x$SANITY" != "x" ]
14 then
15         echo "$USBDRIVE might be mounted, aborting!"
16         exit -1
17 fi
18
19 # comment this once you're done
20 exit
21
22 echo ""
23 echo "Make one partition, bootable and type 83 (linux).  Reminder:"
24 echo "  d (delete old partitions)"
25 echo "  n (make new partitions)"
26 echo "  t, 83 (set type 83)"
27 echo "  a (toggle bootable)"
28 echo "  p (print, make sure it's okay)"
29 echo "  w (save)"
30
31 fdisk $USBDRIVE
32 mke2fs ${USBDRIVE}1
33 mount ${USBDRIVE}1 $MNTPOINT
34 # copy in the contents of the rootfs.  extlinux.conf in the main directory.  no
35 # ldlinux (extlinux will add it later).  we put all the images in /boot.
36 cp -r $ROOTDIR/* $MNTPOINT
37 chown -R $USER:$GROUP $MNTPOINT
38 extlinux -i $MNTPOINT
39 umount $MNTPOINT
40 # this mbr is the same as extlinux's
41 dd if=$ROOTDIR/mbr.bin of=${USBDRIVE}
42
43 # other notes:
44 ######################
45 # over a serial connection, you'll only see:
46 #    Booting from Hard Disk...
47 #    Booting from 0000:7c00
48 #   on a monitor, you'll see the boot: prompt
49
50 # put something like this in your Akaros Makelocal:
51 #$(OBJDIR)/kern/.usb.touch: $(CMP_KERNEL_OBJ)
52 #       @echo "  (USB) Copying to /dev/sdb1"
53 #       $(Q)mount /dev/sdb1
54 #       $(Q)sudo cp $^ /mnt/wherever/boot/akaros
55 #       @sync
56 #       $(Q)umount /mnt/wherever
57 #       @touch $@
58 #
59 #usb: $(OBJDIR)/kern/.usb.touch ;
60
61 # here's a basic extlinux.conf
62 #PROMPT 1
63 #TIMEOUT 50
64 #
65 #DEFAULT akaros
66 #
67 #LABEL akaros
68 #    MENU LABEL Akaros
69 #    MENU DEFAULT
70 #    KERNEL /boot/mboot.c32
71 #    APPEND /boot/akaros
72
73 # You can test without booting with:
74 # $ qemu-system-x86_64 -hda /dev/sdb