#!/usr/bin/env bash set -e set -x bchroot() { ./root.x86_64/usr/bin/arch-chroot root.x86_64 $@ } rchroot() { ./root.x86_64/usr/bin/arch-chroot root.x86_64/mnt $@ } curl -o archlinux-bootstrap.tgz "https://ftp.fau.de/archlinux/iso/latest/archlinux-bootstrap-$(date '+%Y.%m.01')-x86_64.tar.gz" tar xzf archlinux-bootstrap.tgz mount --bind root.x86_64 root.x86_64 echo 'Server = https://ftp.fau.de/archlinux/$repo/os/$arch' > root.x86_64/etc/pacman.d/mirrorlist bchroot pacman-key --init bchroot pacman-key --populate archlinux bchroot pacman --noconfirm -Sy gdisk echo -e "o\ny\nn\n\n\n+1M\nef02\nn\n\n\n\n\nw\ny" | bchroot gdisk /dev/sda echo y | bchroot mkfs.ext4 /dev/sda2 bchroot mount /dev/sda2 /mnt bchroot pacstrap -G -M /mnt base grub linux linux-firmware openssh bchroot genfstab -U /mnt >> root.x86_64/mnt/etc/fstab rchroot mkinitcpio -p linux rchroot grub-install /dev/sda rchroot grub-mkconfig -o /boot/grub/grub.cfg IF_NAME="$(udevadm info -q all -p /sys/class/net/eth0 | grep ID_NET_NAME_SLOT | cut -d'=' -f2)" echo "[Match]\nName=${IF_NAME}\n\n[Network]\nDHCP=yes\n" > "root.x86_64/mnt/etc/systemd/network/${IF_NAME}.network" rchroot systemctl enable systemd-networkd rchroot systemctl enable systemd-resolved curl -s 'https://archlinux.org/mirrorlist/?country=DE&protocol=https&ip_version=4&use_mirror_status=on' | awk '/^#Server/{ $1 = "Server"; print $0}' > root.x86_64/mnt/etc/pacman.d/mirrorlist rchroot pacman-key --init rchroot pacman-key --populate archlinux rchroot systemctl enable sshd mkdir root.x86_64/mnt/root/.ssh cp authorized_keys root.x86_64/mnt/root/.ssh/ bchroot umount /mnt