You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
2.1 KiB

#!/bin/bash
while getopts "p:n:d:" opt;
do case $opt in
p) PASSWD=${OPTARG} ;;
n) NAME=${OPTARG} ;;
d) DEV=${OPTARG} ;;
\?) echo "-$OPTARG is not valid" >&2 && exit ;;
esac
done
# stop on error
set -e
PASSWD=${PASSWD:="toor"}
NAME=${NAME:="archibald"}
DEV=${DEV:="nvme0n1"}
echo "+---------------------+"
echo "| Archlinux Bootstrap |"
echo "+---------------------+"
echo "ROOTPASSWD = $PASSWD"
echo "HOSTNAME = $NAME"
echo -e "DEVICE = $DEV\n"
sleep 2
timedatectl set-ntp true
gdisk <<EOF
o
y
n
+1G
ef00
n
+16G
8200
n
8304
w
y
EOF
mkfs.fat -F 32 -n P_EFI /dev/${DEV}p1
mkfs.ext4 -L P_ROOT /dev/${DEV}p3
mkswap -L P_SWAP /dev/${DEV}p2
mount -L P_ROOT /mnt # root
mkdir -p /mnt/boot
mount -L P_EFI /mnt/boot # EFI
swapon -L P_SWAP # swap
sed -e '/## Germany/,+1!d' /etc/pacman.d/mirrorlist
# for server dhcpcd and other programs are not required -> see good2know
pacstrap /mnt base base-devel linux linux-firmware vi dhcpcd wpa_supplicant dialog git netctl
genfstab -p /mnt > /mnt/etc/fstab
cat <<EOF > /mnt/root/bootstrap2.sh
#!/bin/bash
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc -utc
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo $NAME > /etc/hostname
mkinitcpio -p linux
pacman -Sy --noconfirm efibootmgr dosfstools gptfdisk
bootctl install
cat <<EEE > /boot/loader/entries/arch-uefi.conf
title Arch
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=LABEL=P_ROOT rw resume=LABEL=P_SWAP
EEE
cat <<EEE > /boot/loader/entries/arch-uefi-fallback.conf
title Arch Linux Fallback
linux /vmlinuz-linux
initrd /initramfs-linux-fallback.img
options root=LABEL=P_ROOT rw resume=LABEL=P_SWAP
EEE
cat <<EEE > /boot/loader/loader.conf
default arch-uefi
timeout 1
EEE
pacman --noconfirm -Sy reflector
reflector --country 'Germany' --sort rate --protocol https --save /etc/pacman.d/mirrorlist
printf "${PASSWD}\n${PASSWD}\n" | passwd root
exit
EOF
chmod u+x /mnt/root/bootstrap2.sh
arch-chroot /mnt /root/bootstrap2.sh
rm /mnt/root/bootstrap2.sh && rm ./bootstrap.sh
# reboot