From 2a99c6259d54e6b5278b49ee248ba2ac66a7a56a Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Sun, 4 Apr 2021 11:19:55 +0200 Subject: Create repository --- tools/gen_syslinux_floppy.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 tools/gen_syslinux_floppy.sh (limited to 'tools/gen_syslinux_floppy.sh') diff --git a/tools/gen_syslinux_floppy.sh b/tools/gen_syslinux_floppy.sh new file mode 100755 index 0000000..cae607a --- /dev/null +++ b/tools/gen_syslinux_floppy.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +# Ensure to abort on error +set -e + +wai=$(dirname $(readlink -f "$0")) # Current script directory +outdir="${wai}/../" +floppy="${outdir}/floppy.img" +mountp="$(mktemp -d)" # Mount point (where the floppy will be mounted temporally +sysbios="/usr/lib/syslinux/bios/" # Syslinux bios and ui locations + +check_for () { + command -v "$1" &>/dev/null || { echo "Command $1 not found!"; exit 1; } +} + +check_for parted +check_for losetup +check_for extlinux +check_for mkfs.ext4 +[ -d "$sysbios" ] || { echo "Syslinux bios \"$sysbios\" not found!"; exit 1; } + +# Create drive +dd if=/dev/zero of=${floppy} bs=512 count=50000 # Change count to change floppy size :) +parted -s $floppy mklabel gpt +parted -s $floppy mkpart linux ext4 0 100% +parted -s $floppy set 1 legacy_boot on # Require for syslinux according to https://wiki.gentoo.org/wiki/Syslinux#GPT + +# Initiate loop devices +loop=$(sudo losetup -f) +part="${loop}p1" # Disk partition +sudo losetup -Pf $floppy + +# Prepare disk partition +sudo mkfs.ext4 $part +sudo mount $part "$mountp" +sudo mkdir -p $mountp/boot/syslinux/ + +# Configuring syslinux +sudo chown -R loic $mountp/boot/ +cfg=$(mktemp) +cat > "$cfg" <