quartz/content/Archlinux.md
2025-02-17 13:06:03 +01:00

226 lines
5.7 KiB
Markdown

- [ArchLinux](https://archlinux.org/)
## install
- https://wiki.archlinux.org/title/Installation_guide
- https://www.walian.co.uk/arch-install-with-secure-boot-btrfs-tpm2-luks-encryption-unified-kernel-images.html
```bash
# set keymap
loadkeys de
#fdisk /dev/sda # mbr
gdisk /dev/sda # gpt
mkfs.ext4 -L BOOT /dev/sda2
cryptsetup --type luks2 --cipher aes-xts-plain64 --key-size 512 --hash sha512 --use-random --verify-passphrase luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 root
mkfs.btrfs -L root /dev/mapper/root
mount /dev/mapper/root /mnt && cd /mnt
btrfs subvolume create @home
btrfs subvolume create @root
btrfs subvolume create @log
btrfs subvolume create @tmp
btrfs subvolume create @pkg
btrfs subvolume create @snapshots
cd ~ && umount /mnt
mount -o relatime,space_cache=v2,compress=lzo,subvol=@root /dev/mapper/root /mnt
mkdir -p /mnt/{boot/efi,home,var/log,var/cache/pacman/pkg,btrfs,tmp}
mount -o relatime,space_cache=v2,ssd,compress=lzo,subvol=@log /dev/mapper/root /mnt/var/log
mount -o relatime,space_cache=v2,ssd,compress=lzo,subvol=@pkg /dev/mapper/root /mnt/var/cache/pacman/pkg/
mount -o relatime,space_cache=v2,ssd,compress=lzo,subvol=@tmp /dev/mapper/root /mnt/tmp
mount -o relatime,space_cache=v2,ssd,compress=lzo,subvol=@home /dev/mapper/root /mnt/home
mount /dev/sda1 /mnt/boot
# setup networking!!
pacman-key --refresh-keys
pacstrap -K /mnt base base-devel linux linux-firmware vi
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
echo "KEYMAP=de" > /etc/vconsole.conf
ln -sf /usr/share/zoneinfo/Europe/Vienna /etc/localtime
echo "Europe/Vienna" > /etc/timezone
hwclock --systohc
sed -i '/de_AT.UTF-8 UTF-8/s/^#//g' /etc/locale.gen
locale-gen
echo 'LANG="de_AT.UTF-8"' > /etc/locale.conf
# Initramfs
vi /etc/mkinitcpio.conf
# HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt filesystems fsck)
mkinitcpio -P
pacman -S linux-firmware cryptsetup btrfs-progs
pacman -S grub os-prober efibootmgr
grub-install --recheck /dev/sda # mbr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub # gpt
grub-mkconfig -o /boot/grub/grub.cfg
pacman -S dhclient sudo
# for encryption eddid /etc/default/grub
#GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdXn:root root=/dev/mapper/root quiet"
# user
passwd
# set user
useradd -m x4x
passwd x4x
usermod -a -G wheel,adm,floppy,audio,video x4x
echo "x4x-arch" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "::1 localhost" >> /etc/hosts
# gui
# pacman -S mesa lshw xf86-video-intel lib32-vulkan-intel
pacman -S xorg
# https://wiki.archlinux.org/title/KDE
#pacman -S plasma kde-applications
pacman -S xterm plasma-meta # or more minimal: plasma-desktop
pacman -S sddm
systemctl enable sddm
pacman -S filelight
pacman -S btrfs-progs cryptsetup snapper
pacman -S networkmanager
pacman -S sudo man-db htop vi curl screen
pacman -S python3 python-pip
pacman -S device-mapper lvm2
pacman -S openssl openssl-1.1 pacman glibc mkinitcpio fuse2
pacman -S ntfs-3g
#sudo pacman -Rs mplayer
# Remove Orphaned (Unused) Packages
#sudo pacman -Rns $(pacman -Qdtq)
# Searching for Already Installed Packages
#pacman -Qs vlc
# Clean-Up Package Cache
sudo pacman -Sc
# set x11 keymap
localectl set-x11-keymap de
systemctl enable systemd-networkd
systemctl enable systemd-resolved systemd-timesyncd NetworkManager
```
### swap
#### with ext4
```bash
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
sudo chmod 0600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstab
```
#### [[btrfs#SWAP with btrfs]]
make sure swap is on the [[btrfs]] level not in the root subvolium or snapshots dont work!
## yay (AUR)
in manjaro it can be installed with pacman
- https://aur.archlinux.org/
- https://wiki.archlinux.org/title/Arch_User_Repository
```bash
pacman -S git go
mkdir ~/git && cd ~/git
git clone https://aur.archlinux.org/yay.git
cd yay/ && makepkg -si
yay --version
# install package
yay -S librewolf-bin
```
### develoment
```bash
sudo pacman -S sdl2 cmake gcc make libgl strace ltrace binutils gdb libtool automake autoconf aspell clang
```
### makepkg
- https://wiki.archlinux.org/title/Makepkg
for systems with less ram or CPU:
```bash
vi /etc/makepkg.conf
```
set:
- `MAKEFLAGS="-j2"`
- `CFLAGS` set `-O2 -march=native`
### rustc (optional)
optimize [[Rust_language]] so yay doesn't run out of memory.
- https://doc.rust-lang.org/cargo/reference/config.html
in `~/.cargo/config`
```toml
[build]
jobs = 1
rustflags = ["-C", "target-cpu=native", "-C", "opt-level=3"]
```
## snapper
- https://wiki.archlinux.org/title/Snapper
- https://man.archlinux.org/man/extra/snap-pac/snap-pac.8.en
- http://snapper.io/faq.html
```bash
pacman -S snapper snap-pac
# snap-pac is a hook that creates a snapshot everytime pacman is run
#snapper -c root create-config /
sudo snapper -c root create-config -f btrfs /
pacman
snapper -c root list
sudo snapper list-configs
sudo snapper --config root list
# list transaction canges
snapper -c root list -t pre-post
snapper -c root status 1..2
snapper -c root undochange 1..2
# create snapschot
snapper -c root create
# delete
sudo snapper --config root delete 1-10
```
## fonts
```bash
pacman -S noto-fonts noto-fonts-cjk
# or
sudo yay -S ttf-arphic-extra
sudo pacman -S noto-fonts
sudo pacman -S ttf-arimo-nerd
```
## tools
```bash
sudo pacman -S xclip cronie
sudo pacman -S networkmanager-openconnect networkmanager-openvpn networkmanager-pptp network-manager-sstp
sudo pacman -S wireguard-tools
sudo pacman -S neofetch
```
## speech
- https://wiki.archlinux.org/title/Speech_dispatcher
- https://wiki.archlinux.org/title/Festival
```bash
sudo pacman -S speech-dispatcher espeakup festival
spd-conf
```
## real HW
```bash
pacman -S usbutils nmap openbsd-netcat wget ansible gdu firefox
```