From 1cb455fba7099bf7e916f56cbacfc884c024619b Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Fri, 29 Dec 2023 13:49:55 +0100 Subject: [PATCH] Update installation guide,script,hosts file --- guides/installation.md | 49 ++++++++++++++++++------------------------ install_root.sh | 10 +++++---- root/etc/hosts | 3 --- 3 files changed, 27 insertions(+), 35 deletions(-) diff --git a/guides/installation.md b/guides/installation.md index 29dc88b..167158d 100644 --- a/guides/installation.md +++ b/guides/installation.md @@ -17,45 +17,32 @@ Create partitions for the drives fdisk /dev/nvme0n1 # Create new GPT table and make 5 partitions # first for boot (1G), second for swap (16G), -# third for root 1 (100G), fourth for root 2 (100G), fifth for data (rest ~714G) -fdisk /dev/nvme1n1 -# Create new GPT table with single partition -fdisk /dev/sda -# Create new GPT table with single partition +# third for root (256G), fifth for data (rest ~680G) ``` Format partitions that shouldn't be encrypted ```bash mkfs.fat -F 32 /dev/nvme0n1p1 -fatlabel /dev/nvme0n1p1 BOOT +fatlabel /dev/nvme0n1p1 EFI mkswap -L SWAP /dev/nvme0n1p2 ``` Format drives using LUKS for encryption and open them to mapper devices ```bash -cryptsetup luksFormat --label ARCH_ROOT1 /dev/nvme0n1p3 -cryptsetup luksFormat --label ARCH_ROOT2 /dev/nvme0n1p4 -cryptsetup luksFormat --label DATA /dev/nvme0n1p5 -cryptsetup luksFormat --label DATA2 /dev/sda1 -cryptsetup luksFormat --label BACKUPS /dev/nvme1n1p1 +cryptsetup luksFormat --type luks2 --label LINUXROOT /dev/nvme0n1p3 +cryptsetup luksFormat --type luks2 --label DATA /dev/nvme0n1p4 -cryptsetup luksOpen /dev/disk/by-label/ARCH_ROOT1 cryptroot -cryptsetup luksOpen /dev/disk/by-label/ARCH_ROOT2 cryptroot2 +cryptsetup luksOpen /dev/disk/by-label/LINUXROOT cryptroot cryptsetup luksOpen /dev/disk/by-label/DATA cryptdata -cryptsetup luksOpen /dev/disk/by-label/DATA2 cryptdata2 -cryptsetup luksOpen /dev/disk/by-label/BACKUPS cryptbackups ``` -Create EXT4 filesystem on the encrypted drives +Create BTRFS filesystem on the encrypted drives ```bash -mkfs.ext4 -L ARCH_HYPRLAND /dev/mapper/cryptroot -mkfs.ext4 -L ARCH_KDE /dev/mapper/cryptroot2 -mkfs.ext4 -L CRYPTDATA /dev/mapper/cryptdata -mkfs.ext4 -L CRYPTDATA2 /dev/mapper/cryptdata2 -mkfs.ext4 -L CRYPTBACKUPS /dev/mapper/cryptbackups +mkfs.btrfs -f -L CRYPTROOT /dev/mapper/cryptroot +mkfs.btrfs -f -L DATA /dev/mapper/cryptdata ``` Mount the drives @@ -63,15 +50,22 @@ Mount the drives ```bash mount /dev/mapper/cryptroot /mnt mount /dev/disk/by-label/BOOT /mnt/efi --mkdir -mkdir /mnt/efi/arch-hyprland /mnt/efi/arch-kde -mount --bind /mnt/efi/arch-kde /mnt/boot --mkdir +mkdir /mnt/efi/arch-1 +mount --bind /mnt/efi/arch-1 /mnt/boot --mkdir mount /dev/mapper/cryptdata /mnt/mnt/data --mkdir -mount /dev/mapper/cryptdata2 /mnt/mnt/data2 --mkdir -mount /dev/mapper/cryptbackups /mnt/mnt/backups --mkdir -mount /dev/mapper/cryptroot2 /mnt/mnt/arch-kde --mkdir swapon /dev/disk/by-label/SWAP ``` +Create BTRFS subvolumes + +```bash +btrfs subvolume create /mnt/home +btrfs subvolume create /mnt/var +btrfs subvolume create /mnt/var/log +btrfs subvolume create /mnt/var/cache +btrfs subvolume create /mnt/var/tmp +``` + ## Base installation ```bash @@ -84,8 +78,7 @@ arch-chroot /mnt Configure essentials ```bash -pacman -S networkmanager neovim sudo reflector pacman-contrib man-db man-pages \ - rsync btop bind tldr git base-devel +pacman -S git btrfs-progs ln -sf /usr/share/zoneinfo/CET /etc/localtime hwclock --systohc sed -i 's/^#en_US.UTF-8/en_US.UTF-8/g' /etc/locale.gen diff --git a/install_root.sh b/install_root.sh index bfa1425..7362a02 100755 --- a/install_root.sh +++ b/install_root.sh @@ -30,6 +30,8 @@ pacman -S --noconfirm --needed python-rich bc lua jq bat # Copy over system configuration data cp root/etc/pacman.conf /etc cp root/etc/hosts /etc +HOSTNAME="$(cat /etc/hostname)" +sed -i "s/^127.0.1.1 pc.localdomain pc/127.0.1.1 ${HOSTNAME}.localdomain ${HOSTNAME}/g" /etc/locale.gen install -m 640 root/etc/sudoers /etc install -m 640 root/etc/sudoers.d/* /etc/sudoers.d cp root/etc/modprobe.d/nobeep.conf /etc/modprobe.d # disable motherboard speaker @@ -41,6 +43,10 @@ cp root/.rsync-filter / # Sync pacman repos after /etc/pacman.conf got updated sudo pacman -Sy +# Install zsh and make it the default shell for root +sudo pacman -S --noconfirm --needed zsh +chsh -s /usr/bin/zsh root + # Copy ZSH shell configuration mkdir -p /etc/zsh cp -ra root/etc/zsh /etc @@ -52,10 +58,6 @@ rm -rf ~/.config/zsh/.zgenom git clone https://github.com/jandamm/zgenom ~/.config/zsh/.zgenom install -m 700 -d ~/.local/share/gnupg -# Install zsh and make it the default shell for root -sudo pacman -S --noconfirm --needed zsh -chsh -s /usr/bin/zsh root - # Enable some basic services systemctl enable systemd-resolved systemctl enable NetworkManager diff --git a/root/etc/hosts b/root/etc/hosts index 1443bf9..8f67611 100644 --- a/root/etc/hosts +++ b/root/etc/hosts @@ -34,9 +34,6 @@ # Current system definition 127.0.1.1 pc.localdomain pc -# Extra systems on the network -10.1.0.1 localserver.localdomain localserver - # DNS servers 45.90.30.0 nextcloud-dns 1.1.1.1 couldflare-dns