#!/bin/bash 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.2 NETMASK=255.255.255.0 PREFIX=24 HOSTNAME=arch32 # create early SSH access echo 'root:xx' | chpasswd echo "PermitRootLogin yes" >> /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-mkconfig -o /boot/grub/grub.cfg arch-chroot ${MOUNT_PATH} grub-install --force /dev/vda 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