archinstall/base.sh

250 lines
7.4 KiB
Bash

#!/bin/bash
# Vor Reboot
echo "Select Prozessor Vendor:"
echo "1) AMD 2) Intel 3) Other(no ucode)"
read -r vendor
if [[ $vendor == 1 ]]; then
echo "AMD"
ucode="amd-ucode"
elif [[ $vendor == 2 ]]; then
echo "Intel"
ucode="intel-ucode"
elif [[ $vendor == 3 ]]; then
echo "no Ucode"
ucode=""
else
echo "Vendor Unknown, aborting"
exit 1
fi
sleep 1
echo "Select Kernel"
echo "1) Linux 2) Linux+lts 3) Linux+zen 4) Linux+zen+lts 5) zen+lts"
read -r kernel
if [[ $kernel == 1 ]]; then
echo "Linux"
selectedKernel="linux"
header="linux-headers"
elif [[ $kernel == 2 ]]; then
echo "Linux/Linux LTS"
selectedKernel="linux linux-lts"
header="linux-headers linux-lts-headers"
elif [[ $kernel == 3 ]]; then
echo "Linux/Linux Zen"
selectedKernel="linux linux-zen"
header="linux-headers linux-zen-headers"
elif [[ $kernel == 4 ]]; then
echo "Linux/Linux LTS/Linux Zen"
selectedKernel="linux linux-lts linux-zen"
header="linux-headers linux-lts-headers linux-zen-headers"
elif [[ $kernel == 5 ]]; then
echo "Linux LTS/Linux Zen"
selectedKernel="linux-lts linux-zen"
header="linux-lts-headers linux-zen-headers"
else
echo "no Kernel selectet, aborting"
exit 1
fi
sleep 1
echo "General configuration:"
echo "1) Server (Systemd-networkd, no graphics card) 2) Laptop/Desktop (Networkmanager, Graphics Card)"
read -r configuration
if [[ $configuration == 2 ]]; then
echo "Laptop/Desktop"
echo ""
echo "Graphics Card"
echo "1) AMD 2) Intel 3) Nvidia"
read -r gracard
if [[ $gracard == 1 ]]; then
echo "AMD"
elif [[ $gracard == 2 ]]; then
echo "Intel"
elif [[ $gracard == 3 ]]; then
echo "Nvidia"
else
read -r -p "No Graphics Card selected. Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1
fi
elif [[ $configuration == 1 ]]; then
echo "Server"
fi
sleep 1
# Pacman Konfiguration
sed -i 's/#\(Color\)/\1/' /etc/pacman.conf
# Umbruch notwendug
sed -i 's/#\(ParallelDownloads\s=\s5\)/\1\
ILoveCandy/' /etc/pacman.conf
# Zeit einstellen
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc
# vim /etc/locale.gen
sed -i 's/#\(de_DE.UTF-8\)/\1/' /etc/locale.gen
locale-gen
echo "LANG=de_DE.UTF-8" >> /etc/locale.conf
echo "KEYMAP=de-latin1-nodeadkeys" >> /etc/vconsole.conf #only for console not for DE or terminal
#echo "FONT=Tamsyn10x20r" >> /etc/vconsole.conf
echo "arch" >> /etc/hostname
# vim /etc/hosts
echo "127.0.0.1 localhost" > /etc/hosts
echo "::1 localhost" >> /etc/hosts
echo "127.0.1.1 arch.localedomain arch" >> /etc/hosts
echo root:test | chpasswd
pacman -S $selectedKernel "$ucode"
pacman -S base-devel $header
pacman -S iwd dialog reflector xdg-user-dirs xdg-utils inetutils ldns bash-completion openssh rsync iptables-nft ipset firewalld lynx
pacman -S networkmanager
#Idee: ppp bluez(hier) modemmanager polkit(?)
pacman -S efibootmgr mtools dosfstools
if [[ $gracard == 1 ]]; then
pacman -S --noconfirm xf86-video-amdgpu
elif [[ $gracard == 3 ]]; then
pacman -S --noconfirm nvidia nvidia-utils nvidia-settings
fi
if [[ $configuration == 1 ]]; then
systemctl enable systemd-networkd
systemctl enable iwd
systemctl enable sshd
# Netzwerk
# Ethernet
echo "Ethernet"
ethernet_network=$(find / -type f -name 20-ethernet.network | grep configs)
cp "$ethernet_network" /etc/systemd/network/
# Wlan
echo "WLAN"
wlan_network=$(find / -type f -name 20-wlan.network | grep configs)
cp "$wlan_network" /etc/systemd/network/
# Wwan (Mobilefunk)
echo "Mobilfunk"
wwan_network=$(find / -type f -name 20-wwan.network | grep configs)
cp "$wwan_network" /etc/systemd/network/
elif [[ $configuration == 2 ]]; then
systemctl enable NetworkManager
wifi_backend_conf=$(find / -type f -name wifi_backend.conf | grep configs)
cp "$wifi_backend_conf" /etc/NetworkManager/conf.d/
fi
systemctl enable systemd-resolved
systemctl enable systemd-timesyncd
systemctl enable reflector.timer
systemctl enable firewalld
systemctl enable fstrim.timer
if [[ $gracard == 1 ]]; then
sed -i 's/MODULES=()/MODULES=(amdgpu)/' /etc/mkinitcpio.conf #AMD
elif [[ $gracard == 2 ]]; then
sed -i 's/MODULES=()/MODULES=(i915)/' /etc/mkinitcpio.conf #Intel
elif [[ $gracard == 3 ]]; then
sed -i 's/MODULES=()/MODULES=(nvidia)/' /etc/mkinitcpio.conf #Nvidia
fi
sed -i 's/HOOKS=(.*)/HOOKS=(base systemd keyboard autodetect sd-vconsole modconf kms block sd-encrypt filesystems fsck)/' /etc/mkinitcpio.conf
if [[ $kernel == 1 ]]; then
mkinitcpio -p linux
elif [[ $kernel == 2 ]]; then
mkinitcpio -p linux
mkinitcpio -p linux-lts
elif [[ $kernel == 3 ]]; then
mkinitcpio -p linux
mkinitcpio -p linux-zen
elif [[ $kernel == 4 ]]; then
mkinitcpio -p linux
mkinitcpio -p linux-lts
mkinitcpio -p linux-zen
elif [[ $kernel == 5 ]]; then
mkinitcpio -p linux-lts
mkinitcpio -p linux-zen
fi
bootctl install
# Bootloaderconfig
loader_conf=$(find / -type f -name loader.conf | grep configs)
cp "$loader_conf" /boot/loader/
if [[ $kernel == 1 || $kernel == 2 || $kernel == 3 || $kernel == 4 ]]; then
# Entry Arch
arch_conf=$(find / -type f -name arch.conf | grep configs)
cp "$arch_conf" /boot/loader/entries/
if [[ $vendor == 1 ]]; then
sed -i 's/#AMD//' /boot/loader/entries/arch.conf
elif [[ $vendor == 2 ]]; then
sed -i 's/#Intel//' /boot/loader/entries/arch.conf
fi
fi
if [[ $kernel == 2 || $kernel == 4 || $kernel == 5 ]]; then
# Entry Arch LTS
arch_lts_conf=$(find / -type f -name arch-lts.conf | grep configs)
cp "$arch_lts_conf" /boot/loader/entries/
if [[ $vendor == 1 ]]; then
sed -i 's/#AMD//' /boot/loader/entries/arch-lts.conf
elif [[ $vendor == 2 ]]; then
sed -i 's/#Intel//' /boot/loader/entries/arch-lts.conf
fi
fi
if [[ $kernel == 3 || $kernel == 4 || $kernel == 5 ]]; then
# Entry Arch Zen
arch_zen_conf=$(find / -type f -name arch-zen.conf | grep configs)
cp "$arch_zen_conf" /boot/loader/entries/
if [[ $vendor == 1 ]]; then
sed -i 's/#AMD//' /boot/loader/entries/arch-zen.conf
elif [[ $vendor == 2 ]]; then
sed -i 's/#Intel//' /boot/loader/entries/arch-zen.conf
fi
fi
if [[ $kernel == 1 || $kernel == 2 || $kernel == 3 || $kernel == 4 ]]; then
# Entry Arch Fallback
arch_fallback_conf=$(find / -type f -name arch-fallback.conf | grep configs)
cp "$arch_fallback_conf" /boot/loader/entries/
if [[ $vendor == 1 ]]; then
sed -i 's/#AMD//' /boot/loader/entries/arch-fallback.conf
elif [[ $vendor == 2 ]]; then
sed -i 's/#Intel//' /boot/loader/entries/arch-fallback.conf
fi
fi
if [[ $kernel == 2 || $kernel == 4 || $kernel == 5 ]]; then
# Entry Arch LTS Fallback
arch_lts_fallback_conf=$(find / -type f -name arch-lts-fallback.conf | grep configs)
cp "$arch_lts_fallback_conf" /boot/loader/entries/
if [[ $vendor == 1 ]]; then
sed -i 's/#AMD//' /boot/loader/entries/arch-lts-fallback.conf
elif [[ $vendor == 2 ]]; then
sed -i 's/#Intel//' /boot/loader/entries/arch-lts-fallback.conf
fi
fi
if [[ $kernel == 3 || $kernel == 4 || $kernel == 5 ]]; then
# Entry Arch Zen Fallback
arch_zen_fallback_conf=$(find / -type f -name arch-zen-fallback.conf | grep configs)
cp "$arch_zen_fallback_conf" /boot/loader/entries/
if [[ $vendor == 1 ]]; then
sed -i 's/#AMD//' /boot/loader/entries/arch-zen-fallback.conf
elif [[ $vendor == 2 ]]; then
sed -i 's/#Intel//' /boot/loader/entries/arch-zen-fallback.conf
fi
fi
useradd -mG wheel eichehome
echo eichehome:testen | chpasswd
echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers.d/wheel_group