40 lines
1.5 KiB
Bash
40 lines
1.5 KiB
Bash
#!/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:///mirror.ubrco.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:///mirror.ubrco.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
|
|
|
|
echo -e "[Match]\nType=ether\n\n[Network]\nDHCP=yes\n" > "root.x86_64/mnt/etc/systemd/network/ether.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 |