Arch Linux

Arch Linux je pro pokročilé, jelikož se instaluje z příkazové řádky a grafické prostředí si musíme doinstalovat. Sami si vybereme, co si k jádru operačního systému nainstalujeme. Arch Linux začíná instalací balíku base, linux, linux-firmware a volitelně i base-devel. Když jsem si ho osvojil, už jsem nechtěl jiný.

Příklad: Instalace Arch Linux pro běžné používání

Rozhodl jsem se, že připravím ukázku instalace GNU/Linux na svůj počítač pro osobní, kancelářské a nebo studijní užití. Má oblíbená distribuce je Arch Linux, více informací o této distribuci je na stránkách projektu archlinux.org.

Předpoklad

Výhody konfigurace

Nevýhody


Bootovací médium

Vytvořím si bootovací FLASH disk. ISO instalačního média naleznu na domovské stránce projektu. Pomocí programu Rufus mohu vytvořit bootovací médium a nebo na systémech Linux jej vytvořím pomocí nástroje "dd". Připojím bootovací médium k zařízení, nastavím korektně prioritu bootování tak, aby instalační médium mělo prioritu. Případně mohu jednorázově vyvolat bootovací menu počítače a zvolit si instalační médium. Zkontroluji podporu UEFI. V praxi jsem instaloval OS na virtuální počítač a několik výše uvedených kroků jsem nedělal.

Instalační médium nabootováno

Před zahájením instalace si nastavím české rozložení klávesnice příkazem:

loadkeys cz-qwertz

Rozdělení disků

Mohu se vrhnout do přípravy disků. K počítači je připojen jeden SSD disk, který využiji jako systémový a dva plotnové disky pro data. Systémový disk o kapacitě 120GB vhodně rozdělím a založím logicklé svazky, plotnové disky o kapacitě 1TB využiju na sestavení RAIDového pole se zrcadlením, získám tak rychlý systém a redundanci pro data, v případě nečekaného výpadku jednoho z plotnových disků s daty mám možnost jej vyměnit. Vlastní zálohu dat provádím na lokální síťové úložiště, ale o tom až jindy.

Plánované rozvržení disků:
sda1 - 512MB - boot
sda2 - 120GB - lvm - swap, root, home
sdb1 + sdb2 - 1TB - RAID1 - DATA

Disky rozděluji nástrojem cfdisk, rozdělím disky dle plánu výše:

cfdisk /dev/sda
cfdisk /dev/sdb
cfdisk /dev/sdc
		

Vytvořím systém souborů FAT32 na disku sda1:

mkfs.fat -F32 /dev/sda1

Založím skupinu svazků na disku /dev/sda2 a poté vytvořím logické svazky. Volím systém souborů ext4, v této konfiguraci naprosto vyhovuje:

vgcreate system /dev/sda2
lvcreate -L 16G system -n swap
lvcreate -L 30G system -n root
lvcreate -l 100%FREE system -n home

Naformátuji i tyto svazky:

mkfs.ext4 /dev/mapper/system-root
mkfs.ext4 /dev/mapper/system-home

Mohl bych také vytvořit zvláštní svazky pro umístění např. "var" a další, ale v tomto případě jsem tak nekonal. Oddíly pro "root" a "home" postačí.

Připojím po dobu instalace vytvořené disky do umístění /mnt:

mount /dev/mapper/system-root /mnt
mkdir -p /mnt/home
mkdir -p /mnt/boot
mkdir -p /mnt/mnt/DATA
mount /dev/mapper/system-home /mnt/home
mount /dev/sda1 /mnt/boot

Vytvořím swapovací systém souborů na určeném svazku a aktivuji jej:

mkswap /dev/mapper/system-swap
swapon /dev/mapper/system-swap

Instalace jádra a základních utilit, chroot

Vše potřebné je potřeba nainstalovat do umístění /mnt.

pacstrap /mnt base base-devel linux linux-firmware

Poté vygeneruji fstab dle aktuálně připojených disků do umístění /mnt:

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

Nyní se mohu chrootnout do nového systému:

arch-chroot /mnt

V nainstalovaném systému

Nyní se již vše odehrává v nově nainstalovaném OS, v této části proběhně prvotní konfigurace, instalace zavaděče a několika důležitých utilit. Potřebné nástroje atd. nainstaluji:

pacman -S dhcpcd nano sudo mc htop lvm2 efibootmgr grub mdadm

Nastavím jazyk, v souboru /etc/locale.gen odkomentuji řádky cs_CZ.UTF-8 UTF-8 a cs_CZ ISO-8859-2 a spustím locale-gen.

nano /etc/locale.gen
locale-gen

Zbývá donastavit časové pásmo a říct systému o našem primárním jazyce:

ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime
echo LANG=cs_CZ.UTF-8 > /etc/locale.conf
echo KEYMAP=cz-qwertz > /etc/vconsole.conf
		

RAID

Vzhledem k tomu, že jsem si vybral sestavení RAIDového pole, tak potřebuji nástroj mdadm. Vytvořím tedy RAIDové pole a naformátuji jej:

mdadm --create /dev/md1 -l1 -n2 /dev/sdb1 /dev/sdc1
mkfs.ext4 /dev/md1
mount /dev/md1 /mnt/mnt/DATA

Zápis do fstab může vypadat takto:

/dev/md1  /mnt/DATA  ext4  rw,relatime  0 2 

LVM, GRUB a EFI

Veškerý software zde potřebný jsem nainstaloval v předešlích kapitolách. Nainstaluji zavaděč pro UEFI do patřičnéhu umístění a provedu vytvoření jeho konfigurace:

grub-install --target=x86_64-efi --efi-directory=/boot/
grub-mkconfig -o /boot/grub/grub.cfg

Vzhledem k tomu, že jsem si toto nastavení vybral, tak musím zajistit načtení potřebného hooku pro LVM. Do souboru /etc/mkinitcpio.conf zapíšu lvm2

HOOKS=(... block lvm2 filesystems ...)

Poté musím přegenerovat inicializační data pro bootování jádra:

mkinitcpio -p linux

Kontrola

Vypíšu si report stavu volného místa, RAID polí a paměti.

cat /proc/mdstat

Jak je vidět ze screenu, tak RAIDové pole se synchronizuje - to nějaký čas potrvá. Mezitím si už mohu užívat OS GNU/Linux dle libosti, je třeba ale počítat s možným zpomalením vlivem synchronizace disků. Instalace software se provádí jako superuživatel, pro tyto potřeby se v příkazovém řádku přihlašuji jako root pomocí su a zadání hesla účtu root.

Jméno počítače, heslo a reboot

Jméno počítače mohu nastavit takto:

echo novy_pc > /etc/hostname

Změnu hesla vyvolám příkazem passwd a dvakrát zadám heslo.

Ukončím režim chroot pomocí CTRL+D a nebo příkazem exit.

Provedu restart PC pomocí příkazu reboot.

První boot nového OS, vytvoření uživatele

Vidím před sebou textový přihlašovací dialog, zadám uživatele root a heslo, které jsem zvolil dříve.

Je čas si vytvořit uživatele martin, který bude patřit do - pro mě - základních skupin:

useradd -m -g users -G audio,video,games,optical,storage,power,wheel martin

Opět pomocí nástroje passwd nastavím heslo pro uživatele martin:

passwd martin

Povolení sítě

Aktuálně neběží žádná služba spravující síťové připojení LAN, využiji dhcpcd a spustím ji:

systemctl enable dhcpcd
systemctl start dhcpcd

Zkontroluji přiřazení IP adresy:

ip a

Aktualizace balíčků

Kompletní aktualizace repozitáře i nainstalovaných balíčků se provede takto:

pacman -Syyu

Zvuk

Je více možností jak řešit zvukový výstup na systémech GNU/Linux, já využívám ALSA, pro zvuk a nějaké ty nástroje jako mixér apod. je tedy potřeba nainstalovat:

pacman -S alsa-utils alsa-plugins

V příkazovém řádku tak mohu vyvolat mixér příkazem alsamixer.

Instalace X, DM a WM

Nainstaluji X Server, správce displeje a oken, vybral jsem XFCE4:

pacman -S xorg xorg-xinit lxdm xfce4

Zaktivním správce displeje pro příští spuštění:

systemctl enable lxdm

Vzdálený přístup

Pro vzdálený přístup protokolem SSH zainstaluji balíček openssh.

pacman -S openssh

Konfigurace se provádí v souboru /etc/ssh/sshd_config. Defaultní nastavení pro náš účel stačí. Zaktivním a spustím tedy službu sshd.

systemctl enable sshd
systemctl start sshd

Připojení na vlastní stroj mohu otestovat takto:

ssh localhost

Firewall

Pro správu pravidel ip tables využívám nástroj ufw, který se mi osvědčil pro svou jednoduchost. Je potřeba jej spouštět jako superuživatel.

Nainstaluji jej a zaktivním:

pacman -S ufw
systemctl enable ufw
systemctl start ufw
ufw enable
		

Pro vzdálenou správu povolím port 22 a protokol tcp:

ufw allow 22/tcp

Příkazem ufw status verbose mohu vypsat aktuálně platná pravidla.

ufw status verbose

Zbývající software a restart

Doinstaluji zbývající software, který hodlám využívat:

pacman -S libreoffice libreoffice-fresh-cs firefox firefox-i18n-cs thunderbird thunderbird-i18n-cs screen net-tools soundconverter gimp inkscape gpicview gvfs kdeconnect virtualbox vlc mplayer pcmanfm ncdu htop geany dosbox

A může jich být mnohem více...

Příkazem reboot restartuji

Grafické prostředí po startu

Hurá, naběhl mi systém na přihlašovací obrazovku.

Přihlašovací obrazovka - lxdm
Desktop XFCE4

Tisk

Tiskový server CUPS se v Linuxu stará o tisk a tiskárny, stačí nainstalovat balíček cups a spustit službu:

pacman -S cups
systemctl enable cups
systemctl start cups

Konfiguraci lze provést ve webovém rozhraní na adrese, kterou zadáme do prohlížeče:

localhost:631

Závěr

Vzhledem k tomu, že většina dění se odehrávala v příkazové řádce, je obsah poněkud strohý o obrázky. O to věřím, že bude přínosnější.

VGA Nvidia GeForce GT 710

Nastavení a instalace GPU na Arch Linuxu.

Ověření GPU

lspci -v | grep -A1 -e VGA -e 3D

01:00.0 VGA compatible controller: NVIDIA Corporation GK208B [GeForce GT 710] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device 8c93

Instalace a konfigurace Nvidia GeForce GT 710

Nvidia GeForce GT 710 prý patří do skupiny karet řady GeForce 7000 a proto:

  1. Nainstaloval jsem z AUR balíčky:
    • nvidia-470xx-dkms
    • nvidia-470xx-utils
    • nvidia-470xx-settings
    yay -S nvidia-470xx-dkms nvidia-470xx-utils nvidia-470xx-settings
  2. Spustil jsem jako root:
  3. nvidia-xconfig
  4. A ještě načtení modulů:
  5. nvidia-modprobe
  6. Pro jistotu jsem provedl ještě příkaz:
  7. mkinitcpio -p linux
  8. Restart
  9. Příkaz lsmod pak obsahuje řádky:
  10. nvidia_drm             53248  1
    nvidia_modeset       1060864  3 nvidia_drm
    nvidia_uvm           1896448  0
    nvidia              15892480  85 nvidia_uvm,nvidia_modeset
    ipmi_msghandler        77824  2 ipmi_devintf,nvidia
    		    
  11. X Server je funkční, více obrazovek se chová korektně a rovněž funguje nvidia-settings.

xorg.conf:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 390.147  (dvs-builder@U64-E08-29-1)  Mon Dec 13 13:50:12 UTC 2021

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
		

Nouveau

  1. Nainstaloval jsem balíček:
  2. xf86-video-nouveau
  3. V souboru /etc/mkinitcpio.conf jsem uvedl moduly:
  4. MODULES=(dm_mod nouveau)
  5. Provedl jsem příkaz jako root:
  6. mkinitcpio -p linux

Archlinux 32

Distribuce Archlinux se od roku 2017 vyvýjí pro architektury i686 zvlášť jako Archlinux 32

„Během roku 2017 ukončila linuxová distribuce Arch Linux podporu architektur i686. Pro ty, kteří nemají hardware pro 64 bitový operační systém a nemohou jej upgradovat, se nabízí přechod na Arch Linux 32.“

Jak je na tom 32 bitový derivát Arch Linux?

Na první pohled je Arch Linux 32 totožný s jeho 64 bitovým kolegou, je rychlý, jednoduchý a drží si základní principy Arch Linux. Balíčky v repozitáři jsou překompilovány pouze pro i686, pentium4 a některé dokonce i pro i486. Aktuální jádro je ve verzi 5.3.13. Odpadá repozitář multilib a některé balíčky v AUR jsou nekompatibilní a nedají se použít. Bez problému provozuje všechny běžné programy z oficiálního repozitáře. Ve všech ohledech je to 100% Arch Linux. Instalace probíhá dle instrukcí pro klasický Arch Linux.

Terminál a screenfetch

(ne)Jasná budoucnost?

Temná budoucnost podpory starších strojů se stává realitou a já osobně si moc přeji udržení kompatibility starších architektur procesorů. Fandím komunitě Arch Linux 32, aby projekt co nejdéle držela.

Na podzim roku 2019 padají služby:

Stalo se tomu tak díky výpadku serveru a nezodpovědné obsluze serveru s těmito službami. Netrvalo dlouho a vše se napravilo. Aktuálně se distribuci daří a mohu ji jedině doporučit.

Známé chyby

Setkal jsem se s problémem s knihovnami QT5 při spuštění programu, který je vyžaduje(VLC a podobné). Možný downgrade problém odstraní, ale nevyřeší. Chyba je popsána v buglistu a brzy se snad opraví.

Po instalaci není možné instalovat z oficiálního repozitáře program Gimp, řeším instalací z flatpak.

Kompletní seznam chyb na: bugs.archlinux32.org/

Arch Linux-VirtualBox

Provoz distribuce Arch Linux ve VirtualBoxu.

Na vysvětlenou

Instalace hosta

Instalace systému ve VirtualBoxu je totožná s klasickou instalací na libovolné PC, jen je potřeba doinstalovat balíček zajišťující vzájemnou komunikaci mezi hostitelem a hostem.

Poté je potřeba načíst do kernelu potřebné moduly vboxguest, vboxsf a vboxvideo, stačí povolit a spustit službu vboxservice.service:

systemctl enable vboxservice.service
systemctl start vboxservice.service

Pro alternativní načtení modulů:

modprobe -a vboxguest vboxsf vboxvideo

Pro zbylou funkčnost všech komponentů hostitel-host spouším při startu VBoxClient-all.

.xsession:

VBoxClient-all &

VGA VMware SVGA II Adapter

lspci:

00:02.0 VGA compatible controller: VMware SVGA II Adapter

Instaluji balíček:

pacman -S xf86-video-vmware

mkinitcpio.conf:

MODULES=(vmwgfx)

Sdílené složky

Funkce sdílené složky umožní vybrané adresáře sdílet do virtuálních systémů. Pro jednotlivé OS se pak liší způsob, jakým se do systému souborů připojí. Povětšinou je zapotřebí virtualbox-guest-tools anebo virtualbox-ose-additions. Uživatel by měl být ve skupině vboxsf.

  1. Otevřeme v hostiteli menu sdílené složky
  2. Vytvoříme sdílený adresář
  3. Vybereme umístění v PC pro daný adresář
  4. Pro trvalé sdílení nutno zaškrtnout Vytvořit trvale
  5. Potvrdíme a můžeme jej připojit ve spuštěném virtuálním PC.

Zápis do fstab může být např.:

DATA	/mnt/DATA	vboxsf	rw,gid=984,uid=1000	0 2

gid:

cat /etc/group | grep users

users:x:984:

uid:

cat /etc/passwd | grep uzivatel
				
uzivatel:x:1000:984::/home/uzivatel:/bin/bash

Autostart počítače při přihlášení na hostiteli Windows

  1. Vytvoření skriptu start.bat s povely pro nastartování VM.
  2. Naplánování úlohy přes plánovač Windows - po přihlášení uživatele spustit skript start.bat.
    • Obecné-Spustit pouze pokud je uživatel přihlášen
    • Aktivační události-Při přihlášení
    • Akce-Spustit program(C:\VirtualBox\start.bat)

start.bat:

cd c:\VirtualBox\
VBoxManage.exe startvm virtualpc

Instalace hostitele

  1. Instalace balíčku virtualbox:
  2. pacman -S virtualbox
  3. Restart PC

Zmenšení souboru dynamického disku

Hostitel: Windows 10 64-bit
Host: OpenSUSE Leap 15.1
VirtualBox 6.1

Nejdříve obsadíme volné místo na oddílech samými nulami pomocí nástroje zerofree a poté v hostitelském PC spustíme vboxmanage.exe a je to.

Do virtuálního počítače je potřeba zainstalovat zerofree. Z rescue anebo jiného systému spustíme zerofree na požadovaný oddíl:

zerofree -v /dev/sda1

Jestliže je vynulování hotové, otevřeme si v příkazové řádce adresář VirtualBoxu, který se nachází například v Program Files\Oracle\VirtualBox. Spustíme příkaz VBoxManage.exe a přidáme pár argumentů včetně cesty k souboru dynamického disku:

VBoxManage.exe modifymedium disk "C:\Virtual\openSUSE 15.1.vdi" --compact

18GB velký soubor disku jsem takto zredukoval na 14GB. Osvědčilo se mi připojit zmenšovaný oddíl do jiného spuštěného systému, zainstalovat zerofree a z již funkčního jiného systému jsem vynuloval volné místo. Pak na hostitelském PC s Windows 10 jsem provedl zmenšení souboru disku.

Poznámky k Arch Linuxu

Pacman - chyba podpisu balíčků(PGP)

Při aktualizaci zastaralého systému jsem se setkal s hláškou, že nebylo možné ověřit podpis PGP u balíčku a nebo je balíček poškozený.

File "Jméno balíčku" is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] 

Smazání či ponechání balíčku nic nevyřešilo. Řešením - leč nikoli ideálně - bylo změnit způsob pro výchozí ověřování balíčků na TrustAll v konfiguračním souboru Pacmana /etc/pacman.conf. Důležité jsou dle potřeby řádky SigLevel a LocalFileSigLevel - záleží na balíčcích, které chceme instalovat, při updatu se používá SigLevel.

Obnova klíčů v klíčence

Šetrné řešení při chybě importu klíčů do klíčenky jsem vyřešil obnovou klíčů.

pacman-key --init
pacman-key --populate archlinux
pacman-key --refresh-keys

Pacman - update systému

Update balíčků provedu příkazem:

pacman -Syyu

VirtualBox

Instalace ve VirtualBoxu je totožná s klasickou instalací na libovolné PC, jen je potřeba doinstalovat balíček zajišťující vzájemnou komunikaci mezi hostitelem a hostem.

Poté je potřeba načíst do kernelu potřebné moduly vboxguest, vboxsf, vboxvideo, stačí povolit a spustit službu vboxservice.service:

systemctl enable vboxservice.service
systemctl start vboxservice.service

Pro ruční načtení modulů:

modprobe -a vboxguest vboxsf vboxvideo

Xerox WorkCentre 3025

Instalace této multifunkce od značky Xerox je trochu komplikovanější, ale přesto si lze s ovladači poradit. Mimo tiskový server je nutné nainstalovat nástroje pro USB a také sadu ovladačů pro Samsung(pro ovladač tiskárny použijeme Samsung M2070).

Nainstaloval jsem balíčky:

Při instalaci tiskárny a ovladače pro tiskárnu zvolíme Samsung M2070.

Multimedia audio controller: Intel Corporation Comet Lake PCH-LP cAVS

Nefunkční ALSA s chybovou hláškou, že není možné nalézt zvukovou kartu mne nemile překvapila. Nicméně prohlédnutím journalctl |grep audio jsem zjistil, že chybí firmware pro sof, stačilo zainstalovat balík sof-firmware a restart PC.