Compare commits

..
32 Commits
Author SHA1 Message Date
dataprolet f4abf2692a Update install.sh 2025-02-11 12:11:23 +01:00
dataprolet 0804eb8f3e Update README.md 2025-02-11 11:12:09 +01:00
dataprolet c68d425332 Update alt/install-minimal.sh 2025-02-11 11:09:04 +01:00
dataprolet b928d5bd1b Update alt/install-headless.sh 2025-02-11 11:08:50 +01:00
dataprolet d10347d727 Update alt/install-lvm.sh 2025-02-11 11:08:36 +01:00
dataprolet 0a566f13f2 Update alt/install-full.sh 2025-02-11 11:08:27 +01:00
dataprolet cd3a009650 Update alt/install-x11.sh 2025-02-11 11:08:17 +01:00
dataprolet 4e8da09368 Update alt/install-grub.sh 2025-02-11 11:08:06 +01:00
dataprolet 539b611c4c Update post/pkgs 2025-02-11 11:07:18 +01:00
dataprolet 8b08101e49 Update post/post-install.sh 2025-02-11 11:07:01 +01:00
dataprolet be6cdc37b0 Update post/post-install.md 2025-02-11 11:06:51 +01:00
dataprolet 05278b49e6 Update old/install.md 2025-02-11 11:06:33 +01:00
dataprolet 02caf2b030 Update README.md 2025-02-11 11:05:13 +01:00
dataprolet 00fff1e13b Update README.md 2025-02-11 11:04:15 +01:00
dataprolet 485abb14df Update README.md 2025-02-11 10:43:52 +01:00
dataprolet c2d1e599fc Update README.md 2025-02-11 10:43:21 +01:00
dataprolet ce367f3bc1 Delete screenshot.png 2025-02-11 10:42:32 +01:00
dataprolet e3a93edc72 Upload files to "img" 2025-02-11 10:42:25 +01:00
dataprolet fc34be6120 Upload files to "/" 2025-02-11 10:41:58 +01:00
dataprolet a2744d3176 Delete screenshot.png 2025-02-11 10:41:43 +01:00
dataprolet 1352c9d182 Upload files to "/" 2025-02-11 10:41:33 +01:00
dataprolet 91335391ee Delete sreenshot.png/screenshot.png 2025-02-11 10:41:21 +01:00
dataprolet 711e9b330d Upload files to "sreenshot.png" 2025-02-11 10:40:54 +01:00
dataprolet c8720675d9 Delete screenshot.png 2025-02-11 10:40:36 +01:00
dataprolet 25ec2c22f6 Update install.sh 2025-02-11 10:03:55 +01:00
dataprolet 7b5224663d Update install.sh 2025-02-10 17:16:15 +01:00
dataprolet d1c95791ab Update install.sh 2025-02-10 13:28:11 +01:00
dataprolet b69a8499f9 Update install.sh
Add more default packages.
2025-02-10 13:20:55 +01:00
dataprolet 5146991dd4 Add install-minimal.sh
Remove linux-zen, add plasma-nm.
2025-02-10 11:17:56 +01:00
dataprolet 384b86164a Update README.md 2025-02-09 22:53:59 +01:00
dataprolet 01f720c25d Merge pull request 'Update README.md' (#1) from taxicomics/Arch-Linux-Installer:main into main
Reviewed-on: #1
Reviewed-by: dataprolet
2025-02-09 22:53:08 +01:00
taxicomics 61ff0452e3 Update README.md 2025-02-07 16:33:46 +01:00
14 changed files with 568 additions and 41 deletions

No files matched your search

+7 -8
View File
@@ -1,12 +1,12 @@
# Simple, modern and secure installation of Arch Linux with KDE Plasma. # Simple, modern and secure installation of Arch Linux with KDE Plasma
### This is my personal installation routine, which I continously expand and redefine. ### This is my personal installation routine, which I continously expand and redefine.
This installation script aims for a simple (read minimal) Arch Linux installation, which is modern in the way that it uses UEFI, systemd-boot and Wayland, secure in the way that it uses full-disk encryption using LUKS as well as flexibility by using Btrfs subvolumes for the root and home partition. This installation script aims for a simple (read minimal) Arch Linux installation, which is modern in the way that it uses UEFI, systemd-boot and Wayland, secure in the way that it uses full-disk encryption using LUKS as well as flexibility by using Btrfs subvolumes for the root and home partition.
Tested and working as of **Januar 2025**. Tested and working as of **February 2025**.
![Post-install screenshot.](screenshot.png) ![Post-install screenshot.](img/screenshot.png)
## To automatically install Arch Linux, clone this repository: ## To automatically install Arch Linux, clone this repository:
``` ```
@@ -22,14 +22,15 @@ $ sh install.sh
``` ```
### Post-Install ### Post-Install
Check out the list of [suggested packages to install](https://git.dataprolet.de/dataprolet/Arch-Linux-Installer/src/branch/main/post-install.md). Check out the list of [suggested packages to install](post/post-install.md).
### To switch from X11 to Wayland on an existing installation use the following command and reboot: ### To switch from X11 to Wayland on an existing installation use the following command and reboot:
``` ```
# pacman -S wayland xorg-xwayland && sed -i 's/plasma/plasmawayland/g' /etc/sddm.conf.d/kde_settings.conf # pacman -S wayland xorg-xwayland && sed -i 's/plasma/plasmawayland/g' /etc/sddm.conf.d/kde_settings.conf
``` ```
### *There are now two additional versions of the script:* ### *There are [alternative versions](alt) of the script:*
- `install-minimal.sh`- Installs only the necessary packages for Plasma.
- `install-lvm.sh` - Installs using Ext4 and uses LVM for /root and /home. - `install-lvm.sh` - Installs using Ext4 and uses LVM for /root and /home.
- `install-grub.sh` - Installs using GRUB for legacy BIOS (and Btrfs). - `install-grub.sh` - Installs using GRUB for legacy BIOS (and Btrfs).
- `ìnstall-x11.sh`- Installs using X11 (and systemd-boot/Btrfs). - `ìnstall-x11.sh`- Installs using X11 (and systemd-boot/Btrfs).
@@ -41,9 +42,7 @@ Check out the list of [suggested packages to install](https://git.dataprolet.de/
- Creates Btrfs filesystems with zstd compression. - Creates Btrfs filesystems with zstd compression.
- Creates Btrfs volumes for /root and /home. - Creates Btrfs volumes for /root and /home.
- Refreshes the latest mirror list. - Refreshes the latest mirror list.
- Installs a base system (base linux linux-firmware btrfs-progs nano networkmanager sudo). - Installs a base system and a minimal KDE Plasma desktop environment.
- Installs very few additional packages (firefox konsole linux-zen)
- Installs a minimal KDE Plasma desktop environment (plasma-desktop, sddm, sdmd-kcm)
- Installs systemd-boot as a bootloader. - Installs systemd-boot as a bootloader.
- Sets German keyboard layout and English locale. - Sets German keyboard layout and English locale.
- Enables SDDM auto-login to boot into Plasma after the first reboot. - Enables SDDM auto-login to boot into Plasma after the first reboot.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+425
View File
@@ -0,0 +1,425 @@
#!/bin/bash
# https://wizardzines.com/comics/bash-errors/bash-errors.png
set -euo pipefail
exec >> >(tee -i /tmp/install.log)
exec 2>&1
clear
# Friendly introduction.
echo "0. WELCOME"
echo "Welcome to the Arch Linux installation script!"
echo "This script will ERASE ALL DATA on the partition you will choose next!"
echo
read -p "Do you want to continue? Type [Y]es or [N]o. " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
clear
# Selecting disk.
echo "1. PARTITIONING"
echo "Please select a disk to partition:"
echo
# Don't separate values by space.
IFS=$'\n'
# Set variable containing name and size of all disks.
declare -a dsks=( $(lsblk -d | tail -n+2 | awk '{print $1" "$4}') )
# Select value on array.
select dev in "${dsks[@]}"
do
break
done
echo
# Separate values by spaces.
IFS=' '
# Create new variable of selection.
array=(${dev})
dev="${array[0]}"
clear
echo "2. ENCRYPTION"
echo
# Setting encryption password.
echo "Choose a strong password for encrypting the primary partition:"
pwcr=""
while [[ -z "${pwcr}" ]]; do
echo "Please enter a password: "
read -rs pwfr
read -rs -p "Retype a password: " pwsc
if [[ "${pwfr}" == "${pwsc}" ]];
then
pwcr="${pwfr}"
echo
echo "Both passwords are the same. Continuing.."
break
else
echo
echo "You have entered different passwords. Try again.."
echo
fi
done
clear
echo "3. HOSTNAME"
echo
# Setting hostname.
echo "Before installing the system, please enter a hostname:"
read -r host
clear
echo "4. ROOT PASSWORD"
echo
# Setting root password.
echo "Choose a password for the root account:"
pwr=""
while [[ -z "${pwr}" ]]; do
echo "Please enter a password: "
read -rs pwfr
read -rs -p "Retype a password: " pwsc
if [[ "${pwfr}" == "${pwsc}" ]]; then
pwrt="${pwfr}"
echo
echo "Both passwords are the same. Continuing.."
break
else
echo
echo "You have entered different passwords. Try again.."
echo
fi
done
clear
echo "4. USER"
echo
# Setting username
echo "Please enter a username:"
read -r user
echo
# Setting user password.
echo "Also please choose a password for your user:"
pwu=""
while [[ -z "${pwu}" ]]; do
echo "Please enter a password: "
read -rs pwfr
read -rs -p "Retype a password: " pwsc
if [[ "${pwfr}" == "${pwsc}" ]];
then
pwur="${pwfr}"
echo
echo "Both passwords are the same. Continuing.."
break
else
echo
echo "You have entered different passwords. Try again.."
echo
fi
done
clear
echo "5. INSTALLING SYSTEM.."
echo
# Starting partitioning.
echo "Partitioning /dev/${dev}.."
echo
# Clearing partition table of selected disk.
echo "Clearing existing partitioning table."
sgdisk -Z "/dev/${dev}"
echo
# Creating boot partition.
echo "Creating boot partition of 512 MB."
sgdisk -n 1:0:+512M "/dev/${dev}"
echo
# Setting type for EFI.
echo "Setting partition type."
sgdisk -t 1:ef00 "/dev/${dev}"
echo
# Creating system partition.
echo "Creating system partition."
sgdisk -n 2:0:0 "/dev/${dev}"
echo
# Print partitions.
echo "This is your new partition table:"
lsblk | grep "${dev}"
echo
# Get new variable.
if [[ "${dev}" = "nvme0n1" ]]; then
main="${dev}p2"
else
main="${dev}2"
fi
# Encrypting partition.
echo "Encrypting system partition. This might take a while."
echo
echo -en "${pwcr}\n${pwcr}" | cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/$main
echo "Partition successfully encrypted."
echo
# Opening encrypted partition and mounting at /dev/mapper/main.
echo "Decrypting.. This also might take a while."
echo
echo -en "${pwcr}\n${pwcr}" | cryptsetup luksOpen "/dev/${main}" main
echo "Partition successfully opened."
echo
lsblk | grep "${dev}"
echo
echo "Creating the filesystem."
if [ "${dev}" = "nvme0n1" ]; then
boot="${dev}p1"
else
boot="${dev}1"
fi
mkfs.fat -F 32 -n UEFI "/dev/${boot}"
echo "Filesystem for boot successfully created."
echo
# Creating btrfs partition.
mkfs.btrfs "/dev/mapper/main"
mount "/dev/mapper/main" "/mnt"
btrfs subvolume create "/mnt/root"
btrfs subvolume create "/mnt/home"
umount "/mnt"
echo
echo "Mounting.."
mount -o autodefrag,compress=zstd:3,subvol=root "/dev/mapper/main" "/mnt"
mkdir "/mnt/home"
mount -o autodefrag,compress=zstd:3,subvol=home "/dev/mapper/main" "/mnt/home"
mkdir "/mnt/boot"
mount "/dev/${boot}" "/mnt/boot"
echo "Mounting complete."
echo
lsblk -a
echo
# Updating mirrors using reflector.
echo "Updating mirrors.."
reflector --verbose --latest 10 --country Germany --age 24 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
echo "Done."
echo
# Check if keyring is up-to-date
if checkupdates | grep -q archlinux-keyring; then
echo "Updating keyring.."
pacman -Sy archlinux-keyring --noconfirm
echo "Done."
fi
echo
# Installing base system.
echo "Installing basic packages.."
pacstrap "/mnt" base btrfs-progs firefox konsole linux linux-firmware plasma-nm nano networkmanager plasma-desktop sddm sddm-kcm sudo xorg-xwayland
echo "Base system installed."
echo
# Generating fstab.
echo "Generating fstab.."
genfstab -Up "/mnt" > "/mnt/etc/fstab"
echo "Done."
echo
# Setting hostname.
echo "Setting hostname.."
echo "${host}" > "/mnt/etc/hostname"
echo "Done."
echo
# Setting locale.
echo "Setting and generating locale.."
cat << EOF > "/mnt/etc/locale.gen"
en_US.UTF-8 UTF-8
EOF
#echo "${localegen}" >>/mnt/etc/locale.gen
arch-chroot "/mnt" locale-gen
echo "LANG=en_US.UTF-8" > "/mnt/etc/locale.conf"
echo "KEYMAP=de-latin1" > "/mnt/etc/vconsole.conf"
echo "Done."
echo
# Set X locale and keyboard alyout.
echo "Setting locale and keyboard layout."
#arch-chroot /mnt localectl --no-convert set-keymap de-latin1-nodeadkeys
systemd-firstboot --root=/mnt --keymap=de-latin1-nodeadkeys
cat << EOF > "/mnt/etc/X11/xorg.conf.d/00-keyboard.conf"
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# instruct systemd-localed to update it.
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "de"
Option "XkbModel" "pc105"
Option "XkbVariant" "deadgraveacute"
EndSection
EOF
echo "Done."
echo
# Editing mkinitcpio.conf.
echo "Editing /etc/mkinitcpio.conf.."
sed -i '55s/.*/HOOKS=(base udev autodetect microcode modconf kms block keyboard keymap encrypt filesystems fsck shutdown)/' /mnt/etc/mkinitcpio.conf
echo "Done."
echo
# Editing taskbar.
#sed -i '65s/.*/launchers=applications:systemsettings.desktop,applications:org.kde.konsole.desktop,applications:firefox.desktop/' /mnt/home/${user}/.config/plasma-org.kde.plasma.desktop-appletsrc
# Creating inital ramdisk.
echo "Creating inital ramdisk for linux.."
arch-chroot /mnt mkinitcpio -p linux
echo "Done."
echo
# Enable network and display manager.
echo "Enabling Networkmanager and display manager (sddm).."
arch-chroot "/mnt" systemctl enable NetworkManager sddm
echo "Done."
echo
# Set root password
echo "Setting root password.."
echo -en "${pwrt}\n${pwrt}" | arch-chroot "/mnt" passwd
echo "Done."
echo
# Install bootloader.
echo "Installing systemd-boot.."
arch-chroot "/mnt" bootctl --path=/boot install
echo "Done."
echo
# Get UUID for primary partition
uuid=$(ls -l /dev/disk/by-uuid | grep "${main}" | awk '{print $9}')
# Set bootloader entry.
echo "Setting up bootloader.."
cat << EOF > "/mnt/boot/loader/entries/arch.conf"
title Arch Linux
linux /vmlinuz-linux
#initrd /amd-ucode.img
#initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=UUID=${uuid}:main
options root=/dev/mapper/main rw
options rootflags=subvol=root
options lang=de locale=de_DE.UTF-8
options init=/usr/lib/systemd/systemd
EOF
# Set bootloader fallback entry.
cat << EOF > "/mnt/boot/loader/entries/arch-fallback.conf"
title Arch Linux Fallback
linux /vmlinuz-linux
initrd /initramfs-linux-fallback.img
options cryptdevice=UUID=${uuid}:main
options root=/dev/mapper/main rw
options rootflags=subvol=root
options lang=de locale=de_DE.UTF-8
options init=/usr/lib/systemd/systemd
EOF
# Set bootloader.
echo "timeout 1" >> "/mnt/boot/loader/loader.conf"
echo "default arch.conf" >> "/mnt/boot/loader/loader.conf"
echo "Done."
echo
# Set username, password and group.
echo "Adding user.."
arch-chroot /mnt useradd -m "${user}"
echo -en "${pwur}\n${pwur}" | arch-chroot /mnt passwd "${user}"
arch-chroot /mnt gpasswd -a "${user}" wheel
sed -i '82s/.*/%wheel ALL=(ALL) ALL/' /mnt/etc/sudoers
echo "Done."
echo
# Enabling sddm auto-login.
echo "Enabling auto-login.."
mkdir /mnt/etc/sddm.conf.d
cat << EOF > /mnt/etc/sddm.conf.d/autologin.conf
[Autologin]
User=${user}
Session=plasma
EOF
echo "Done."
echo
# Adding sddm config.
cat << EOF > /mnt/etc/sddm.conf.d/kde_settings.conf
[Autologin]
Relogin=false
Session=plasma
User=${user}
[General]
HaltCommand=/usr/bin/systemctl poweroff
RebootCommand=/usr/bin/systemctl reboot
[Theme]
Current=breeze
[Users]
MaximumUid=60513
MinimumUid=1000
EOF
# Unmounting and rebooting.
echo "Unmounting system.."
umount "/mnt/boot"
umount "/mnt"
echo "Done."
echo
clear
echo "Installation finished!"
#read -p "Do you want to read the log? Type [Y]es or [N]o. " -n 1 -r
#echo
#if [[ ! $REPLY =~ ^[Yy]$ ]]
#then
# less /tmp/install.log
#fi
#echo
#echo "Press [Enter] to shut down, then remove the installation media and start your system."
#poweroff
File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 489 KiB

+136 -33
View File
@@ -8,6 +8,12 @@ exec 2>&1
clear clear
# Check root
if [[ $(id -u) -ne 0 ]]; then
echo "This script needs to be run as root!"
exit 1
fi
# Friendly introduction. # Friendly introduction.
echo "0. WELCOME" echo "0. WELCOME"
echo "Welcome to the Arch Linux installation script!" echo "Welcome to the Arch Linux installation script!"
@@ -46,6 +52,21 @@ IFS=' '
array=(${dev}) array=(${dev})
dev="${array[0]}" dev="${array[0]}"
# TODO Check disk size
# Disk auswählen (Variable `dev` muss gesetzt sein)
#disk="/dev/${dev}"
# Festplattengröße in Gigabyte berechnen
#disk_size=$(lsblk -b -n -o SIZE "$disk" | awk '{print $1 / 1024 / 1024 / 1024}')
# Prüfen, ob die Festplatte größer als 10 GB ist
#if (( $(echo "$disk_size >= 10" | bc -l) )); then
# echo "✅ Die Festplatte hat $disk_size GB und ist größer als 10 GB."
#else
# echo "❌ Fehler: Die Festplatte ist zu klein ($disk_size GB). Bitte eine größere auswählen."
# exit 1
#fi
clear clear
echo "2. ENCRYPTION" echo "2. ENCRYPTION"
@@ -53,14 +74,14 @@ echo
# Setting encryption password. # Setting encryption password.
echo "Choose a strong password for encrypting the primary partition:" echo "Choose a strong password for encrypting the primary partition:"
pwcr="" password_encrypt=""
while [[ -z "${pwcr}" ]]; do while [[ -z "${password_encrypt}" ]]; do
echo "Please enter a password: " #echo "Please enter a password: "
read -rs pwfr read -rs -p "Please enter a password: " password_first
read -rs -p "Retype a password: " pwsc read -rs -p "Retype a password: " password_second
if [[ "${pwfr}" == "${pwsc}" ]]; if [[ "${password_first}" == "${password_second}" ]];
then then
pwcr="${pwfr}" password_encrypt="${password_first}"
echo echo
echo "Both passwords are the same. Continuing.." echo "Both passwords are the same. Continuing.."
break break
@@ -76,25 +97,29 @@ clear
echo "3. HOSTNAME" echo "3. HOSTNAME"
echo echo
# Setting hostname. # Setting hostname
echo "Before installing the system, please enter a hostname:" #echo "Before installing the system, please enter a hostname:"
read -r host read -r -p "Before installing the system, please enter a hostname: " host
while [[ -z "${host}" ]]; do
echo "Hostname can not be empty!"
read -r -p "Please enter a hostname: " host
done
clear clear
echo "4. ROOT PASSWORD" echo "4. ROOT PASSWORD"
echo echo
# Setting root password. # Setting root password
echo "Choose a password for the root account:" echo "Choose a password for the root account:"
pwr="" password_root=""
while [[ -z "${pwr}" ]]; do while [[ -z "${password_root}" ]]; do
echo "Please enter a password: " #echo "Please enter a password: "
read -rs pwfr read -rs -p "Please enter a password: " password_first
read -rs -p "Retype a password: " pwsc read -rs -p "Retype a password: " password_second
if [[ "${pwfr}" == "${pwsc}" ]]; then if [[ "${password_first}" == "${password_second}" ]]; then
pwrt="${pwfr}" password_root="${password_first}"
echo echo
echo "Both passwords are the same. Continuing.." echo "Both passwords are the same. Continuing.."
break break
@@ -111,21 +136,26 @@ echo "4. USER"
echo echo
# Setting username # Setting username
echo "Please enter a username:" #echo "Please enter a username:"
read -r user read -r -p "Please enter a username: " user
while [[ -z "${user}" ]]; do
echo "Benutzername darf nicht leer sein!"
read -r -p "Please enter a username: " user
done
echo echo
# Setting user password. # Setting user password.
echo "Also please choose a password for your user:" echo "Also please choose a password for your user:"
pwu="" password_user=""
while [[ -z "${pwu}" ]]; do while [[ -z "${password_user}" ]]; do
echo "Please enter a password: " #echo "Please enter a password: "
read -rs pwfr read -rs -p "Please enter a password: " password_first
read -rs -p "Retype a password: " pwsc read -rs -p "Retype a password: " password_second
if [[ "${pwfr}" == "${pwsc}" ]]; if [[ "${password_first}" == "${password_second}" ]];
then then
pwur="${pwfr}" password_user="${password_first}"
echo echo
echo "Both passwords are the same. Continuing.." echo "Both passwords are the same. Continuing.."
break break
@@ -180,14 +210,14 @@ fi
# Encrypting partition. # Encrypting partition.
echo "Encrypting system partition. This might take a while." echo "Encrypting system partition. This might take a while."
echo echo
echo -en "${pwcr}\n${pwcr}" | cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/$main echo -en "${password_encrypt}\n${password_encrypt}" | cryptsetup -c aes-xts-plain -s 512 luksFormat "/dev/${main}"
echo "Partition successfully encrypted." echo "Partition successfully encrypted."
echo echo
# Opening encrypted partition and mounting at /dev/mapper/main. # Opening encrypted partition and mounting at /dev/mapper/main.
echo "Decrypting.. This also might take a while." echo "Decrypting.. This also might take a while."
echo echo
echo -en "${pwcr}\n${pwcr}" | cryptsetup luksOpen "/dev/${main}" main echo -en "${password_encrypt}\n${password_encrypt}" | cryptsetup luksOpen "/dev/${main}" main
echo "Partition successfully opened." echo "Partition successfully opened."
echo echo
@@ -214,6 +244,7 @@ mount "/dev/mapper/main" "/mnt"
btrfs subvolume create "/mnt/root" btrfs subvolume create "/mnt/root"
btrfs subvolume create "/mnt/home" btrfs subvolume create "/mnt/home"
sync
umount "/mnt" umount "/mnt"
echo echo
@@ -245,7 +276,76 @@ echo
# Installing base system. # Installing base system.
echo "Installing basic packages.." echo "Installing basic packages.."
pacstrap "/mnt" base btrfs-progs firefox konsole linux linux-firmware linux-zen nano networkmanager plasma-desktop sddm sddm-kcm sudo xorg-xwayland
# Basis-Pakete
base_packages=(
base
btrfs-progs
firefox
konsole
linux
linux-firmware
linux-zen
nano
networkmanager
sddm
sddm-kcm
sudo
xorg-xwayland
plasma-desktop
plasma-nm
)
# Notwendige Plasma-Integrationen
plasma_integrations=(
plasma-pa
breeze-gtk
kde-gtk-config
kdeplasma-addons
kscreen
plasma-browser-integration
powerdevil
)
# KDE Utilities
kde_utils=(
ark
bluedevil
discover
dolphin
filelight
gwenview
kate
kcalc
kdeconnect
kinfocenter
kmag
plasma-systemmonitor
okular
partitionmanager
spectacle
)
# Additional default software
default_software=(
libreoffice
pipewire
pipewire-pulse
pipewire-alsa
wireplumber
)
# Alle Pakete zusammenführen
all_packages=(
"${base_packages[@]}"
"${plasma_integrations[@]}"
"${kde_utils[@]}"
"${default_software[@]}"
)
# Pakete installieren
pacstrap "/mnt" "${all_packages[@]}"
echo "Base system installed." echo "Base system installed."
echo echo
@@ -297,7 +397,8 @@ echo
# Editing mkinitcpio.conf. # Editing mkinitcpio.conf.
echo "Editing /etc/mkinitcpio.conf.." echo "Editing /etc/mkinitcpio.conf.."
sed -i '55s/.*/HOOKS=(base udev autodetect microcode modconf kms block keyboard keymap encrypt filesystems fsck shutdown)/' /mnt/etc/mkinitcpio.conf sed -i 's/^HOOKS=.*/HOOKS=(base udev autodetect microcode modconf kms block keyboard keymap encrypt filesystems fsck shutdown)/' /mnt/etc/mkinitcpio.conf
#sed -i '55s/.*/HOOKS=(base udev autodetect microcode modconf kms block keyboard keymap encrypt filesystems fsck shutdown)/' /mnt/etc/mkinitcpio.conf
echo "Done." echo "Done."
echo echo
@@ -318,7 +419,7 @@ echo
# Set root password # Set root password
echo "Setting root password.." echo "Setting root password.."
echo -en "${pwrt}\n${pwrt}" | arch-chroot "/mnt" passwd echo -en "${password_root}\n${password_root}" | arch-chroot "/mnt" passwd
echo "Done." echo "Done."
echo echo
@@ -367,7 +468,7 @@ echo
# Set username, password and group. # Set username, password and group.
echo "Adding user.." echo "Adding user.."
arch-chroot /mnt useradd -m "${user}" arch-chroot /mnt useradd -m "${user}"
echo -en "${pwur}\n${pwur}" | arch-chroot /mnt passwd "${user}" echo -en "${password_user}\n${password_user}" | arch-chroot /mnt passwd "${user}"
arch-chroot /mnt gpasswd -a "${user}" wheel arch-chroot /mnt gpasswd -a "${user}" wheel
sed -i '82s/.*/%wheel ALL=(ALL) ALL/' /mnt/etc/sudoers sed -i '82s/.*/%wheel ALL=(ALL) ALL/' /mnt/etc/sudoers
echo "Done." echo "Done."
@@ -405,7 +506,9 @@ EOF
# Unmounting and rebooting. # Unmounting and rebooting.
echo "Unmounting system.." echo "Unmounting system.."
sync
umount "/mnt/boot" umount "/mnt/boot"
umount "/mnt/home"
umount "/mnt" umount "/mnt"
echo "Done." echo "Done."
echo echo
View File
File renamed without changes.
View File
File renamed without changes.
File renamed without changes.
File renamed without changes.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB