#!/bin/bash # enable for debugging (single stepping line by line) #set -x #trap read debug exec > >(tee -i logfile.txt) exec 2>&1 # configuration INSTALL_DRIVE=/dev/vda PARTITION_BOOT=1 PARTITION_ROOT=2 LABEL_ROOT=ROOT MOUNT_PATH=/mnt HOST=192.168.130.1 HTTP_SERVER=http://${HOST}:8088 IP=192.168.130.101 NETWORK=192.168.130.0 NETMASK=255.255.255.0 PREFIX=24 HOSTNAME=arch32 # set up networking ip addr add dev eth0 ${IP} ip route add to ${NETWORK}/${PREFIX} dev eth0 via ${HOST} ip route add to default dev eth0 via ${HOST} cat > /etc/resolv.conf <> /etc/ssh/sshd_config systemctl start sshd echo "Partitioning and creating filesystem.." mknod /dev/vda b 254 0 mknod /dev/vda1 b 254 1 mknod /dev/vda2 b 254 2 wipefs -a ${INSTALL_DRIVE} printf ",128M,L,*\n" | /sbin/sfdisk -f ${INSTALL_DRIVE} printf ",,L,*\n" | /sbin/sfdisk -a -f ${INSTALL_DRIVE} mkfs.ext2 ${INSTALL_DRIVE}${PARTITION_BOOT} mkfs.ext4 ${INSTALL_DRIVE}${PARTITION_ROOT} mount ${INSTALL_DRIVE}${PARTITION_ROOT} ${MOUNT_PATH} mkdir ${MOUNT_PATH}/boot mount ${INSTALL_DRIVE}${PARTITION_BOOT} ${MOUNT_PATH}/boot echo "Patching pacman to play locally.." cat >/etc/pacman.d/mirrorlist <${MOUNT_PATH}/etc/pacman.d/mirrorlist < ${MOUNT_PATH}/etc/fstab echo "Installing boot loader.." arch-chroot ${MOUNT_PATH} pacman --noconfirm -S grub arch-chroot ${MOUNT_PATH} grub-install --force /dev/vda arch-chroot ${MOUNT_PATH} grub-mkconfig -o /boot/grub/grub.cfg echo "Configuring base system.." sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' ${MOUNT_PATH}/etc/locale.gen arch-chroot ${MOUNT_PATH} locale-gen echo LANG=en_US.UTF-8 > ${MOUNT_PATH}/etc/locale.conf ln -fs /usr/share/zoneinfo/Europe/Zurich ${MOUNT_PATH}/etc/localtime arch-chroot ${MOUNT_PATH} hwclock --systohc --utc echo ${HOSTNAME} > ${MOUNT_PATH}/etc/hostname cat > ${MOUNT_PATH}/etc/systemd/network/25-wired.network <>${MOUNT_PATH}/etc/ssh/sshd_config arch-chroot ${MOUNT_PATH} systemctl enable sshd # maybe later, when pacman knows the Archlinux32 developer keys #sed -i 's/^SigLevel.*/SigLevel = Required DatabaseOptional/g' ${MOUNT_PATH}/etc/pacman.conf echo "Unmounting.." umount ${MOUNT_PATH}/boot umount ${MOUNT_PATH} echo "Powering off.." sleep 10 systemctl poweroff