Jeszcze jedna instrukcja instalacji Arch Linux (i3)
Instalacja Arch Linux za każdym razem uczy mnie czegoś nowego na temat dysków, sieci, systemów operacyjnych. Polecam Ci ją jeśli chcesz mieć system skrojony pod Twoje wymagania.
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.