#!/bin/bash set -e arch=${1-x86_64} file=${2-arch.qcow2} loop=/dev/nbd0 (( ! $UID )) [[ ! -e ${file} ]] qemu-img create -f qcow2 ${file} 8G modprobe nbd max_part=8 qemu-nbd -c ${loop} ${file} sfdisk ${loop} <<\EOF ,131072 , EOF partprobe "${loop}" mkfs.ext2 -L boot ${loop}p1 mkfs.ext4 -L root ${loop}p2 mnt=${file}.mnt install -d ${mnt} mount ${loop}p2 ${mnt} pushd ${mnt} install -d boot mount ${loop}p1 boot setarch ${arch} pacstrap -C /usr/share/devtools/pacman-extra.conf -c . base base-devel pacman-contrib haveged openssh sudo syslinux systemctl --root=. enable systemd-{networkd,resolved} haveged sshd ln -sf ../run/systemd/resolve/resolv.conf etc/resolv.conf install -d home/user/.ssh cat ~/.ssh/id_*.pub > home/user/.ssh/authorized_keys install -d boot/syslinux cat > boot/syslinux/syslinux.cfg < etc/fstab < etc/hostname < etc/locale.gen < etc/sudoers.d/user < etc/systemd/network/any.network <