#!/bin/sh cleanup() { if [ "$install_syslinux" = "yes" ]; then apk del -q syslinux fi if [ "$mount_dest" = "yes" ]; then umount "$dest" fi } die() { echo "$@" >&2 cleanup exit 1 } apk info -q -e syslinux || install_syslinux=yes if [ "$install_syslinux" = "yes" ]; then apk add -q syslinux fi src=${1:-/media/cdrom} [ -f "$src"/.alpine-release ] || die "$src/.alpine-release not found" dest=${2:-/media/usb} if ! awk '{print $2}' /proc/mounts | grep -q "^$dest\$"; then mount "$dest" || die "Failed to mount $dest" mount_dest=yes fi echo "Copying files..." cp -r "$src"/* "$src"/.[a-z]* "$dest" || die "Failed to copy files" echo "Making usb bootable..." dev=$(awk "\$2 == \"$dest\" {print \$1}" /proc/mounts) parent=$(basename $(dirname /sys/block/*/$(basename $dev))) syslinux $dev if [ -b /dev/$parent ]; then dd if=/usr/share/syslinux/mbr.bin of=/dev/$parent else echo "Warning: Could not find the parent device for $dev" fi cleanup