Arch Linux dla (prawie) każdego

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.

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) wiele 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 jest najpopularniejszą dystrybucją wg. statystyk Steam z czerwca 2025

Instalacja

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ższy punkt i przechodzimy od razu do punktu aktualizacja,
  • 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
  • [opcjonalnie] zalecane jest zaktualizowanie archlinux-keyring i archinstall:
    • pacman -Sy archlinux-keyring archinstall
  • uruchamiamy archinstall:
    • archinstall
  • pokaże nam się instalator, od tej pory postępujemy jak 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
  • 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)
  • zapisujemy ustawienia (zazwyczaj F10) i uruchamiamy system operacyjny
  • sprawdzamy dla pewności czy mamy aktywny tryb setup mode:
    • sbctl status
  • generujemy własne klucze:
    • sudo sbctl create-keys
  • rejestrujemy je:
    • sudo sbctl enroll-keys -m
  • podpisujemy nimi nasz bootloader oraz kernele:
    • 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-all
  • 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 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 dodać je do naszego czytnika kanałów RSS lub monitorować je na wiele innych sposobów, np. poprzez wtyczkę Apdatifier.

System aktualizujemy poprzez komendę:

  • sudo pacman -Syu

Jeśli zainstalowaliśmy np. YAY do obsługi AUR, możemy aktualizować system łącznie z pakietami AUR komendą:

  • yay -Syu

Jeśli jednak wolimy graficzny interfejs, odsyłam do poniższego akapitu.

Opcjonalne czynności po instalacji systemu

Szybsze „odszyfrowanie” hasła

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.

instalujemy AUR

AUR czyli Arch User Repository jest to repozytorium aplikacji przygotowanych pod Arch Linuxa 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

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.

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, np. przy pomocy edytora kate:
    • kate /boot/loader/loader.conf
  • w miejsce timeout zamieniamy domyślną wartość na 0

Włączenie bluetooth

Domyślnie po instalacji mamy wyłączony bluetooth. Aby go włączyć wpisujemy polecenia:

  • sudo systemctl start bluetooth
  • sudo systemctl enable bluetooth

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ą aktywne.

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
  • sudo 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.

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 😉

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *