Jeszcze jedna instrukcja instalacji Arch Linux (i3)
Arch Linux jest systemem, który kocham za elastyczność i wygodę użytkowania. Jego instalacja uchodzi za jedną z trudniejszych, ponieważ przenosi na nas ciężar decydowania o wielu szczegółach, którymi nie przejmujemy się podczas codziennej pracy z komputerem.
Za przykład niech posłuży wybór klienta DHCP, dzięki któremu możemy dostać adres IP, maskę podsieci, adres bramy domyślnej i adresy serwerów DNS. Są dwa dostępne programy do obsługi protokołu DHCP. Od Ciebie zależy, który z nich zainstalujesz:
Tego typu decyzji podejmujemy przy instalacji arch linux więcej, dlatego najlepszym źródłem wiedzy będzie zawsze ArchWiki. Ten artykuł ma na celu pokazanie mojej instalacji, którą możesz powtórzyć w całości lub wybrać z niej wartościowe dla Ciebie elementy i wkomponować je we własną pasującą do Ciebie instalację.
Instalacja zostanie pokazana zarówno na komputerze z UEFI jak i BIOS.
Kolejno omówimy:
- Podłączenie do sieci wifi
- Instalację systemu
- Instalację managera okien
i3-gaps
- Konfigurację
i3
i podstawowych programów
Rdzeń instalacji przedstawia poniższa grafika, ale niektóre komendy będą się u nas różnić.
Przygotowanie bootowalnego pendrive
Obraz ISO Archa możemy pobrać z torrentów:
Jednak ponieważ płyty CD nie są już używane, domyślnym działaniem jest wgranie go na USB. Żeby to zrobić wkładamy pendrive do komputera i sprawdzamy jaką nazwę dostał jednym z poleceń dmesg | grep Attached
, df -h
lub lsblk
.
W naszym przypadku jest to sde
. Odmontowujemy pendrive komedą:
sudo umount /dev/sde1
Po czym z katalogu zawierającego obraz iso
wgrywamy go na pendrive.
sudo dd bs=8M if=arch.iso of=/dev/sde status=progress
Po włożeniu pendrive do docelowej maszyny i uruchomieniu zwykle należy użyć F12
przy starcie, ale to zależy od modelu komputera i ustawień BIOS.
Jeśli się uda powinniśmy zobaczyć:
Po zatwierdzeniu przez ENTER
trafimy do konsoli instalatora
Podłączenie sieci wifi przez iwctl
Nawiązanie połączenia z internetem jest naszym pierwszym zadaniem.
Zaczniemy od listy dostępnych urządzeń, wpisujemy iwctl
a następnie device list
.
Lista sieci dostępna jest po wpisaniu station wlan0 get-networks
Podłączamy się do wybranej sieci poleceniem station wlan0 connect TP-Link_CEC8
i podajemy hasło.
W przypadku bardzo starego laptopa Acer Aspire One - miałem błąd ze sterownikami wifi i musiałem podłączyć się przez ethernet.
Aby wyłączyć iwctl
wpisujemy quit
.
Do sprawdzenia, czy mamy poprawnie nawiązane połączenie możemy użyć
ping -c 3 google.com
Instalacja Arch
Instalujemy reflector
pacman -Sy reflector
Aktualizujemy listę repozytoriów
reflector -c "Poland" --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
Jeśli twój internet jest wolny dodaj falgę --download-timeout
, np.:
reflector -c "Poland" --latest 5 --sort rate --download-timeout 60 --save /etc/pacman.d/mirrorlist
Za pomocą fdisk -l
lub lsblk
wyświetlamy dostępne dyski
Jeśli zobaczymy błąd
GPT PMBR size mismatch will be corrected by w(rite)
naprawiamy go wpisując
parted -l
a następnie fix
.
Partycje można poustawiać poleceniem
cfdisk /dev/sda
oczywiście adres dysku może u Ciebie być inny niż /dev/sda
. Wybieramy typ linux (x86)
.
Teraz musimy okreslicz czy instalujemy system bootawny z biosa czy przez uefi. Jesli nie wiemy sprawdzmy czy nasza plyta gowna obsluguje UEFI i jesli tak to lepiej wybrac uefi. Jesli masz nowy komputer mozesz pominac rozdzial "BIOS" i przejsc do "UEFI".
BIOS
Na starszych komputerach użyjemy biosa. Programem cfdisk
lub fdisk
mozemy ustawic:
- bootowalna patrycje sda1 z typem 83 Linux
- nie bootowalna partycje sda2 z typem 82 Linux Swap
Fortsmtujemy utworzona partycje
mkfs.ext4 /dev/sda1
Montujemy gotowa partycje do /mnt
mount /dev/sda1 /mnt
Możemy teraz pominąć fragment "UEFI" i przejść do "Pacstrap"
UEFI
W przypadku UEFI musimy przygotować tabelę GPT. Możesz użyć do tego bardziej przyjazdnego programu cfdisk
, lub bardziej zaawansowanego fdisk
. Poniżej pokazuję to w fdisk
.
fdisk /dev/sda
wybieramy opcję g
Tworzymy partycję uefi
wybierając kolejno n
(nowa), ENTER
(nie zmieniamy punku pierwszego sektora), +200M
(ustawiamy ostatni sektor na + 200 MB
.
Ustawiamy typ na EFI System
przez t
(jak type), 1
(numer typu EFI System
).
Tworzymy drugą partycję n
(new), ENTER
(domyślny numer 2), ENTER
(domyślny początkowy blok), ENTER
(domyślny końcowy blok).
Zapisujemy zmiany wybierając w
.
Formatowanie partycji UEFI na fat 32
mkfs.fat -F32 /dev/sda1
Formatowanie na system plików drugiej partycji na ext4
:
mkfs.ext4 /dev/sda2
Montujemy partycję na system do katalogu /mnt
.
mount /dev/sda2 /mnt
A partycję na uefi do /mnt/boot
, najpierw musimy utworzyć ten katalog
mkdir /mnt/boot
i teraz zamontować
mount /dev/sda1 /mnt/boot
Dzięki poleceniu slblk
możemy sprawdzić, czy montowanie jest poprawne.
Pacstrap
I instalujemy system poleceniem pacstrap
pacstrap /mnt base linux linux-firmware nano
Generujemy plik fstab
.
genfstab -U /mnt >> /mnt/etc/fstab
Wchodzimy do zainstalowanego systemu
arch-chroot /mnt /bin/bash
Swapfile
Przygotowujemy swap:
fallocate -l 2GB /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
Do /etc/fstab
dodajemy
/swapfile none swap defaults 0 0
Strefa czasowa
Ustawiamy strefę czasową
ln -sf /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
Generujemy adjtime
żeby zsynchronizować zegar systemowy ze sprzętowym
hwclock --systohc
Język
Ustawimy lokalizację kasując komentarz jednej z linii pliku locale.gen
nano /etc/locale.gen
Generujemy obsługę języków
locale-gen
W pliku /etc/locale.conf
wpisujemy LANG=pl_PL.UTF-8
echo LANG=pl_PL.UTF-8 > /etc/locale.conf
A w /etc/vconsole.conf
KEYMAP=pl
FONT=Lat2-Terminus16
FONT_MAP=8859-2
Sieć
W /etc/hostname
ustawiamy nazwę hosta. Jest to nazwa naszego komputera - przydatna jeśli mamy kilka urządzeń w sieci lokalnej.
W /etc/hosts
dodajemy linie
127.0.0.1 localhost.localdomain preciselab
trzecia kolumna zawiera nazwę hosta wybrana poprzednio.
Instalujemy networkmanager
.
pacman -S networkmanager dhcpcd
Włączamy usługę NetworkManager
systemctl enable NetworkMananger
Przydatne paczki
Jest to indywidualna decyzja, jakie jeszcze inne pakiety powinien zawierać system. Wymienię i opiszę kilka polecanych przeze mnie.
- network-manager-applet - frontend do zarządzania połączeniami z siecią
- wireless_tools - otwarty projekt sponsorowany przez HP - zawiera narzędzia takie jak iwconfig iwlist iwspy wipriv oraz ifrename do obsługi sieci wifi
- wpa_supplicant - wsparcie dla szyfrowanych wifi WEP, WPA, WPA2 and WPA3 - dzisiaj niezbędny
- dialog - paczka do wyświetlania okien dialogowych ze skryptów w bashu, wymagana do używania wifi-menu
- netctl - konsolowe narzędzie do zarządzania sieciami ( zawiera wifi-menu )
- os-prober - narzędzie do wykrywania innych systemów operacyjnych i urządzeń, przydatne jeśli grub ich nie widzi
- base-devel - zestaw paczek do kompilacji, obróbki tekstu i kompresji
- linux-headers - skrypty do budowania modułów jadra systemowego
- reflector - skrypt do automatyzacji wyboru serwerów lustrzanych
- git - system kontroli wersji używany do programowania i instalacji pakietów
- cups - rozwijany przez Apple system do obsługi drukarek
- xdg-utils - narzędzia pomocnicze dla aplikacji XDG MIME
- xdg-user-dirs - narzędzie do integracji katalogu użytkownika z innymi programami, w szczególności przydatne dla managerów plików
- openssh - oprogramowanie do połączenia się przez ssh
- iwd - narzędzie do łączenia się z siecią np przez iwctl
Możemy je zainstalować poleceniem:
pacman -S network-manager-applet wireless_tools wpa_supplicant dialog netctl os-prober base-devel linux-headers reflector git cups xdg-utils xdg-user-dirs openssh iwd
Jeśli chcesz używać bluetooth to przydadzą Ci się jeszcze bluez bluez-utils
.
Teraz zainstalujemy bootloader, żeby system mógł poprawnie wystartować. W zależności od tego czy wybrałeś opcje BIOS czy UEFI przejdź do odpowiedniego rozdziału.
Boot loader w BIOS
Instalujemy bootloader
pacman -S grub
używamy komendy grub-install
grub-install /dev/sda
i tworzymy plik konfiguracyjny gruba
grub-mkconfig -o /boot/grub/grub.cfg
Boot loader w UEFI
Instalujemy bootloader
pacman -S grub efibootmgr
używamy komendy grub-install
grub-install --target=x86_64-efi --efi-direcotry=/boot --bootloader-id=GRUB
w przypadku błędu
this GPT partition label contains no BIOS Boot Partition
naprawiamy poleceniem
parted /dev/sda
set 1 boot off
set 1 bios_grub on
q
W przypadku błędu
"EFI variables are not supported on this system"
wychodzimy z chroot
przez exit
i wpisujemy
modprobe efivars
Jeśli zobaczymy błąd
Module efivars not found in directory /lib/modules/5.10.3-arch1-1
musimy włączyć komputer ponownie w trybie efi. Jest tak dlatego, że cześć maszyn może wybierać czy włącza się w trybie bios czy efi.
Dokumentacja mówi, że możemy sprawdzić czy to działa wpisując:
efivar-tester
ale nie polecam tej metody, u mnie zapętla się w nieskończoność i nie da się tego wyłączyć inaczej niż sprzętowo wyłączając komputer.
Tworzymy plik konfiguracyjny dla gruba
grub-mkconfig -o /boot/grub/grub.cfg
Użytkownicy
Aby na co dzień moc poslugiwac sie systemem bez uprawnień roota a jednocześnie móc szybko nabywać, zainstalujemy sudo
pacman -S sudo
Ustawiamy hasło dla root
passwd root
Dodajemy użytkownika do codziennego użytku
useradd -m -g users -G wheel -s /bin/bash daniel
Dajemy mu hasło
passwd daniel
Grupie wheel
pozwalamy na używanie sudo
.
EDITOR=nano visudo
kasujemy komentarz przed linią
%wheel ALL=(ALL) ALL
Wychodzimy z instalatora
exit
Odmontowujemy partycję
umount /mnt
Wyłączamy komputer
shutdown -P now
Problemy sieciowe
Jeśli po wpisaniu
ip addr
interfejsy są wyłączone to można je włączyć przez
ip link set dev <interface> up
Do sprawdzenia, które interfejsy warto włączyć przydatne może być nmcli
.
Jeśli nie możesz włączyć interfejsu, ale znasz nazwę i hasło sieci możesz spróbować bezpośredniego połączenia podążając za zaleceniami z linku:
nie mam pojęcia dlaczego to działa.
Jeśli tłumaczenie nazw domen na adresy ip, nie działa poprawnie musimy wybrać domyślny DNS. Ustawiamy to w
/etc/resolv.conf
wpisując
nameserver 8.8.8.8
Stan serwisu odpowiadającego za nadawanie domenom numerów ip sprawdzimy poleceniem
systemctl status systemd-resolved.service
Błędy z kluczami
Jeśli mamy błędy typu
Signature is unknown trust
Możemy sprawdzić dany klucz
pacman-key -l Thorsten
i jeśli wygasł, to odświeżyć listę kluczy
pacman-key --refresh-keys
Instalacja yay
Yay jest pomocniczym programem do zarządzania zależnościami. Jeśli zainstalowałeś base-devel
możesz pobrać yay za pomocą gita
git clone https://aur.archlinux.org/yay.git
i zainstalować poleceniami
cd yay && makepkg -si
Instalacja I3
Sam manager okien instaluje się poleceniem
yay -S i3-gaps
Należy do niego dodać czcionkę i pasek
yay -S ttf-dejavu i3status
Instalujemy xorg
.
yay -S xorg xorg-xinit rxvt-unicode
Oraz sterowniki do swojej karty. Typ karty możesz sprawdzić poleceniem lspci | grep VGA
.
Dla karty AMD/ATI RV370 [Radeon X300]
jest to
yay -S xf86-video-ati
Dla nvidia
będą to:
yay -S nvidia nvidia-utils
Dla Atom Processor Integrated Graphics Controller
jest to
yay -S xf86-video-intel
Jeśli nie wiesz jaką paczkę zainstalować dla swojej karty polecam poszukać na stronie:
Aby obsługiwać dźwięk dodajemy też alsa-utils
, pulseaudio
i pavucontrol
yay -S alsa-utils pulseaudio pavucontrol
speaker-test -c2
alsamixer
Edytujemy plik
nano /etc/X11/xinit/xinitrc
komentując linie
#twm &
#exec xterm ....
i dodając na końcu
exec i3
teraz możemy włączyć tryb graficzny wpisując
startx
Potwierdzamy wygenerowanie konfiguracji przez ENTER
oraz potwierdzamy klawisz win
jako główny klawisz.
Konfiguracja I3 i rxvt-unicode
Wartościowe wprowadzenie do i3
nagrał Distroverse
:
Wzorowałem się na nim tworząc swoją konfigurację. Znajdziesz ją w repozytorium
ale polecam Ci przejrzeć kilka różnych konfiguracji i poczytać dokumentację i3, która jest jedną z lepszych dokumentacji managerów okien.
Tym czasem zajmiemy się samym terminalem urxt-unicode
. Polecam Ci to video
Przechodzimy do katalogu domowego
cd ~
Tworzymy konfigurację
touch .Xresources
możemy wkleić do tego pliku jedną z gotowych konfiguracji
curl https://raw.githubusercontent.com/gustawdaniel/my-arch-i3-config/main/.Xresources > .Xresources
lecz ja polecam poczytać kilka różnych zestawień lub obejrzeć filmy wyjaśniające dokładnie możliwe opcje i dobrać z nich te, które są najlepsze dla nas.
Do przeładowania konfiguracji służy komenda
xrdb ~/.Xresources
Przeglądarka
Instalujemy przeglądarkę, której wybór ponownie jest Twoim wyborem. W przypadku najpopularniejszej przeglądarki - google chrome jest to:
yay -S google-chrome
Pierwszy dodatkiem jest Ublock Origin
.
Polski układ klawiatury w X11
Aby używać polskich znaków w środowisku graficznym ustaw layout klawiatury wstawiając do pliku /usr/share/X11/xorg.conf.d/10-keyboard.conf
konfigurację
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "pl"
EndSection
Launcher
Najprostszy launcher to dmenu
. Instalujemy go komendą
yay -S dmenu
i używamy przez kombinację klawiszy super+d
Screenshoty
Według mnie najlepszy jest flameshot
. Instalujemy go komendą
yay -S flameshot
W konfiguracji i3
możemy połączyć go z przyciskiem print screen
bindsym Print exec flameshot gui
Sterowanie innymi komputerami
Jeśli używamy kilku komputerów i chcemy sterować nimi używając jednej myszki i klawiatury na wszystkich komputerach możemy zainstalować barrier
.
yay -S barrier
Na urządzeniu klienckim ustawiamy id serwera:
A na serwerze:
Wskazujemy gdzie względem naszego komputera ustawi się klient
W przypadku problemów z zestawieniem połączenia zawsze pomagało wyłączenie i włączeniu obu komputerów.
Oh my zsh
Zsh jest powłoką alternatywną do bash
o więszych możliwościach customizacji i rozszerzania. Instalujemy ją poleceniem:
yay -S zsh
Następnie instalujemy oh my zsh
.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Tapeta
Zaczniemy od sprawdzenia rozdzielczości monitorów poleceniem
xrandr --listmonitors
Pobieramy tapetę w odpowiednim rozmiarze i zapisujemy ją do pliku
.config/i3/.bg.jpeg
Instalujemy feh
komendą
yay -S feh
Do pliku .fehbg
zapisujemy skrypt ustawiający tapetę
#!/bin/sh
feh --no-fehbg --bg-scale '/home/daniel/.config/i3/.bg.jpeg'
Dajemy mu prawa do uruchamiania
sudo chmod +x ~/.fehbg
w .config/i3/config
włączamy go poleceniem
exec --no-startup-id sh ~/.fehbg
Neovim
Odrobinkę wygodniejsza wersja vim
.
yay -S neovim
Synchronizacja zegara systemowego
Jeśli w dacie lub godzinie pojawia się rozbieżność warto włączyć synchronizację z serwerami wskazującymi poprawny czas.
sudo timedatectl set-ntp true
Monitoring zasobów
Do sprawdzania użycia i temperatury procesora, zajętej pamięci operacyjnej, transferu sieci - czyli ogólnego monitoringu polecam bashtop
.
yay -S bashtop
Display Manager
Program w którym wybieram typ sesji oraz podaję login i hasło to ly
.
yay -S ly
sudo systemctl enable ly.service
Tmux i Tmuxinator
Do zarządzania sesjami, oknami i podziałem okien w terminalu używam tmuxa.
yay -S tmux ruby
gem install tmuxinator
Jego konfiguracja:
Bitwarden
Do zarządzania hasłami używałem keeweb. Obecnie korzystam z bitwarden:
yay -S bitwardern
za zarządzanie jego widocznością odpowiada następująca konfiguracja w pliku ~/.config/i3/config
:
exec --no-startup-id bitwarden
bindsym $Mod+k [instance="bitwarden"] scratchpad show; [instance="bitwarden"] move position center
for_window [instance="bitwarden"] move scratchpad
for_window [instance="bitwarden"] border pixel 3
for_window [instance="bitwarden"] resize set 800 600
Nasz Arch Linux z i3 jest gotowy
Wciąż do efektywnej pracy może brakować nam IDE
jeśli jesteśmy programistami lub obs
jeśli nagrywamy video albo programów do obróbki grafiki. Jednak sam system i podstawowe programy możemy uznać za gotowe.
Jeśli twoim zdaniem w zestawieniu zabrakło jakichś programów, albo widzisz miejsca gdzie mógł być coś uprościć daj znać w komentarzu.