dangerzone/vm-builder/build-iso.sh

47 lines
1.3 KiB
Bash
Executable file

#!/bin/sh
ALPINE_TAG=v3.14.3
# Install dependencies
apk add alpine-sdk build-base apk-tools alpine-conf busybox fakeroot xorriso squashfs-tools mtools dosfstools grub-efi p7zip abuild sudo
# Make keys for build
abuild-keygen -i -a -n
# Setup aports
cd ~/
wget https://gitlab.alpinelinux.org/alpine/aports/-/archive/master/aports-master.tar.gz
tar -xf ~/aports-master.tar.gz
mv ~/aports-master ~/aports
cp /vm-builder/mkimg.dz.sh ~/aports/scripts/
cp /vm-builder/genapkovl-dz.sh ~/aports/scripts/
chmod +x ~/aports/scripts/mkimg.dz.sh
chmod +x ~/aports/scripts/genapkovl-dz.sh
# Set up the vm dir
rm -r /vm-builder/vm
mkdir -p /vm-builder/vm
chmod 777 /vm-builder/vm
# Make the iso
cd ~/aports/scripts
./mkimage.sh --tag "$ALPINE_TAG" \
--outdir /vm-builder/vm \
--arch $(uname -m) \
--repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main \
--repository http://dl-cdn.alpinelinux.org/alpine/v3.14/community \
--profile dz
mv /vm-builder/vm/alpine-dz-${ALPINE_TAG}-$(uname -m).iso /vm-builder/vm/dangerzone.iso
# Fix permissions
chmod 755 /vm-builder/vm
chmod 644 /vm-builder/vm/*
# Extract vmlinuz and initramfs
cd /vm-builder/vm
7z x dangerzone.iso boot/vmlinuz-virt
7z x dangerzone.iso boot/initramfs-virt
mv boot/* .
rm -r boot
mv vmlinuz-virt kernel
mv initramfs-virt initramfs.img