#!/bin/sh INSTALL_DRIVE=/dev/sda PARTITION_BOOT=1 PARTITION_SWAP=2 PARTITION_ROOT=3 LABEL_BOOT=BOOT LABEL_SWAP=SWAP LABEL_ROOT=ROOT MOUNT_PATH=/mnt echo "Installing minimalistic base system.." sgdisk -Z ${INSTALL_DRIVE} sgdisk -a 2048 -o ${INSTALL_DRIVE} sgdisk -n ${PARTITION_BOOT}:0:+100M ${INSTALL_DRIVE} sgdisk -t ${PARTITION_BOOT}:ef02 ${INSTALL_DRIVE} sgdisk -c ${PARTITION_BOOT}:"${LABEL_BOOT}" ${INSTALL_DRIVE} sgdisk -n ${PARTITION_SWAP}:0:+900M ${INSTALL_DRIVE} sgdisk -t ${PARTITION_SWAP}:8200 ${INSTALL_DRIVE} sgdisk -c ${PARTITION_SWAP}:"${LABEL_SWAP}" ${INSTALL_DRIVE} sgdisk -n ${PARTITION_ROOT}:0:0 ${INSTALL_DRIVE} sgdisk -t ${PARTITION_ROOT}:8300 ${INSTALL_DRIVE} sgdisk -c ${PARTITION_ROOT}:"${LABEL_ROOT}" ${INSTALL_DRIVE} sgdisk -G ${INSTALL_DRIVE} mkswap ${INSTALL_DRIVE}${PARTITION_SWAP} swapon ${INSTALL_DRIVE}${PARTITION_SWAP} mkfs.ext4 ${INSTALL_DRIVE}${PARTITION_ROOT} mkdir -p ${MOUNT_PATH} mount ${INSTALL_DRIVE}${PARTITION_ROOT} ${MOUNT_PATH} export http_proxy=http://192.168.1.12:3128 pacstrap ${MOUNT_PATH} base arch-chroot /mnt pacman --noconfirm -S grub-bios arch-chroot /mnt grub-install --target=i386-pc --recheck ${INSTALL_DRIVE} cp /mnt/usr/share/locale/en@quot/LC_MESSAGES/grub.mo /mnt/boot/grub/locale/en.mo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=cirrus"/g' /mnt/etc/default/grub sed -i 's/GRUB_GFXMODE=auto/GRUB_GFXMODE=text/g' /mnt/etc/default/grub sed -i 's/#GRUB_TERMINAL_OUTPUT=console/GRUB_TERMINAL_OUTPUT=console/g' /mnt/etc/default/grub arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg genfstab -p /mnt >> /mnt/etc/fstab sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /mnt/etc/locale.gen arch-chroot /mnt locale-gen echo LANG=en_US.UTF-8 > /mnt/etc/locale.conf ln -s /usr/share/zoneinfo/Europe/Zurich /mnt/etc/localtime arch-chroot /mnt hwclock --systohc --utc echo "archiso" > /mnt/etc/hostname arch-chroot /mnt systemctl enable dhcpcd@ens3.service arch-chroot /mnt sh -c "echo 'root:xx' | chpasswd" # switch off signature for now arch-chroot /mnt sed -i 's/^SigLevel.*/SigLevel = Never/g' /etc/pacman.conf # monitord needs netstat arch-chroot /mnt pacman --noconfirm -S net-tools # we use 'git' to manage our promises arch-chroot /mnt pacman --noconfirm -S git-core arch-chroot /mnt pacman --noconfirm -U http://10.0.2.2:8080/qdbm-1.8.78-1-x86_64.pkg.tar.xz arch-chroot /mnt pacman --noconfirm -U http://10.0.2.2:8080/cfengine-3.4.2-3-x86_64.pkg.tar.xz # install rules for the machine from git # enable cfengine arch-chroot /mnt systemctl enable cf-execd arch-chroot /mnt systemctl enable cf-monitord arch-chroot /mnt systemctl enable cf-serverd echo "Done." systemctl poweroff