#!/bin/sh set -e IMAGE_NAME="anthrill.iso" ROOTFS_DIR="alpine-rootfs" MNT_DIR="mnt" # nix-shell vmtest.nix if [ ! -f alpine-make-rootfs ]; then wget https://raw.githubusercontent.com/alpinelinux/alpine-make-rootfs/v0.8.1/alpine-make-rootfs \ && echo '2b21327244d2d63082dd4780e22549221e298206 alpine-make-rootfs' | sha1sum -c \ || exit 1 chmod +x alpine-make-rootfs fi ./alpine-make-rootfs \ --branch v3.22 \ --packages 'linux-lts linux-firmware grub efibootmgr mkinitfs e2fsprogs dosfstools bash' \ --timezone 'Europe/Moscow' \ "$ROOTFS_DIR" rm -f "$ROOTFS_DIR/sbin/init" install -Dm755 ../target/release/x86_64-linux-musl/init "$ROOTFS_DIR/sbin/init" cat > "$ROOTFS_DIR/etc/fstab" < /dev/sda2 / ext4 defaults 0 1 /dev/sda1 /boot/efi vfat umask=0077 0 2 EOF KERNEL_VERSION=$(ls "$ROOTFS_DIR/lib/modules/" | grep -E '^[0-9]+\.' | head -n1) if [ -z "$KERNEL_VERSION" ]; then echo "Err: couldnt find kernel dir in $ROOTFS_DIR/lib/modules/" exit 1 fi mkdir -p "$MNT_DIR/root" "$MNT_DIR/boot" dd if=/dev/zero of="$IMAGE_NAME" bs=1M count=512 sfdisk "$IMAGE_NAME" < "$MNT_DIR/root/boot/grub/grub.cfg" <