summaryrefslogtreecommitdiff
path: root/archauto.sh
blob: d223af42b7ad2a9de07d88ed99250fef78e368d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/bin/bash

# configuration

INSTALL_DRIVE=/dev/vda
PARTITION_BOOT=1
PARTITION_ROOT=2
LABEL_ROOT=ROOT
MOUNT_PATH=/mnt
HTTP_SERVER=http://eurobuild3.lan:8080
HOSTNAME=archlinux
NTP_SERVER=192.168.1.1

echo "Partitioning and creating filesystem.."

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 "Installing minimalistic base system.."

sed -i 's/^SigLevel.*/SigLevel = Never/g' /etc/pacman.conf

sed -i "/\[core\]/aServer = ${HTTP_SERVER}/\$repo/os/\$arch" /etc/pacman.conf
sed -i "/\[extra\]/aServer = ${HTTP_SERVER}/\$repo/os/\$arch" /etc/pacman.conf
sed -i "/\[community\]/aServer = ${HTTP_SERVER}/\$repo/os/\$arch" /etc/pacman.conf

pacstrap ${MOUNT_PATH} filesystem grep findutils coreutils glibc bash pacman mkinitcpio linux dhcpcd systemd sed systemd-sysvcompat

sed -i 's/^SigLevel.*/SigLevel = Never/g' ${MOUNT_PATH}/etc/pacman.conf

sed -i "/\[core\]/aServer = ${HTTP_SERVER}/\$repo/os/\$arch" ${MOUNT_PATH}/etc/pacman.conf
sed -i "/\[extra\]/aServer = ${HTTP_SERVER}/\$repo/os/\$arch" ${MOUNT_PATH}/etc/pacman.conf
sed -i "/\[community\]/aServer = ${HTTP_SERVER}/\$repo/os/\$arch" ${MOUNT_PATH}/etc/pacman.conf
printf "\n[myrepo]\nServer = ${HTTP_SERVER}/\$repo/os/\$arch\n" >> ${MOUNT_PATH}/etc/pacman.conf

arch-chroot ${MOUNT_PATH} pacman -Sy

echo "Installing boot loader.."

genfstab -p ${MOUNT_PATH} > ${MOUNT_PATH}/etc/fstab

arch-chroot ${MOUNT_PATH} pacman --noconfirm -S grub
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/g' ${MOUNT_PATH}/etc/default/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 -s /usr/share/zoneinfo/Europe/Zurich ${MOUNT_PATH}/etc/localtime
arch-chroot ${MOUNT_PATH} hwclock --systohc --utc

echo ${HOSTNAME} > ${MOUNT_PATH}/etc/hostname

arch-chroot ${MOUNT_PATH} systemctl enable dhcpcd@ens3.service

arch-chroot ${MOUNT_PATH} sh -c "echo 'root:xx' | chpasswd"

arch-chroot ${MOUNT_PATH} pacman --noconfirm -S ntp

arch-chroot ${MOUNT_PATH} ntpdate ${NTP_SERVER}

sed -i 's/^server/#server/g' ${MOUNT_PATH}/etc/ntp.conf
echo "server ${NTP_SERVER}" >> ${MOUNT_PATH}/etc/ntp.conf

arch-chroot ${MOUNT_PATH} systemctl enable ntpd.service

arch-chroot ${MOUNT_PATH} pacman --noconfirm -S libyaml cfengine

echo "Unmounting.."

umount ${MOUNT_PATH}/boot
umount ${MOUNT_PATH}

echo "Powering off.."

sleep 10
systemctl poweroff