Teraz prawie każdy może powiedzieć „I use Arch btw” 😀 Wpis będzie o łatwej i bezpiecznej instalacji Arch Linux z Secure Boot i TPM 2.0, szyfrowaniem partycji LUKS2 oraz z systemem plików BTRFS wraz z snapshotami. Innymi słowy dowiecie się jak stosunkowo łatwo zainstalować system zabezpieczony z jednej strony poprzez szyfrowanie dysku, z drugiej strony przez zabezpieczenia sprzętowe oraz biosu naszego komputera, który jednocześnie będzie odporny na przyszłe ewentualne problemy dzięki migawkom systemowym. Ponadto opisałem różne czynności, jakie możemy wykonać po instalacji. Mogą się przydać przyszłym użytkownikom opisywanej dystrybucji.
Spis treści
Wstęp

Wpis ten powstał po to aby zademonstrować, że wcale nie tak trudno jest zainstalować, używać i utrzymać dystrybucję Arch Linux. Przez wiele lat wokół Archa narosło (nie bez powodów) sporo mitów dotyczących poziomu trudności lub inaczej mówiąc wysokiego progu wejścia dla użytkowników tej dystrybucji. Powodem ku temu był sam instalator, a raczej jego brak. Od początku swojego istnienia przez długie lata zainstalować Archa potrafili tylko wytrawni użytkownicy Linuxa, gdyż wymagało to bardzo dobrej znajomości obsługi terminala, dokumentacji Archa oraz wpisywania szeregu komend.
Na szczęście w 2022 roku deweloperzy dystrybucji stworzyli skrypt, dzięki któremu znacznie ułatwiono instalację, tym samym obniżając próg wejścia w środowisko Archa. Owy skrypt to oszczędny graficznie (a właściwie tekstowy) instalator, w którym za pomocą klawiszy strzałek i entera dostosowujemy naszą instalację bez wpisywania (prawie) żadnych komend! Mimo kilku lat, które minęły od stworzenia skryptu, wciąż dominuje przekonanie że Arch Linux jest dystrybucją tylko dla profesjonalistów. W tym wpisie postaram się obalić ten nieaktualny już wizerunek.
Żeby nie było niejasności – nie polecam Archa początkującym użytkownikom Linuxa, mogliby się zniechęcić do użytkowania go w ogóle. Jeśli dopiero zaczynasz przygodę z Linuxem polecam najpierw lekturę mojego poprzedniego wpisu. Ten wpis kieruję raczej do co najmniej lekko doświadczonych użytkowników, którzy chcą mieć system skrojony pod swoje potrzeby.
Opcjonalnie (choć jednak bardzo zalecane) po instalacji możemy włączyć opcje Secure Boot oraz TPM 2.0 odpowiedzialne za bezpieczeństwo rozruchu naszego systemu.
Przy okazji warto nadmienić, że Arch Linux jest najpopularniejszą dystrybucją wg. statystyk Steam z czerwca 2025

Przygotowanie nośnika i podłączenie do wifi
Nie będę się rozpisywał w kwestii przygotowania nośnika instalacyjnego, jeśli zamierzasz używać Archa, to zakładam, że zgranie obrazu na pamięć USB nie jest dla Ciebie problemem. Wchodzimy na stronę archlinux.org zakładka Download i pobieramy nasz obraz (uwaga: można pobierać przez protokół torrent). Następnie pozostaje nam wgrać pobrany obraz na nośnik USB za pomocą programów np. Iso Image Writer (KDE), Gnome Disk Utility (Gnome), Etcher (wieloplatformowy) lub ręcznie za pomocą komendy dd.
Przed instalacją wyłączamy w Biosie/UEFI opcję Secure Boot. Włączymy je podczas dalszej konfiguracji.
Podczas instalacji na samym początku użyjemy tylko kilku komend, między innymi pacman
, którą i tak będziemy stosować podczas codziennego użytkowania naszego systemu.
- jeśli łączymy się poprzez połączenie przewodowe, pomijamy poniższe komendy i przechodzimy od razu do punktu rozpoczynamy instalację,
- jeśli łączymy się poprzez WiFi, wpisujemy po kolei następujące komendy:
iwctl
[iwd]# device list
- wyświetli nam się najprawdopodobniej wlan0, jeśli tak następne komendy powinny wyglądać jak poniżej:
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks
[iwd]# station wlan0 connect [SSID_naszej_sieci_wifi]
- wpisujemy hasło
[iwd]# exit
- [opcjonalnie] dla pewności możemy sprawdzić poprawność wpisanego hasła i łączność z siecią poprzez komendę:
ping wolnoscwkieszeni.pl
Rozpoczynamy instalację
- [opcjonalnie] zalecane jest zaktualizowanie archlinux-keyring i archinstall:
pacman -Sy archlinux-keyring archinstall
- uruchamiamy archinstall:
archinstall
- pokaże nam się instalator, od tej pory poruszamy się w nim używając strzałek góra i dół oraz enter i esc.
- wybieramy Locales -> Keyboard layout -> pl
- Locale language -> pl_PL.UTF-8
- Mirrors and repositories
- Select regions -> Poland
- Disk configuration -> partitioning
- Use a best-effort default partition layout
- wybieramy nasz dysk
- Filesystem -> btrfs
- Would you like to use BTRFS subvolumes with a default structure? -> Yes
- Would you like to use compression or disable CoW? -> Use compression
- Use a best-effort default partition layout
- Disk encryption -> Encryption type -> LUKS
- Encryption password -> wpisujemy swoje silne hasło do odszyfrowania dysku
- Partitions -> wyświetli nam się pozycja „[ ] create…” -> zaznaczamy Tabem -> Esc
- Btrfs snapshots -> Snapper
- Bootloader pozostawiamy systemd-boot
- Unified kernel images -> Would you like to use unified kernel images? -> Yes
- ustawiamy naszą nazwę hosta: Hostname ->wpisujemy nazwę
- następnie hasło użytkownika: Password -> wpisujemy i potwierdzamy
- User account -> Add a user -> wpisujemy nazwę użytkownika
- wpisujemy hasło -> potwierdzamy
- Should „__” be a superuser (sudo)? -> Yes
- Confirm and exit
- Profile -> Type -> Desktop -> wybieramy [ ] środowisko graficzne
- Graphic driver -> wybieramy AMD/Nvidia/Intel w zależności od naszego sprzętu
- Audio -> pipewire
- Kernels -> możemy dodatkowo wg. potrzeb zaznaczyć np. LTS (zalecane)
- Network configuration -> Use NetworkManager (jeśli używamy Gnome lub Plasmę), w przeciwnym wypadku Copy ISO network configuration to installation
- Timezone -> Europe/Warsaw
- Install
- wyświetli nam się podgląd skryptu wygenerowanego przez archinstall
- potwierdzamy Yes
- system zainstaluje nam się automatycznie
- Installation completed
- What would you like to do next? -> Reboot system
- wyciągamy pendrive po wyłączeniu komputera
- Po zrestartowaniu peceta ukaże nam się ekran wyboru jądra. Jako że wybraliśmy aktualne i LTS, to w tym momencie możemy wybrać, które chcemy uruchomić.
- Następnie pokaże nam się pole enter passphrase: wpisujemy nasze hasło, które podawaliśmy podczas konfiguracji szyfrowania LUKS
Poniżej szczegółowa instrukcja obrazkowa slajd po slajdzie dla wzrokowców 😉
I to byłby koniec instalacji dystrybucji Arch Linux na naszym pececie. Możemy uruchomić nasz system i zacząć go używać i/lub dostosować pod swoje potrzeby.
Secure Boot
Secure Boot jest jednym z mechanizmów biosu naszego komputera, dzięki któremu uruchomimy tylko elementy startowe systemu, które są podpisane zaufanym kluczem. Zapobiega to (w założeniu) uruchomieniu złośliwego oprogramowania czy podmienionego bootloadera.
- Instalujemy sbsigntools:
sudo pacman -S sbctl sbsigntools

- restartujemy naszego peceta do BIOSu
- wchodzimy w zakładkę secure boot (czynności i nazwy mogą się różnić w zależności od producenta lub wersji Biosu),
- włączamy tryb setup/custom mode
- czyścimy klucze (reset keys)
- wchodzimy w zakładkę secure boot (czynności i nazwy mogą się różnić w zależności od producenta lub wersji Biosu),

- zapisujemy ustawienia (zazwyczaj F10) i uruchamiamy system operacyjny
- sprawdzamy dla pewności czy mamy aktywny tryb setup mode:
sbctl status
– jeśli widzimy Setup Mode: X Enabled, to jedziemy dalej

- generujemy własne klucze:
sudo sbctl create-keys

- rejestrujemy je:
sudo sbctl enroll-keys -m

- podpisujemy nimi nasz bootloader oraz kernele:
- bootloader:
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi
sudo sbctl sign -s /boot/EFI/Linux/arch-linux.efi
sudo sbctl sign -s /boot/EFI/Linux/arch-linux-fallback.efi
sudo sbctl sign -s /boot/EFI/systemd/systemd-bootx64.efi
sudo sbctl sign -s /boot/EFI/Boot/bootx64.efi
- dodatkowy kernel LTS:
sudo sbctl sign -s /boot/EFI/Linux/arch-linux-lts.efi
- dodatkowy kernel LTS:
sudo sbctl sign -s /boot/EFI/Linux/arch-linux-lts-fallback.efi
- bootloader:

- sprawdzamy poprawność podpisania:
sudo sbctl verify

- Restartujemy peceta do Biosu i włączamy Secure Boot
- Weryfikujemy czy secure boot został pomyślnie włączony:
bootctl

- Bardzo ważna rzecz: ustawiamy hasło w BIOSie!
TPM 2.0
TPM 2.0 jest fizycznym układem zabezpieczającym obecnym na płycie głównej naszego peceta. Jego zadaniem jest bezpieczne przechowywanie kluczy kryptograficznych używanych do szyfrowania i odszyfrowania naszego dysku.
- sprawdzamy posiadane urządzenie TPM:
sudo systemd-cryptenroll --tpm2-device=list
- instalujemy tpm2-tools:
sudo pacman -S tpm2-tools
- tworzymy klucz odzyskiwania
sudo systemd-cryptenroll --recovery-key /dev/gpt-auto-root-luks
- rejestrujemy nasze klucze w TPM:
sudo systemd-cryptenroll --tpm2-device=auto /dev/gpt-auto-root-luks --tpm2-pcrs=0+7
- restartujemy peceta, od teraz nie powinien pokazywać się monit o hasło do odszyfrowania dysku.
To wszystko. Teraz powinniśmy mieć możliwość automatycznego odszyfrowania naszego dysku poprzez moduł TPM, czyli bez wpisywania hasła. W moim przypadku niestety to nie zadziałało (Thinkpad T460), przyczyną najprawdopodobniej była zbyt stara wersja TPM 2.0. Podobny problem miałem podczas instalacji OpenSUSE Aeon/Kalpa. W takim przypadku jesteśmy zmuszeni do każdorazowego wpisywania hasła odszyfrowania dysku ręcznie. Dokumentacja OpenSUSE wskazuje że musimy posiadać TPM 2.0 w wersji co najmniej 1.38 aby była możliwość automatycznego odszyfrowania dysku przez moduł TPM.
Utrzymanie i obsługa Archa
Arch Linux jest dystrybucją Rolling Release, czyli charakteryzuje się ciągłym systemem wydawniczym. Ma to swoje zalety i wady. Zaletą jest to, że nie musimy instalować kolejnych „dużych wersji systemu”. Niesie to jednak za sobą pewne konsekwencje. W przypadku zmian w systemie wprowadzanych przez deweloperów jesteśmy zmuszeni wprowadzać je samodzielnie, nazywa się to „interwencjami”. Na szczęście zdarzają się one stosunkowo rzadko (raz na kilka miesięcy). Żeby ułatwić cały proces interweniowania, deweloperzy Archa publikują zmiany w Arch News dostępne na głównej stronie dystrybucji. Możemy monitorować zmiany na kilka sposobów, np. poprzez dodanie Arch News do naszego czytnika kanałów RSS, dodanie do obserwowanych konta Archa na Mastodonie lub poprzez odpowiednią konfigurację wtyczki Apdatifier.
Kolejną cechą Arch Linux jest aktualność dostarczanych pakietów. Zaletą tej polityki jest na bieżąco aktualizowany system włączając w to wszelkie poprawki bezpieczeństwa itp. Wadą zaś może być potencjalna niestabilność w przypadku niedostatecznie przetestowanych pakietów.
System aktualizujemy poprzez komendę:
sudo pacman -Syu
Jeśli jednak wolimy graficzny interfejs, odsyłam do poniższego akapitu.
Opcjonalne czynności po instalacji systemu
włączamy obsługę AUR – Arch User Repository
AUR czyli Arch User Repository jest to repozytorium aplikacji przygotowanych pod Arch Linux przez jego użytkowników. Jest to jeden z największych wyróżników tej dystrybucji. Jeśli nie znajdziemy jakiegoś programu w domyślnych repozytoriach pacmana, najprawdopodobniej znajdziemy go w AUR. W naszym przypadku zainstalujemy YAY (Yet Another Yogurt).
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Od teraz możemy instalować aplikacje z AUR poleceniem:
yay nazwa_programu
Aktualizacja całego systemu (Pacman + AUR) sprowadza się do jednej prostej komendy:
yay
– i kto mówił, że komendy są trudne i nudne? 😉
Graficzny menedżer pakietów
Jeśli brakuje nam graficznego menedżera do instalowania i zarządzania pakietami, możemy zainstalować sobie jeden z wybranych przez nas. Najpopularniejszymi są Pamac (w GTK3 – optymalnie dla Gnome) od twórców Manjaro oraz Octopi (w QT – optymalnie dla KDE). W moim przypadku postawiłem na minimalizm i oszczędność. Jako że używam środowiska KDE, to zainstalowałem sobie wtyczkę Apdatifier. Wspomniane wyżej menedżery Octopi i Pamac możemy zainstalować w każdym środowisku graficznym, wtyczka Apdatifier zaś dostępna jest tylko w środowisku KDE.
Do zainstalowania Octopi i Pamac będziemy potrzebowali najpierw uzyskać dostęp do AUR.
Octopi
Pakiet instalujemy za pomocą komendy yay octopi
, otwieramy aplikację o nazwie Octopi.

Pamac
Instalujemy używając polecenie yay pamac-aur
, otwieramy aplikację o nazwie Dodawanie/usuwanie oprogramowania.

Apdatifier
Instalacja wtyczki możliwa jest tylko w środowisku KDE. Opcjonalnie żeby osiągnąć pełną funkcjonalność, potrzebujemy zainstalować kilka zależności:
sudo pacman -S fzf pacman-contrib curl jq unzip tar
Przystępujemy teraz do instalacji samej wtyczki (niestety nie ma możliwości pobrania przez terminal, cały proces trzeba wyklikać):
- klikamy PPM na dolny pasek -> dodaj lub zarządzaj elementami interfejsu

- Po lewej stronie ekranu klikamy na Pobierz nowe -> Pobieranie elementów interfejsu Plazmy

- W nowym oknie wpisujemy Apdatifier, jak nam wyszuka klikamy Wgraj

- Po zainstalowaniu powinna ukazać nam się ikonka na pasku, klikamy na nią PPM -> Ustawienia Adatifier

- Ukaże nam się okno ustawień.

- Tak Apdatifier wygląda podczas działania (PPM -> Zarządzanie):


Pomijanie okna wyboru kernela
Jeśli chcemy pominąć okno wyboru kernela i uruchomić automatycznie domyślny, musimy ustawić timeout w systemd na 0 sekund:
- otwieramy plik konfiguracyjny systemd przy pomocy konsolowego edytora nano:
sudo nano /boot/loader/loader.conf
- lub jeśli posiadamy środowisko KDE, otwieramy plik za pomocą kate:
kate /boot/loader/loader.conf
- w miejsce
timeout
zamieniamy domyślną wartość na0
Dodajemy profile zasilania
W domyślnej instalacji nie będziemy mieli także profili zasilania. Jeśli posiadamy laptopa, mogą okazać się potrzebne. Instalujemy je poleceniem:
sudo pacman -S tuned-ppd
Po restarcie peceta profile zasilania będą już aktywne.
Samba – udostępnianie plików w sieci lokalnej
Jeśli potrzebujemy mieć możliwość udostępniania plików poprzez protokół SMB, dalej zwany Sambą, musimy wykonać poniższe kroki:
- Instalujemy pakiet Samba:
sudo pacman -S samba
- Ustalamy hasło dla naszego użytkownika:
sudo smbpasswd -a [użytkownik]
- Pobieramy plik smb.conf (PPM -> zapisz jako), otwieramy go i dla przykładu jeśli chcemy w sieci udostępnić katalog Pobrane, edytujemy sekcję [Pobrane], czyli w linijce path = /home/user/Pobrane/ zmieniamy user na nazwę naszego użytkownika.
- Restartujemy naszego peceta. Folder Pobrane powinien być już widoczny w sieci
Obsługa drukarek i urządzeń wielofunkcyjnych HP
Instalujemy niezbędne pakiety oraz aktywujemy cups poniższymi poleceniami:
sudo pacman -S hplip cups tesseract-data-pol
sudo pacman -S skanlite skanpage
obsługa skanera, preferowane dla KDEsudo pacman -S simple-scan
obsługa skanera, preferowane dla Gnomesudo systemctl enable cups.service
sudo systemctl start cups.service
Opcjonalnie, jeśli irytuje nas wyskakujące okno wyboru urządzenia przy otwieraniu aplikacji skanera, możemy wyłączyć te, które są nam niepotrzebne. Wystarczy otworzyć plik /etc/sane.d/dll.conf
i zakomentować (hashem – # ) pozycje v4l i escl. Powinny wyglądać tak: #escl #v4l
Dodatkowo, jeśli przy każdorazowym otwarciu aplikacji do obsługi skanera system pyta nas o hasło superusera, możemy wyłączyć żądanie poprzez aktywowanie demona avahi:
systemctl enable avahi-daemon.service
Jeśli mamy już wszystko zainstalowane i skonfigurowane, pozostaje nam podłączyć nasze urządzenie. W przypadku łączenia w naszej sieci lokalnej wpisujemy poniższe polecenie:
hp-setup -i [lokalny_adres_ip_urządzenia]
Postępujemy zgodnie z instrukcjami wyświetlanymi w terminalu.
Szybsze „odszyfrowanie” hasła
Opcja dodana do archinstall wraz w wersją 3.0.9
Jeśli nie działa u nas automatyczne odszyfrowanie dysku poprzez TPM 2.0, to jesteśmy zmuszeni wpisywać nasze hasło ręcznie przy każdym uruchomieniu komputera. Po wpisaniu hasła i zatwierdzeniu najprawdopodobniej będziemy musieli odczekać kilka-kilkanaście sekund zanim nasz dysk zostanie odszyfrowany. Spowodowane jest to przez domyślną wartość parametru –iter-time odpowiedzialnego za czas przetwarzania hasła określony w milisekundach. Domyślnie parametr ten ze względów bezpieczeństwa jest dość wysoki. Możemy zredukować go do 2000ms, czyli czasu określanego jako domyślny w dokumentacji LUKS2. osiągniemy to za pomocą poniższych poleceń:
- znajdujemy nazwę naszej partycji:
lsblk
(w moim przypadku jest to nvme0n1p2)
- wpisujemy polecenie zmieniające parametr –iter-time
sudo cryptsetup luksChangeKey --iter-time 2000 /dev/nvme0n1p2
- wartość 2000 jest minimalną zalecaną wartością dla LUKS2. Im jest ona większa, tym trudniej będzie wykonać atak siłowy. Jednak kosztem tego jest dłuższy czas „odszyfrowania” hasła. Możemy także ustawić wartość 1000, jednak jest ona dość niska i nie jest zalecana.
Włączenie bluetooth
Opcja dodana do archinstall wraz w wersją 3.0.9
Domyślnie po instalacji mamy wyłączony bluetooth. Aby go włączyć wpisujemy polecenia:
sudo systemctl start bluetooth
sudo systemctl enable bluetooth
KDE – opcjonalne czynności po instalacji
Bonusowo przedstawię kilka czynności po instalacji Archa ze środowiskiem graficznym KDE.
Wyłączenie kwallet
Jako że zainstalowany kwallet będący elementem KDE jest dość irytujący (np. pytanie o hasło przed podłączeniem do sieci wifi, które jest już zapisane w systemie), wyłączymy go dwoma prostymi poleceniami:
kwriteconfig6 --file kwalletrc --group 'Wallet' --key 'Enabled' 'false'
kwriteconfig6 --file kwalletrc --group 'Wallet' --key 'First Use' 'false'
Usuwamy Discover
Discover jest menedżerem pakietów domyślnie zainstalowanym w KDE Plasma. Dlaczego będziemy go usuwać? Ponieważ Arch Linux i tak z niego nie korzysta. Najpierw jednak trzeba wykonać kilka czynności:
- Usuwamy pakiet meta. Jest to pakiet, który określa wszystkie pakiety Plasmy jako swoje zależności
sudo pacman -R plasma-meta
- Następnie oznaczamy wszystkie pakiety Plasmy jako zainstalowane ręcznie poleceniem –asexplicit:
sudo pacman -D --asexplicit bluedevil breeze-gtk discover drkonqi kde-gtk-config kdeplasma-addons kgamma kinfocenter krdp kscreen ksshaskpass kwallet-pam kwrited ocean-sound-theme oxygen oxygen-sounds plasma-browser-integration plasma-desktop plasma-disks plasma-firewall plasma-nm plasma-workspace-wallpapers plasma-pa plasma-systemmonitor plasma-thunderbolt plasma-vault plasma-welcome powerdevil print-manager sddm-kcm spectacle wacomtablet xdg-desktop-portal-kde
- Usuwamy pakiet Discover wraz z jego zależnościami
sudo pacman -R discover archlinux-appstream-data qt6-webview
- Sprawdzamy dla pewności, czy żadne pakiety nie zostały osierocone (nie powinny):
sudo pacman -Qtd
Instalujemy KDE Connect
KDE Connect jest aplikacją pozwalającą na przesyłanie plików, otrzymywanie powiadomień, sterowanie sprzętem, odtwarzaczem i wiele innych pomiędzy urządzeniami, na których mamy go zainstalowanego. Mogą to być inne dystrybucje Linuxa ze środowiskiem KDE, włączając w to KDE mobile, czy dowolny smartfon z Androidem. Jest to dla mnie pakiet „must have”, jak i pewnie dla każdego użytkownika KDE. Aplikację instalujemy jednym prostym poleceniem:
sudo pacman -S kdeconnect sshfs
Podsumowanie
Nawiązując do wstępu, Arch nie jest systemem dla każdego. Jednak przy obecnym mocno obniżonym progu wejścia poradzi sobie z nim znakomita większość obecnych użytkowników innych dystrybucji Linuxa. Wbrew opiniom krążącym po internecie jest to stabilna dystrybucja (oczywiście z wyjątkiem zastosowań produkcyjnych). Należy tylko pamiętać o obsłudze systemu, która polega na monitorowaniu Arch News i stosowaniu ewentualnych ręcznych interwencji. Największą zaletą systemu jest wszechstronność, minimalizm i możliwość dostosowania systemu pod swoje potrzeby, aktywna społeczność oraz rozbudowana dokumentacja dostępna na oficjalnej stronie.
I use Arch btw 😉
Jeśli podoba Ci się moja praca lub masz jakieś uwagi, pozostaw komentarz pod wątkiem lub na Mastodonie.
Możesz też postawić mi małą czarną 🙂
No widzę kolega ładny poradniczek zrobił – pogratulować 🙂
Pozdrawiam serdecznie.
A dziękuję 🙂 od CachyOS (którego zresztą mam na pececie do grania) do Archa już tylko ostatnia prosta 😉