Štítekinstalace

Arch Linux průvodce instalací základního šifrování celého disku

Tato příručka obsahuje pokyny pro instalaci Arch Linuxu se šifrováním celého disku pomocí BTRFS na LUKS a šifrovaným spouštěcím oddílem (GRUB) pro systémy UEFI.

Po hlavní instalaci následují další pokyny, jak se bránit útokům Evil Maid prostřednictvím vlastní registrace klíče UEFI Secure Boot, jádra a bootloaderu s vlastním podpisem.

Předmluva

Většinu těchto informací najdete na Arch Wiki a dalších zdrojů na ně odkazovaných v dolní části článku.

Poznámka: Návod popisuje instalaci na moderní NVMe SSD disk. Pokud používáte jiný typ disků, proveďte všude v návodu substituci /dev/nvme0nX na /dev/sdX, popř. jiný typ zařízení podle potřeby. Video návod používá /dev/sdX, který je standardním nastavením ve Virtualboxu.

Připojení k internetu

Zapojte ethernet a pokračujte dál, nebo pro bezdrátové připojení se podívejte na vševědoucí Arch Wiki.

Nastavení Wifi

iwctl
[iwd]# device list -> note your device
[iwd]# station  get-networks
[iwd]# station  connect 

# second variant
iwctl --passphrase  station  connect 

# test connection
ping archlinux.org

Aktualizujte systémové hodiny

timedatectl set-ntp true

(Volitelně) Aktualizujte mirrorlist

pacman -Syy
pacman -S reflector
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

reflector --country 'Czechia' --age 24 --verbose --sort rate --save /etc/pacman.d/mirrorlist
# OR
reflector -c "CZ" -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist

Nastavení rozlišení Virtualbox tty

pacman -S fbset terminus-font
fbset -g 2048 1080 2048 1080 32
setfont ter-132n

Příprava disku

Aktualizujte btrfs-progs

pacman -Syy btrfs-progs

Zobrazení disků a oddílů

lsblk

Vytvořte oddíly EFI System a Linux LUKS

Number*Start (sectorEnd (sector)*Size*Code*Name**120481130495256.0 MiBEF00EFI System21130496976773134465.2 GiB8309Linux LUKS

gdisk /dev/nvme0n1

# alternative apps
cfdisk
fdisk
o
n
[Enter]
0
+256M
ef00
n
[Enter]
[Enter]
[Enter]
8309
w

Vytvořte šifrovaný kontejner LUKS1 na oddílu Linux LUKS (GRUB nepodporuje LUKS2 od května 2019)

cryptsetup luksFormat --type luks1 --use-random -S 1 -s 512 -h sha512 -i 1000 /dev/nvme0n1p2

Otevřete kontejner (dešifrujte jej a zpřístupněte na /dev/mapper/cryptbtrfs)

cryptsetup open /dev/nvme0n1p2 cryptbtrfs

Příprava svazku/podsvazků BTRFS

Formátování btrfs, nyní již dešifrovaného disku

mkfs.btrfs -L "Arch Linux" /dev/mapper/cryptbtrfs

Připojit souborový systém (zatím bezparametrické)

mount /dev/mapper/cryptbtrfs /mnt

Vytvoření podsvazků (subvolumes)

Toto schéma lze upravit podle vašich potřeb, navrhoval bych alespoň jeden podsvazek pro root (@) a jeden pro snímky (.@snapshots). varlog a tmp jsou vytvořeny pro snadné zakázání kopírování při zápisu na /var/log a /tmp. pkg subvolume naopak pomáhá v organizaci pacman balíčků s možností jejich zálohy a vrácení se k předchozím verzím. docker subvolume umožňuje efektivní práci s dockrem, který má implementovanou efektivní spolupráci s btrfs souborovým systémem.

btrfs sub cr /mnt/@
btrfs sub cr /mnt/@home
btrfs sub cr /mnt/@tmp
btrfs sub cr /mnt/@log
btrfs sub cr /mnt/@pkg
btrfs sub cr /mnt/@docker
btrfs sub cr /mnt/.@snapshots

Zakázat kopírování při zápisu do /var/log a /tmp

chattr +C /mnt/@log
chattr +C /mnt/@tmp  
umount /mnt

Připojení subolumes BTRFS, nyní již s kompletní parametrizací pro stálé používání

mount -o defaults,noatime,discard,ssd,subvol=@ /dev/mapper/cryptbtrfs /mnt  
mkdir -p /mnt/{home,var/log,var/cache/pacman/pkg,var/lib/docker,tmp,.snapshots}

# Discard and ssd options and are for ssd disks only
mount -o defaults,noatime,discard,ssd,subvol=@home /dev/mapper/cryptbtrfs /mnt/home
mount -o defaults,noatime,discard,ssd,subvol=@tmp /dev/mapper/cryptbtrfs /mnt/tmp
mount -o defaults,noatime,discard,ssd,subvol=@log /dev/mapper/cryptbtrfs /mnt/var/log
mount -o defaults,noatime,discard,ssd,subvol=@pkg /dev/mapper/cryptbtrfs /mnt/var/cache/pacman/pkg/
mount -o defaults,noatime,discard,ssd,subvol=@docker /dev/mapper/cryptbtrfs /mnt/var/lib/docker
mount -o defaults,noatime,discard,ssd,subvol=.@snapshots /dev/mapper/cryptbtrfs /mnt/.snapshots

Příprava oddílu EFI

Vytvořte souborový systém FAT32 na systémovém oddílu EFI

mkfs.fat -F32 /dev/nvme0n1p1

Vytvořte bod připojení pro systémový oddíl EFI na /efi pro kompatibilitu s grub-install a připojte jej

mkdir /mnt/efi
mount /dev/nvme0n1p1 /mnt/efi

Instalace Arch Base

Nainstalujte potřebné balíčky

pacstrap /mnt/ base base-devel linux linux-headers linux-firmware polkit git btrfs-progs efibootmgr dhcpcd bash-completion sudo neovim nano

Nakonfigurujte systém

Vygenerujte soubor /etc/fstab

genfstab -U /mnt >> /mnt/etc/fstab

Zkontrolujte, zda fstabje správně vytvořen s definovanými parametry btrfs z předchozí kapitoly s editorem neovim.

Vstupne do svého nového systému pomocí arch-chroot

arch-chroot /mnt

V tomto okamžiku byste měli mít následující oddíly a logické svazky:

lsblk

NAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTnvme0n1259:00465.8G0disk├─nvme0n1p1259:50256M0part/efi├─nvme0n1p2259:60465.2G0part/.snapshots └─cryptbtrfs254:00465.2G0crypt/var/lib/docker/var/cache/pacman/pkg/var/log/tmp/home/

Časové pásmo

Nahradit Europe/Pragues vaším příslušným časovým pásmem nalezeným v /usr/share/zoneinfo

ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime

Běh hwclock vygeneruje /etc/adjtime

Hardwarové hodiny budou nastaveny na UTC a synchronizovány s aktuálním systémovým časem.

hwclock --systohc --utc

Lokalizace

Odkomentovat řádku en_US.UTF-8 UTF-8 v /etc/locale.gen a vygenerovat národní prostředí.

locale-gen

Vytvořit locale.conf a nastavte LANG proměnnou prostředí

echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

Konfigurace sítě

Vytvořte soubor /etc/hostname s názvem počítače

echo myhostname > /etc/hostname

Toto je jedinečný název pro identifikaci vašeho zařízení v síti.

Přidejte odpovídající záznamy do /etc/hosts

nvim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname

(Volitelné) Vytváření swap souboru

Nyní vytvořte prázdný (s velikostí 0) odkládací soubor. Vytvořte samostatný podsvazek pro odkládací soubor. Tento podsvazek je potřebný k tomu, abyste mohli vytvořit snímek /, což by nebylo možné s žádným souborem v něm s vypnutým CoW!

btrfs su create /swap
chattr +C /swap

# Copy on Write should always be disabled on swap file, so it will be done in the next step
touch /swap/swapfile

# Check if C attribute is enabled (should be already if created in folder with disabled CoW attribute)
lsattr /swap/swapfile

# If not then disable CoW for swapfile manually
chattr +C /swap/swapfile  

# Expanding empty file to 4GiB swap file
dd if=/dev/zero of=/swap/swapfile bs=1024K count=4096  
chmod 600 /swap/swapfile

# Format the swap file.
mkswap /swap/swapfile

# Turn swap file on.
swapon /swap/swapfile  

# You also need to update /etc/fstab to mount swapfile on boot
/swap/swapfile none swap sw 0 0

Initramfs

Přidat encrypt, a btrfs háčky (hooks) na /etc/mkinitcpio.conf

Poznámka: Záleží na pořádí!

HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt btrfs filesystems fsck)

# Add btrfsck to binaries
BINARIES=(btrfsck)

Znovu vytvořte obraz initramfs

mkinitcpio -P

Instalace základního softwaru

pacman -S openssh networkmanager wpa_supplicant netctl
systemctl enable NetworkManager
systemctl enable sshd

pacman -S amd-ucode (for AMD), pacman -S intel-ucode (for INTEL)
mkinitcpio -p linux

Grafické ovladače a Xorg

Karty AMD
pacman -S xorg xorg-xinit
pacman -S mesa
Karty Nvidia
pacman -S xorg xorg-xinit
pacman -S nvidia nvidia-utils

sudo vim /etc/mkinitcpio.conf
# edit Modules and Files
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm ...)
FILES="/etc/modprobe.d/nvidia.conf"

sudo mkinitcpio -P
nvim /etc/modprobe.d/nvidia.conf
# Add row to the file
options nvidia_drm modeset=1
Podpora Virtualboxu
pacman -S virtualbox-guest-utils

Heslo uživatele root

Nastavte heslo uživatele root

passwd

Přidat uživatele Linuxu

useradd -m -g users -G wheel,storage,power -s /bin/bash 
passwd 
pacman -S sudo
EDITOR=nvim visudo,  (uncomment) %wheel ALL=(ALL:ALL) ALL

Zavaděč (bootloader)

Nainstalujte GRUB

pacman -S grub efibootmgr os-prober dosfstools mtools

Nakonfigurujte GRUB tak, aby umožňoval spouštění z /boot na šifrovaném oddílu LUKS1

nvim /etc/default/grub
GRUB_ENABLE_CRYPTODISK=y

Nastavte parametr jádra pro odemknutí fyzického svazku BTRFS při spouštění pomocí encrypt hook

UUID je oddíl obsahující kontejner LUKS
blkid
/dev/nvme0n1p2: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="crypto_LUKS" PARTLABEL="Linux LUKS" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
/etc/default/grub
# allow-discards is only for ssd to let trim work with encryption enabled
GRUB_CMDLINE_LINUX="... cryptdevice=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:cryptbtrfs:allow-discards"

Nainstalujte GRUB do připojeného ESP pro spouštění UEFI

grub-install --target=x86_64-efi --bootloader-id=ARCH --efi-directory=/efi --recheck

Vygenerujte konfigurační soubor GRUB

grub-mkconfig -o /boot/grub/grub.cfg

(doporučeno) Vložte soubor s klíčem do initramfs

To se provádí proto, abyste nemuseli zadávat heslo pro dešifrování dvakrát (jednou pro GRUB, jednou pro initramfs.)

Vytvořte soubor s klíčem a přidejte jej jako klíč LUKS

mkdir /root/secrets && chmod 700 /root/secrets
head -c 64 /dev/urandom > /root/secrets/crypto_keyfile.bin && chmod 600 /root/secrets/crypto_keyfile.bin
cryptsetup -v luksAddKey -i 1 /dev/nvme0n1p2 /root/secrets/crypto_keyfile.bin

Přidejte soubor s klíčem do obrazu initramfs

nvim /etc/mkinitcpio.conf
FILES=(/root/secrets/crypto_keyfile.bin)

Znovu vytvořte obraz initramfs

mkinitcpio -P

Nastavte parametry jádra pro odemknutí oddílu LUKS pomocí souboru s klíčem v encrypt hook

/etc/default/grub
GRUB_CMDLINE_LINUX="... cryptkey=rootfs:/root/secrets/crypto_keyfile.bin"

Znovu finálně vygenerujte konfigurační soubor GRUB

grub-mkconfig -o /boot/grub/grub.cfg

Omezit /bootoprávnění

chmod 700 /boot

Instalace je nyní dokončena. Ukončete chroot a restartujte počítač.

exit
reboot

Po instalaci (post-instalační kroky)

Váš systém by nyní měl být plně nainstalován, spustitelný a plně zašifrovaný.

Pokud jste soubor s klíčem vložili do obrazu initramfs, měl by k odemknutí do systému počítač vyžadovat vaše heslo pro dešifrování pouze jednou před GRUB tabulkou. Narozdíl od archinstall skriptu, toto je daleko více bezpečnostní zabezpečení.

Pro další standardní kroky po instalaci Arch Linuxu RTFM .

Zrychlení dešifrování LUKS v GRUB po zadání hesla

Upozornění: Před pokračováním v této části se ujistěte, že rozumíte důležitosti hesel s vysokou entropií. Informace o tom, jak generovat bezpečná hesla, naleznete na Wikipedii: Síla hesla.

Při bootování může GRUB v některých případech trvat dlouho, než bude ověřeno heslo. To může být způsobeno vysokým počtem iterací PBKDF, který můžete zkontrolovat následovně:

cryptsetup luksDump /dev/nvme0n1p2

Problém je v tom, že iterace byly vypočteny pro daný keyslot při normálním běhu počítače (nikoliv při bootu), když byl klíč přidán, aby byla zajištěna rovnováha mezi dostatečně vysokou úrovní pro ochranu před útoky hrubou silou a dostatečně nízkou, aby umožnila rychlé odvození klíče pomocí odhadu schopností vašeho počítače. Když se však GRUB spustí, nemusí mít k dispozici stejné výpočetní zdroje, a proto je výrazně pomalejší .

Pokud vaše heslo poskytuje dostatečnou entropii, aby samo čelilo běžným útokům, můžete toto číslo snížit:

cryptsetup luksChangeKey --key-slot 1 --pbkdf-force-iterations 1000 /dev/nvme0n1p2

Podle RFC 2898 se doporučuje minimálně 1000 iterací, ale pokud je to možné, měli byste se zaměřit na vyšší hodnoty (náklady pro útočníka a také čas na odvození klíče lineárně škálují).

Tip: GRUB zkouší aktivované klíčové sloty postupně. Při přidávání klíčů se --key-slotlze použít k explicitnímu zadání klíčového slotu.

(doporučeno) Secure Boot – Odolávaní proti útokům Evil Maid

Se zašifrovaným zaváděcím oddílem nikdo nemůže vidět ani upravit váš obraz jádra nebo initramfs, ale stále byste byli zranitelní vůči útokům Evil Maid .

Jedním z možných řešení je použití UEFI Secure Boot. Zbavte se předinstalovaných klíčů Secure Boot (opravdu nechcete věřit Microsoftu a OEM), zaregistrujte si své vlastní klíče Secure Boot a podepište zavaděč GRUB svými klíči. Evil Maid by nemohla zavést upravený zavaděč (nepodepsaný vašimi klíči) a útoku je zabráněno.

Vytváření klíčů

Následující kroky by měly být provedeny pod rootuživatelem s doprovodnými soubory uloženými v /rootadresáři.

Nainstalujte efitools
pacman -S efitools
Vytvořte GUID pro identifikaci vlastníka
uuidgen --random > GUID.txt
Platformový klíč

CN je běžné jméno, které lze zapsat jako cokoliv.

openssl req -newkey rsa:4096 -nodes -keyout PK.key -new -x509 -sha256 -days 3650 -subj "/CN=my Platform Key/" -out PK.crt
openssl x509 -outform DER -in PK.crt -out PK.cer
cert-to-efi-sig-list -g "$(/dev/null | /usr/bin/grep -q "signature certificates"; then /usr/bin/sbsign --key /root/db.key --cert /root/db.crt --output {} {}; fi' \ ;
Depends = sbsigntools
Depends = findutils
Depends = grep
/etc/pacman.d/hooks/98-secureboot-grub.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = grub

[Action]
Description = Signing GRUB for SecureBoot
When = PostTransaction
Exec = /usr/bin/find /efi/ -name 'grubx64*' -exec /usr/bin/sh -c 'if ! /usr/bin/sbverify --list {} 2>/dev/null | /usr/bin/grep -q "signature certificates"; then /usr/bin/sbsign --key /root/db.key --cert /root/db.crt --output {} {}; fi' \ ;
Depends = sbsigntools
Depends = findutils
Depends = grep

Zaregistrujte klíče do firmwaru

Zkopírujte vše *.cer, *.esl, *.authdo systémového oddílu EFI
cp /root/*.cer /root/*.esl /root/*.auth /efi/
Spusťte nástroj pro nastavení firmwaru UEFI (často nesprávně označovaný jako „BIOS“)
systemctl reboot --firmware

Firmware má různá rozhraní, viz Výměna klíčů pomocí nástroje pro nastavení firmwaru, pokud jsou následující pokyny nejasné nebo neúspěšné.

Nastavte Typ OS na Windows UEFI mode

Najděte možnosti Secure Boot a nastavte typ OS na Windows UEFI mode(Ano, i když nejsme na Windows.) To může být nezbytné pro funkci Secure Boot.

Vymažte předinstalované klíče Secure Boot

Pomocí Key Management vymažte všechny předinstalované klíče Secure Boot (Microsoft a OEM).

Vymazáním všech klíčů Secure Boot vstoupíte do režimu nastavení (takže si můžete zaregistrovat své vlastní klíče Secure Boot).

Nastavte nebo připojte nové klíče

Klíče musí být nastaveny v následujícím pořadí:

db => KEK => PK

To je způsobeno tím, že některé systémy ukončí režim nastavení, jakmile PKje zadáno.

Nenahrávejte výchozí tovární nastavení, místo toho procházejte dostupné souborové systémy při hledání souborů dříve zkopírovaných do systémového oddílu EFI.

Vyberte některý z formátů. Firmware by vás měl vyzvat k zadání typu ( Poznámka: názvy typů se mohou mírně lišit.)

*.cer is a Public Key Certificate
*.esl is a UEFI Secure Variable
*.auth is an Authenticated Variable

Určitý firmware (například můj vlastní) vyžaduje použití souborů *.auth. Vyzkoušejte různé, dokud nebudou fungovat.

Nastavte heslo správce (administrátora) UEFI

V nastavení zabezpečení musíte také nastavit heslo správce (administrátora) firmwaru UEFI, takže nikdo nemůže jednoduše spustit nástroj pro nastavení UEFI a vypnout zabezpečené spouštění.

Nikdy byste neměli používat stejné heslo správce firmwaru UEFI jako heslo pro šifrování, protože na některých starých přenosných počítačích lze heslo správce obnovit jako prostý text z čipu EEPROM.

Ukončete a uložte změny

Jakmile načtete všechny tři klíče a nastavíte heslo správce, stiskněte F10 pro ukončení a uložení změn.

Pokud bylo vše provedeno správně, měl by se při restartu objevit váš zavaděč.

Zkontrolujte, zda byl povolen Secure Boot

od -An -t u1 /sys/firmware/efi/efivars/SecureBoot-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Znaky označené XXXX se liší stroj od stroje. Chcete-li s tím pomoci, můžete použít tab doplňování nebo seznam proměnných EFI.

Pokud je povoleno Secure Boot, tento příkaz vrátí 1 jako poslední celé číslo v seznamu pěti hodnot, například:

6  0  0  0  1

Pokud bylo aktivováno Secure Boot a bylo nastaveno heslo správce UEFI, můžete se nyní považovat za chráněného před útokům Evil Maid!

Docker používaný s BTRFS souborovým systémem

Seznámení se s dockerem na Arch Linuxu na wiki Docker on Arch.

BTRFS je idální pro správu docker snapshotů. Pro nastavení postupujte podle originálního článku.

Celé prostředí máme pro dockerizaci již nachystané. Mělo by stačit nastavit pouze v /etc/docker/daemon.json

{
  "storage-driver": "btrfs"
}

Kompletní video návod

https://www.youtube.com/watch?v=YdqGsv3tmN4

Odkazy na zdroje

Číst dál

Archinstall skript pro LUKS a BTRFS Arch Linux instalaci

Velmi rychlá Arch Linux instalace s archinstall skriptem. Průvodce arch instalací základního šifrování celého disku LUKS a Btrfs (B-tree file system) copy-on-write souborový systém pro GNU/Linux. Rychlé a okamžité použití pro laptopy a systémy s vysokým stupněm zabezpečení a zálohovacím mechanismem.

Video návod začíná přípravou Virtualboxu pro Arch instalaci. Po úspěšném nabootování Arch systému z ISO souboru návod pokračuje instalací pomocí archinstall skriptu, který je již standardizovanou součástí instalačního média. Archinstall skript představuje rychlou a jednoduchou možnost instalace čistého Arch systému se zvoleným profilem pro další pokračování post-instalačních kroků. Uvedený video návod postupně prochází jednotlivé kroky instalace a popisuje důležité části a význam instalačního procesu. Návod je primárně soustředěn na Btrfs souborový systém s enkryptováním disku, avšak je samozřejmě možné jej použít i pro zjednodušené varianty instalačních kroků.

Další skvělý návod na instalaci Arch Linuxu od raven2cz

https://www.youtube.com/watch?v=3tF8Be0E3xc

Číst dál

Arch Linux Instalace

Velké poděkování patří uživateli raven2cz, který připravil tento skvělý návod včetně videa. Video je již nahráno na našem PeerTube kanále.

Příprava zařízení pro instalaci

Stažení ISO a vytvoření BOOT USB disku

Stažení ArchLinux ISO, ve Win použít Rufus software (portable) na flash disk. V Linuxu použít dd command.

Příprava partitions na cílovém disku

Zjistit disky a souborové systémy fdisk -l, pak cfdisk /dev/, zkontroluj kterou partition přesně použít pro umístění root adresáře, popř. domácího adresáře; např. pro nvmeXn1 bude nvmeXn1p2 nebo p3 apod. Pro EFI partition použít alespoň +256M parameter; nastav pro ni partition type to EFI System (type 1), pro root partition / nastavit Linux system.

DŮLEŽITÉ: Návod používá dnes již standardní UEFI. Pokud testuje Arch dle tohoto seriálu v VirtualBox. Je nutné na záložce Systém VM označit checkbox EFI. Aby bylo možné používat EFI pro boot systému, jinak nepůjde instalovat bootloader.

Vytvoření souborových systémů

Formát diskových oddílů

Zvolení formátu pro diskové oddíly: MBR nebo GPT. Pro GPT nutno UEFI a 64bit OS. Již pro nové stanice s novým HW doporučuji GPT a to s dual boot pro Win10/11 + Linux.

Formátování diskových oddílů

Formátování EFI partition fat, root partition formátuji ext4.

mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2

mkswap /dev/sdxY
swapon /dev/sdxY

Internetové připojení

Wifi

Podívejte se na IWD-iwctl.

iwctl
[iwd]# device list -> opsat si označení svého wifi zařízení
[iwd]# station  get-networks -> opsat si síť, kterou potřebujete pro připojení
[iwd]# station  connect  -> připojit se ke zvolené síti a zadat heslo

druha moznost, pokud již informace máte předem zjištěné:
iwctl --passphrase  station  connect 

ping archlinux.org -> otestovaní připojení

Ethernet

Pouze otestovat připojení, zda internet je k dosažení.

ping archlinux.org

Výběr Arch Mirrors

Výběr nejbližších a rychlých zrcadel balíčků archu.

Nejprve update, stažení skriptu reflector a záloha originální konfigurace.

pacman -Syy
pacman -S reflector
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

Výběr země k nalezení nejbližších bodů připojení: US, CZ, DE atd.

reflector -c "CZ" -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist

Virtualbox tty rozlišení při instalaci

pacman -S fbset
fbset -g 2048 1080 2048 1080 32

Instalace základního systému (Base)

Připojení (mountování) naformátované partition připravené pro root systému

mount /dev/sda2 /mnt

Preferuji instalaci aktuálního kernelu (bez speciálních úprav a zen úprav). Bez nutnosti instalace LTS kernelu (Long Term Support). Balík jádra a dalších důležitých souvisejících nástrojů je označen linux

Dále doporučuji nainstalovat vhodný textový editor pro úpravu konfiguračních souborů. V mém případě, co bude prezentováno je textový editor neovim, který spouštíte příkazem nvim.

pacstrap /mnt base base-devel linux linux-headers linux-firmware neovim nano

Pro úplnost ještě uvedu instalaci s možností druhého LTS kernelu. Pro základní desktop toto není nutné. V případě problémů je možné kdykoliv doinstalovat, nebo zvolit zen-kernel.

pacstrap /mnt base base-devel linux linux-headers linux-firmware linux-lts linux-lts-headers neovim nano

Konfigurace nainstalovaného Arch systému

Generovat fstab soubor pro připojení diskových oddílů a služeb při spuštění systému. Přepínač -U je vhodný pro ukládání UUID disků, aby bylo možné jednoduše disky přehazovat a přidávat!

genfstab -U /mnt >> /mnt/etc/fstab

CHROOT

Vstupte do svého nového systému pomocí chroot.

DÚLEŽITÉ: Tento příkaz, kterému předchází příkaz mount pro root partition, je velmi užitečný pro opravu systému, reinstalace systému, opravy chyb, popřípadě volání příkazů, které vyžadují odpojený disk. USB klíčenka tak může kdykoliv sloužit pro jednoduché pořešení všech problemů. Systém se tak jednoduše stává nezničitelný.

arch-chroot /mnt

Nastavení času a timezone

Pozor na tento bod. Je potřeba jej udělat pečlivě, dle mého postupu.

timedatectl list-timezones
timedatectl set-timezone Europe/Prague
ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime
hwclock --systohc    (vygeneruje důležitý /etc/adjtime)

Nastavení Lokalizace

Doporučuji si ponechat US lokalizaci. V češtině potom používat určité množiny programů a nástrojů, které jsou pro češtinu vhodné. Podobně postupují i programátoři, kteří do kódu určitě nepíší české komentáře. Myšlenkově tedy mějte oddělený jazyk pro konfigurace a jazyk pro GUI.

Editujte soubor /etc/locale.gen obsahující všechny dostupné lokalizace. odkomentujte potřebné lokalizace. V našem případě odkomentujte en_US.UTF-8 UTF-8

Nyní již můžete generovat lokalizační soubory a nakonfigurovat locale.conf Pokud tento krok uděláte špatně, budete mít velké problémy v mnoha programech a terminálových aplikacích, proto si pečlivě zkontrolujte následující příkazy.

locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

Network konfigurace

Zadejte svůj definovaný název počítače do /etc/hostname. V mém případě r7arch. Pozor nesmí obsahovat pomlčky. Dále pak udělejte základní mapování do /etc/hosts.

echo r7arch > /etc/hostname
nvim /etc/hosts (uložte následující řádky)
127.0.0.1 localhost
::1 localhost
127.0.1.1 r7arch

Nastavení root hesla

Nastavte své root heslo pomocí příkazu passwd.

Instalace mého Fundamental Software

Nyní doporučuji nainstalovat naprosto fundamentální software pro přístup a základní obsluhu systému.

pacman -S openssh networkmanager wpa_supplicant netctl
systemctl enable NetworkManager
systemctl enable sshd

pacman -S amd-ucode (pro AMD) pacman -S intel-ucode (pro INTEL)
mkinitcpio -p linux

Instalace ovladačů a Xorg

Pro desktop je nutné nainstalovat správné grafické ovladače a základní basement pro Xorg grafické rozhraní. Toto doporučiji i v případě, že budete chtít používat Wayland s plasma nebo gnome.

AMD grafická karta

pacman -S xorg
pacman -S mesa  (již obsažen v xorg, pouze pro informaci)

NVIDIA grafická karta

Pokud používáte LTS, nezpomeňte zvolit suffix LTS v názvu balíčků.

pacman -S xorg
pacman -S nvidia nvidia-utils
pacman -S nvidia-lts nvidia-utils-lts (varianta pro LTS kernel)

Virtualbox Support

Pokud systém testujete v virtualboxu, doporučuji nainstalovat další balíčky.

pacman -S virtualbox-guest-utils xf86-video-vmware

NVIDIA TTY (nespuštění tty terminálu, černá obrazovka)

Nvidia kartami občas bývá problém, dlouhé diskuze zde vést nebudu. Doporučuji přidat nvidia do KMS. Tento krok můžete udělat/neudělat kdykoliv bude potřeba, pokud ale máte černou obrazovku po restartu systému, budete toto muset udělat hned.

sudo vim /etc/mkinitcpio.conf
(editovat následující dvě řádky v souboru)
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
FILES="/etc/modprobe.d/nvidia.conf

sudo mkinitcpio -P
nvim /etc/modprobe.d/nvidia.conf
(přidat tuto řádku do souboru a uložit)
options nvidia_drm modeset=1

Ještě pro jistotu doporučuji přidat *nvidia-drm.modeset=1 do příkazů při spuštění kernelu v grub.cfg (pokud používáte grub). Viz dokument https://wiki.archlinux.org/index.php/kernel_parameters

Později po restartu systému (teď ještě nerestartovat!) ověřit si správné instalovanou nvidia kartu pomocí příkazu

lspci -vnn | grep VGA

Přidání uživatele Linuxu

Nyní již můžeme přidat naše uživatele linuxu. Nutno v příkazech zaměnit ` za vaše jméno. Já v ukázkách používám jméno uživatele box`.

Velmi užitečnou výhodou v archu je použití již připravených skupin: storage a power. Umožňují jednoduše používat mountování disků a vypínání/restart systému přímo uživatelem, bez nutnosti dalších berliček.

useradd -m -g users -G wheel,storage,power -s /bin/bash 
passwd 
pacman -S sudo
EDITOR=nvim visudo,  (odkomentovat řádku) %wheel ALL=(ALL) ALL

Instalace Bootloader Grub2

Instalace bootloaderu pro možnost dual boot s windows, popř. přepínání s dalšími operačními systémy. Rovněž konfigurace dostupných kernelů pro zavedení a spuštění. Zde je celá řada možností. Uvádím zde jedno z nejstarších řešení.

pacman -S grub efibootmgr dosfstools os-prober mtools

Vytvoření adresáře kde bude mountována EFI partition:

mkdir /boot/efi

Nyní připojíme EFI partition, kterou jsme dříve vytvořili v prvním kroku instalace.

mount /dev/sda1 /boot/efi

Instalace grub2 například takto pro UEFI:

grub-install --target=x86_64-efi --bootloader-id=ARCH --efi-directory=/boot/efi --recheck

V tomto případě potom budeme mít v biosu v nabídce jméno EFI části ARCH (bootloader-id).

Nakonec se musí zavolat natažení konfigurace do grub.cfg

grub-mkconfig -o /boot/grub/grub.cfg

Základní systém je hotov.

Restart základního systému a jeho test

Nejprve regulerně opustě chroot prostředí pomocí exit příkazu nebo klávesovou zkratkou ctrl+d. Volitelně můžete odpojit mountované disky umount -R /mnt.

Nakonec zavolejte:

reboot

Po restartu systému se spustí grub2 a po správném zavedení systému se objeví tty terminál se zadáním uživatelského jména a zvoleného hesla.

Po úspěšném přihlášení jste ve svém novém Arch systému! Vítejte doma 

https://www.youtube.com/watch?v=gpIFaCIB9Cg&t=1170s

Důležité odkazy

Číst dál