Update installation guide,script,hosts file

This commit is contained in:
ItsDrike 2023-12-29 13:49:55 +01:00
parent 74b3df693c
commit 1cb455fba7
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
3 changed files with 27 additions and 35 deletions

View file

@ -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

View file

@ -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

View file

@ -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