Add initial tutorial
commit
0bab600464
@ -0,0 +1,235 @@
|
||||
# How to install arch on the hp omen
|
||||
|
||||
## Disk Layout
|
||||
|
||||
We're using the following disks
|
||||
|
||||
```
|
||||
/dev/nvme0n1 - 500GiB m.2 SSD
|
||||
/dev/sda - 2TB SATA SSD
|
||||
```
|
||||
|
||||
## Partitioning
|
||||
|
||||
We're creating three partitions. One EFI, one root and one home partition.
|
||||
The root and home partition are to be encrypted with dm-crypt.
|
||||
|
||||
```sh
|
||||
fdisk /dev/nvme0n1
|
||||
> g # gpt partition table
|
||||
> n
|
||||
> <Enter> # starting from the beginning
|
||||
> +500M # 500 MiB
|
||||
> t 1 # EFI partition
|
||||
> n # new partition
|
||||
> <Enter> #
|
||||
> <Enter> # use the remaining size of the disk
|
||||
> w
|
||||
> q
|
||||
|
||||
fdisk /dev/sda
|
||||
> g
|
||||
> n
|
||||
> <Enter>
|
||||
> <Enter> # use the whole disk
|
||||
> w
|
||||
> q
|
||||
|
||||
# Create the encrypted root partition
|
||||
cryptsetup -cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/nvme0n1p2
|
||||
|
||||
# Create the encrypted home partition
|
||||
cryptsetup -cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda1
|
||||
|
||||
# Open the devices
|
||||
cryptsetup luksOpen /dev/nvme0n1p2 cryptroot
|
||||
cryptsetup luksOpen /dev/sda1 crypthome
|
||||
|
||||
# Create the filesystems
|
||||
mkfs.fat -F 32 /dev/nvme0n1p1
|
||||
mkfs.btrfs /dev/mapper/cryptroot
|
||||
mkfs.btrfs /dev/mapper/crypthome
|
||||
|
||||
# mount the partitions in the correpsonding paths
|
||||
mount /dev/mapper/cryptroot /mnt
|
||||
mkdir /mnt/boot
|
||||
mount /dev/nvme0n1p1 /mnt/boot
|
||||
mkdir /mnt/home
|
||||
mount /dev/mapper/crypthome /mnt/home
|
||||
```
|
||||
|
||||
## Pacstrap
|
||||
|
||||
```sh
|
||||
# install base, kernels, firmware and utils
|
||||
pacstrap -i /mnt base base-devel linux linux-zen linux-firmware intel-ucode vim nushell
|
||||
```
|
||||
|
||||
## Steps in Chroot
|
||||
|
||||
```sh
|
||||
# enter new root
|
||||
arch-chroot /mnt
|
||||
```
|
||||
|
||||
### Timezone and Time
|
||||
|
||||
```sh
|
||||
# Uncomment at least one desired locale
|
||||
vim /etc/locale.gen
|
||||
locale-gen
|
||||
# Use your main locale
|
||||
echo LANG=en_GB.UTF-8 /etc/locale.conf
|
||||
export LANG=en_GB.UTF-8
|
||||
|
||||
# Timezone info
|
||||
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localetime
|
||||
|
||||
# Configure hwclock to utc
|
||||
hwclock --systohc --utc
|
||||
|
||||
# Set the keyboard layout
|
||||
echo KEYMAP=de > /etc/vconsole.conf
|
||||
```
|
||||
|
||||
### Pacman
|
||||
|
||||
Open `/etc/pacman.conf` and uncomment `Color` and `ParallelDownlods=5` as well
|
||||
as the section containing the `multilib` repository
|
||||
|
||||
|
||||
### Users
|
||||
|
||||
```sh
|
||||
# set the root password
|
||||
passwd
|
||||
|
||||
# Add a user (this one is called trivernis)
|
||||
useradd -m -G wheel -s /bin/nu trivernis
|
||||
|
||||
# Change the user's password
|
||||
passwd trivernis
|
||||
|
||||
# Enable the wheel group
|
||||
EDITOR=/bin/vim visudo # uncomment the corresponding line
|
||||
```
|
||||
|
||||
|
||||
### Bootloader (systemd-boot)
|
||||
|
||||
Add mkinitcpio hooks
|
||||
```sh
|
||||
# TODO
|
||||
```
|
||||
|
||||
```sh
|
||||
# Generate initrds
|
||||
mkinitcpio -P
|
||||
|
||||
bootctl install
|
||||
```
|
||||
|
||||
Create records in /boot/loader/entries/
|
||||
|
||||
```sh
|
||||
# arch-zen.conf
|
||||
title Arch Linux (linux-zen)
|
||||
linux /vmlinuz-linux-zen
|
||||
initrd /intel-ucode.img
|
||||
initrd /initramfs-linux-zen.img
|
||||
options cryptdevice=/dev/nvme0n1p2:cryptroot root=/dev/mapper/cryptroot zswap.enabled=1 intel_pstate=no_hwp rootfstype=btrfs
|
||||
```
|
||||
|
||||
```sh
|
||||
# arch.conf
|
||||
title Arch Linux (linux)
|
||||
linux /vmlinuz-linux
|
||||
initrd /intel-ucode.img
|
||||
initrd /initramfs-linux.img
|
||||
options cryptdevice=/dev/nvme0n1p2:cryptroot root=/dev/mapper/cryptroot zswap.enabled=1 intel_pstate=no_hwp rootfstype=btrfs
|
||||
```
|
||||
|
||||
```sh
|
||||
# arch-fallback.conf
|
||||
title Fallback Arch Linux (linux)
|
||||
linux /vmlinuz-linux
|
||||
initrd /intel-ucode.img
|
||||
initrd /initramfs-linux-fallback.img
|
||||
options cryptdevice=/dev/nvme0n1p2:cryptroot root=/dev/mapper/cryptroot zswap.enabled=1 intel_pstate=no_hwp rootfstype=btrfs
|
||||
```
|
||||
|
||||
Configure the bootloader with `/boot/loader/loader.conf`
|
||||
|
||||
```sh
|
||||
timeout 2
|
||||
default arch-zen.conf
|
||||
console-mode max
|
||||
````
|
||||
|
||||
### Disks
|
||||
|
||||
```sh
|
||||
# Create key for /home cryptdevice
|
||||
mkdir /etc/keys
|
||||
chmod 700 /etc/keys
|
||||
dd bs=512 count=4 if=/dev/random of=/etc/keys/crypthome.key iflag=fullblock
|
||||
chmod 600 /etc/key/crypthome.key
|
||||
cryptsetup luksAddKey /dev/sda1 /etc/keys/crypthome.key
|
||||
```
|
||||
|
||||
Edit `/etc/cryptab` And add the device with the created key
|
||||
|
||||
|
||||
### Networking
|
||||
|
||||
```sh
|
||||
# set the hostname
|
||||
echo archomen > /etc/hostname
|
||||
|
||||
# Install the networkmanager
|
||||
pacman -S networkmanager
|
||||
systemctl enable NetworkManager.service --now
|
||||
```
|
||||
|
||||
|
||||
### Desktop Environment (KDE)
|
||||
|
||||
```sh
|
||||
# Install audio support
|
||||
pacman -S pulseaudio
|
||||
|
||||
# install KDE. Choose
|
||||
# > noto-fonts
|
||||
# > pipewire-jack
|
||||
# > wireplumber
|
||||
# > phonon-qt5-gstreamer
|
||||
# in the selection prompts
|
||||
pacman -S sddm plasma plasma-wayland-session xorg-xwayland xdg-desktop-portal-kde plasma-nm plasma-pa kwallet5 kwallet-pam kwalletmanager
|
||||
|
||||
# Enable sddm on startup
|
||||
systemd enable sddm
|
||||
```
|
||||
|
||||
|
||||
### PRIME Offloading
|
||||
|
||||
Make sure to remove `kms` from the `/etc/mkinitcpio.conf` HOOKS section
|
||||
|
||||
```sh
|
||||
# Install nvidia drivers
|
||||
pacman -S linux-headers linux-zen-headers dkms nvidia-dkms prime nvidia-utils lib32-nvidia-utils
|
||||
```
|
||||
|
||||
|
||||
### Yay
|
||||
|
||||
```sh
|
||||
pacman -S git
|
||||
git clone https://aur.archlinux.org/yay.gi
|
||||
cd yay
|
||||
makepkg -si
|
||||
```
|
||||
|
||||
### Swap
|
||||
|
||||
See [BTRFS Swap](https://wiki.archlinux.org/title/Btrfs#Swap_file)
|
Loading…
Reference in New Issue