morpheus/stuff/create-bootable

48 lines
634 B
Bash
Executable File

#!/bin/sh
#
# Ensure you've loaded the loop module with max_part=15
if test "$2" = ""; then
echo "Usage: $0 <rootdir> <imgfile>"
exit
fi
set -e -x
root=$1
img=$2
mnt="/mnt/morpheus"
fallocate -l 2G $img || dd if=/dev/zero of=$img bs=512M count=4
(
cat << EOF
o
n
p
1
a
1
w
EOF
) | fdisk $img
lodev=$(losetup -f)
losetup "$lodev" "$img"
partition="$lodev"p1
mkfs.ext4 -L MORPHEUS $partition
mkdir -p "$mnt"
mount $partition "$mnt"
rmdir "$mnt/lost+found"
fakeroot cp -arP "$root"/* "$mnt"
extlinux --install "$mnt/boot"
dd if=stuff/mbr.bin of=$lodev conv=notrunc bs=440 count=1
sync
umount "$mnt"
sleep 3
losetup -d $lodev