Návody k operačnímu systému Xubuntu (desktopové prostředí Xfce).
↩️️ Disky
Případ
Operační systém se nechce zavést do počítače (bootovat) z příčin:
- poškození GRUB definice.
- po připojení dalšího systémového disku, který pro zavedení není zadefinován v GRUB.
- při potřebě zavést operační systém s přidanými parametry (např. rescue mód).
Řešení
Operativní zavedení systému z GRUB příkazové řádky grub> , do které se dostaneme klávesou [Esc] v počátku přerušení bootování a z GRUB menu klávesou . Nebo přejde do GRUB rescue módu grub rescue> při závadě. V příkazovém řádku jsou nápomocné klávesy [↑] [↓] pro listování historií příkazů, [Home] [End] pro skoky kursoru na začátek a konec řádku a [Tab] pro dokončování názvů cest a souborů.
Začneme u zobrazení disků, diskových oddílů, RAIDů, které jsou k dispozici příkazem
💻 ls
Například disky, diskové oddíly, Raidy (hd0) (hd0,gpt1) (md/0) ... Zjistíme odkud bootovat systém výpisem adresáře /boot zadaný pro každé diskové umístění
💻 ls (hd0)/boot
💻 ls (hd0,gpt1)/boot
💻 ls (md/0)/boot
Příklad zavedení z 1. oddílu disku
💻 set boot=(hd0,gpt1)
💻 set prefix=(hd0,gpt1)/boot/grub
💻 insmod normal
💻 normal
Nezadaří-li se…
Obvykle zavádím systémy z RAIDů (md/0) a (md/2) . Vybírám (md/2)
💻 set root=(md/2)
Zavést další související moduly z adresáře /boot/grub/i386-pc . Všechny se dají vylistovat příkazem
💻 ls /boot/grub/i386-pc
V mém příkladě zavádím
💻 insmod /boot/grub/i386-pc/raid5rec.mod
💻 insmod /boot/grub/i386-pc/raid6rec.mod
💻 insmod /boot/grub/i386-pc/ext2.mod
💻 insmod /boot/grub/i386-pc/gzio.mod
Dále přednastavíme jádro výběrem z vmlinuz... souborů (je dobrá nápověda klávesou [Tab]) a umístění ve tvaru /dev/… , konkrétně root=/dev/md2 . Chceme-li záchranný mód (Rescue) a ReadOnly mount, přidáme parametry ro rescue
💻 linux /boot/vmlinuz-5.4.0.-89-generic root=/dev/md2 ro rescue
Stejným způsobem i přednastavíme image soubor, nutný pro bootování systému
💻 initrd /boot/initrd.img-5.4.0.-89-generic
Zahájíme bootování
💻 boot
Zobrazení HW informací přímo z firmware disku
Příklad rovnou pro skupinu disků /dev/sda až /dev/sdz :
💻 sudo hdparm -i /dev/sd?
Podrobnější:
💻 sudo hdparm -I /dev/sd?
Zobrazení tabulky diskových oddílů
Informace o oddílech disků /dev/sda až /dev/sdz
💻 sudo fdisk -l /dev/sd?
Zobrazení typu souborového oddílu
Příklad rovnou pro skupinu disků /dev/sda až /dev/sdz
💻 sudo file -sL /dev/sd*
Zobrazení informací všech disků a jejich oddílů
💻 sudo parted -l
Zobrazení informací o soborovém systému všech disků a jejich oddílů
💻 sudo blkid
Zobrazení informací všech blokových zařízení a jejich identifikace
💻 lsblk -lafm
Zobrazení informací o připojených souborových systémech
💻 df
💻 df -a
Zobrazení detailních informací o softwarových RAID zařízeních
💻 sudo mdadm -D /dev/md?
Příklad pro iso soubor: Fedora-Workstation-Live-x86_64-v33.iso
💻 isoinfo -d -i Fedora-Workstation-Live-x86_64-v33.iso
Selekce pouze labelu:
💻 isoinfo -d -i Fedora-Workstation-Live-x86_64-v33.iso |grep "Volume id"
Kontrola
⚠️ Souborový systém musí být vždy odmontován i když jde jen o kontrolu, jinak může indikovat chyby.
💻 sudo umount /dev/sda5
Kontrola souborového systému:
💻 sudo fsck.ext4 -n /dev/sda5
Oprava
Odmontování:
💻 sudo umount /dev/sda5
Oprava (-y vynutí ano potvrzení) :
💻 sudo fsck.ext4 -y -f /dev/sda5
Oprava ze záložního superbloku (pokud je primární vadný)
Odmontování:
💻 sudo umount /dev/sda5
Oprava (-y vynutí ano potvrzení) :
💻 sudo fsck.ext4 -y -b 32768 /dev/sda5
Někdy se hodí automaticky nabootovat systém z jiné grub menu položky, než z té standardně předdefinované, aniž by se musela odchytávat grub menu nabídka.
Výpis menu a submenu položek
💻 sudo grep -e "menuentry " -e "submenu " /boot/grub/grub.cfg
Zobrazí se něco podobného, kdy následný start systému bude například ze submenu položky 'Ubuntu, with Linux 5.11.0-46-generic' (5. řádek). Krajní menuentry jsou hlavní menu a odsazená menuentry v submenu.
menuentry 'Ubuntu' --class ubuntu ...
submenu 'Advanced options for Ubuntu' ...
menuentry 'Ubuntu, with Linux 5.13.0-52-generic' --class ubuntu ...
menuentry 'Ubuntu, with Linux 5.13.0-52-generic (recovery mode)' --class ubuntu ...
menuentry 'Ubuntu, with Linux 5.11.0-46-generic' --class ubuntu ...
menuentry 'Ubuntu, with Linux 5.11.0-46-generic (recovery mode)' --class ubuntu ...
menuentry 'Memory test (memtest86+, serial console 115200)' {
Popis prezentace menu položek
Číslování menuentry jsou od 0 . V seskupení submenu se prezentují oddělovačem > (číslované také od 0 ). Indexace uvedeného výpisu by byla 1. řádek (hlavní menuentry) 0 , 2. řádek (hlavní submenu) 1 , 3. řádek (menuentry v submenu) 1>0, 4. řádek (menuentry v submenu) 1>1 , 5. řádek (menuentry v submenu) 1>2 , 6. řádek (menuentry v submenu) 1>3 , 7. řádek (hlavní menu) 2 .
Nastavení (pro platnost pouze následujícího rebootu) zvolené submenu položky (5. řádek)
💻 sudo grub-reboot "1>2"
Kontrolní zobrazení definice
💻 sudo cat /boot/grub/grubenv
Zobrazí se:
# GRUB Environment Block next_entry=1>2 ########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
Zrušení definice
💻 sudo grub-editenv /boot/grub/grubenv unset next_entry
Platnost pro každý reboot
Zde dle příkladu volbu "1>2" je potřeba zadefinovat přes sudo do souboru /etc/default/grub změnu parametru GRUB_DEFAULT="1>2" . Nakonec změnu aktivovat příkazem sudo update-grub .
Instalace:
💻 sudo apt install fdupes
Příklad vyhledávání duplicitních souborů i pod jinými jmény s nabídkou výběru k jejich odstranění a ignorace souborů s nulovou délkou:
💻 sudo fdupes -rdn /home
Vyhledávání s výsledným seznamem zapsaným i do souboru:
💻 sudo fdupes -rdn /home |tee seznam.txt[/mch-acr]
Nainstalovat si: wxhexeditor
💻 sudo wxHexEditor /dev/sdc
Instalace
💻 sudo apt install gnome-disk-utility
💻 sudo apt install exfatprogs
Přejmenování
Spusit buď v aplikacích vyhledáním: „Disky“
nebo z příkazového řádku:
💻 gnome-disks
Vybrat souborový systém:

Přejmenovat (max. 11 znaků) :

Vykřičník upozorňuje na stejný název. Po změně názvu zmizí.
Rozdělení disku pro Xubuntu
☝️V příkladu jde o disk /dev/sdx.
💻 sudo sgdisk -o -n 1:2048:+160M -t 1:EF00 -c 1:"EFI" -n 2:0:+36G -t 2:8300 -c 2:"LX" -n 3:0:0 -t 3:8300 -c 3:"HM" /dev/sdx
💻 sudo partprobe /dev/sdx
- oddíl „EFI“ je pro zavedení systému jako UEFI, naformátovaný jako VFAT:
💻sudo mkdosfs -F 32 -n EFI /dev/sdx1 - oddíl „LX“ je pro Xubuntu systém, naformátovaný jako EXT4:
💻sudo mkfs.ext4 -m 2 -L "LX" /dev/sdx2 - oddíl „HM“ je pro domovské adresáře uživatelů, naformátovaný jako EXT4:
💻sudo mkfs.ext4 -m 0 -L "LX" /dev/sdx3
Kontrolní výpis:
💻 lsblk -f /dev/sdx
↩️️ Síť
Pro potřebu síťové konektivity v záchranném módu (rescue) lze síťové připojení aktivovat pomocí příkazů.
Zjištění síťových portů
💻 networkctl
V mém případě je ethernet port eno1 , který použiji v konfiguračním souboru (dodržet postupná odsazení mezerami)
Připravení definice portu
💻 echo -e "network:\n ethernets:\n eno1:\n dhcp4: yes" >/etc/netplan/00.yaml
Vygenerování konfigurace
💻 netplan --debug generate
Aktivace spojení
💻 netplan --debug apply
Kontrola stavu (routable configured)
💻 networkctl
Nadefinování nameserveru
💻 rm -f /etc/resolv.conf
💻 echo "nameserver 8.8.8.8" >/etc/resolv.conf
Kontrola odezvy
Např. od seznam.cz :
💻 ping -c 3 seznam.cz
Příklad na dostupnost stránek Seznamu (místo IP lze použít doménové jméno) :
💻 nc -vzw 2 IP_ADRESA PORT_SLUŽBY
💻 nc -vzw 2 seznam.cz 80
💻 nc -vzw 2 seznam.cz 443
☝️ Nefunguje, pokud má cíl reakci na ping zakázanou.
💻 ping IP_ADRESA
Příklad ukončení ssh spojení na portu 22 s IP adresou 11.22.33.44 :
💻 sudo ss -K dst 11.22.33.44 dport = 22
💻 ip address
💻 ip link
💻 ifconfig
Výpis všech:
💻 netstat -twnplua
Výpis pouze naslouchajících:
💻 sudo LANG=C netstat -twnplua |grep LISTEN
↩️️ Systém
Jsou to záznamy o činnostech a chybách systému, služeb, aplikací, zobrazitelné například pomocí journalctl.
💡 Nejen pro nainstalování Xubuntu, ale i k jeho odzkoušení ještě před instalací.
Případ
Operační systém se nechce zavést do počítače (bootovat), ať už příčiny přepsání zaváděcí oblasti na disku nebo po nakopírování systému bez vytvoření této zaváděcí části.
Řešení
Příklad vytvoření bootování systému (přes GRUB) z oddílu /dev/sdb2 disku /dev/sdb připojený do /mnt funkčního systému. Pro variantu bootování přes UEFI, tak je umístěn /boot/efi na /dev/sdb1.
Doinstalace grub programů
☝️ Systém, přes který se bude GRUB obnovovat musí mít nainstalovanou podporu pro daný typ bootování, jako bude na obnovovaném disku.
Pro MBR:
💻 sudo apt install grub-pc
Pro UEFI:
💻 sudo apt install grub-efi
Připojit adresář obnoveného systému
💻 sudo mount /dev/sdb2 /mnt
Pro UEFI přidat:
💻 sudo mount /dev/sdb1 /mnt/boot/efi
Připojit do něj i aktuální procesní adresáře
💻 sudo mount -B /proc /mnt/proc
💻 sudo mount -B /dev /mnt/dev
💻 sudo mount -B /sys /mnt/sys
💻 sudo mount -B /run /mnt/run
Přepnout se do připojeného systému
💻 sudo chroot /mnt
Upravit mount / systému na /dev/sdb2
💻 sudo nano /etc/fstab
Vytvoření Bootování
Pro MBR:
💻 sudo grub-install /dev/sdb
Pro UEFI:
💻 sudo grub-install --target=x86_64-efi --no-nvram --efi-directory=/boot/efi --bootloader-id=xubuntu
Společné:
💻 sudo update-grub
💻 sudo update-initramfs -c -k all
Odpojení se od systému
💻 exit
💻 sudo umount /mnt/proc /mnt/dev /mnt/sys /mnt/run
💻 sudo umount /mnt
Případ
Po instalaci Xubuntu může nastávat problém, že Plymouth obrazovka během bootvání přeskočí do jiného rozlišení.
Příčina
Přeskočení rozlišení splash obrazovky během bootu způsobí, že plymouth ztratí spojení s klávesnicí pro zadání hesla.
Řešení dočasné
Při bootování odchytit GRUB menu, v něm vymazat splash a pokračovat v bootování. Tímto místo nefunkčního grafického zadání hesla bude zadání hesla v příkazovém řádku.
Řešení trvalé
Mít shodné oboje uvedené rozlišení v grub:
💻 sudo vi /etc/default/grub
Definice:
... GRUB_GFXMODE="1024x720" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=1024x720@60" ...
💻
sudo update-grub
💻 sudo update-initramfs -c -k all
Naslouchání událostí jádra uevents službou udevd a reagování na tyto vytvořenými pravidly. Definice služby jsou v /etc/udev a pravidel v /etc/udev/rules.d podrobné informace o zařízení v /sys .
Externí odkazy:
udev – Dynamic device management – Ubuntu Manpage
Tutorial on how to write basic udev rules in Linux
udev – Linux dynamic device management
Monitorování událostí (Ctrl+c ukončení):
💻 sudo udevadm monitor -puk
Výpis parametrů událostí na webkameře:
💻 udevadm info -q all -n /dev/video0
Výpis atributů k webkameře:
💻 sudo udevadm info -an /dev/video0
(Re)aktivace pravidel:
💻 sudo udevadm control --reload-rules && sudo udevadm trigger
Případ
Je-li potřeba zásahu na disku, především systémovém, v jeho neaktivním stavu.
Řešení
Použít například live distribuci „Ubuntu server“, běžící pouze v operační paměti. Jedná se sice o mód příkazového řádeku, ale za to s minimálními nároky a většinou s již implementovanou Raid podporu (mdadm), podporou windows NTFS souborového systému apod.
V příkladu vycházím z ubuntu-20.04.3-live-server-amd64.iso vypálené na DVD.
Zavedení instalačního DVD média v rescue módu
Přidáním Boot parametru systemd.unit=rescue.target (jinak by se pokračovalo v módu instalace).
Provede se přerušením procesu bootování z DVD opakovaně klávesou [mezerník] až se objeví volba jazyka. Po zvolení jazyka se zvolí rescue mód klávesou [F6], následně v menu [mezerníkem] označit „Expert mode“ a menu opustit klávesou [Esc]. V řádku „Boot Options initrd=/casper/initrd quiet ---“ smazat „---“ a připsat systemd.unit=rescue.target . Nakonec potvrdit klávesou [Enter] pro pokračování zavádění z DVD.
Na výzvu zadání hesla „Press Enter for maintenance (or press Control-D to continue):“ dát [Enter] a vyčkat na doběhnutí až do příkazového řádku root@ubuntu-server:~#
Domovský adresář je /root rovněž v prostoru operační paměti. Informace o diskových alokací se zobrazí příkazy:
💻 sudo parted -l
💻 sudo blkid
💻 lsblk -a df
Další možnost, popis zevedení Ubuntu Serveru v rescue módu z Bootovacího USB flash disku.
Aktivace Ethernet připojení z příkazové řádky
ℹ️ Operační systém # Aktivace Ethernet připojení z příkazové řádky
Každý uživatel je v systému identifikován číslem uživatele UID a skupiny GID (obvykle se přidělují stejná) identifikující vlastnictví adresářů, souborů, procesů. Může nastat situace, kdy uživatel má své soubory i na jiném systému a tyto chce mít zejména pro nasdílení si se stejným vlastnictvím. Jedna z možností je mít své UID a GID na obou systémech stejná.
Příklad přečíslování uživatele „uziv“
Pro větší názornost jsou si UID a GID rozdílná. UID: 1001 -> 2001 , GID: 1002 -> 2002.
☝️ Samozřejmě jde o přečíslování indetifikace uživatele a vlastnictví soborů, nikoli například obsahu uživatelských skriptů obsahující příkazy s číselnými UID a GID odkazy.
☝️ Je dobré si předem udělat zálohu.
Výpis seznamu dotčených adresářů a souborů
Je možné si do souboru vypsat seznam dotčených adresářů a souborů dle stávajících UID: 1001 a GID: 1002
💻 sudo find / -user 1001 -exec ls -ld {} \; |tee seznam-uid.txt
💻 sudo find / -group 1002 -exec ls -ld {} \; |tee seznam-gid.txt
Ověření volných UID a GID
Nyní je nutné si ověřit nejsou-li nová UID: 2001 a GID: 2002 v systému již obsazená
💻 sudo grep :2001: /etc/passwd
💻 sudo grep :2002: /etc/group
Pokud jsou UID a GID volná,vyhledání nic nenalezne.
Změna vlastnictví adresářů a souborů
Přečíslování vlastnictví UID: 1001 -> 2001 , GID: 1002 -> 2002 u uživatele „uziv“.
💻 sudo usermod -u 2001 uziv
💻 sudo find / -user 1001 -exec chown -h uziv {} \;
💻 sudo groupmod -g 2002 uziv
💻 sudo find /home -group 1002 -exec chgrp -h uziv {} \;
Pokud používám Xubuntu jen v českém prostředí a systémovou část v anglickém, lze zredukováním ušetřit místo na disku a hlavně čas při aktualizacích.
Uschování originální konfigurace:
💻 sudo cp /etc/locale.gen /etc/locale.gen.orig
Upravit soubor konfigurace:
💻 sudo vi /etc/locale.gen
Ponechat v něm pouze:
C.UTF-8 UTF-8 cs_CZ.UTF-8 UTF-8 en_US.UTF-8 UTF-8
Přegenerovat:
💻 sudo locale-gen
Kontrolní výpis:
💻 locale -a
C cs_CZ.utf8 C.utf8 en_US.utf8 POSIX
Pro běžné používání bez pořeby uspávání není nutné pro SWAP mít alokovaný samostatný diskový oddíl, ale stačí mít založený SWAP soubor. Instalátor Xubuntu již tento běžně zakládá jako /swap.img .
Vytvoření SWAP souboru /swap.img o velikosti 2GB :
💻 sudo fallocate -l 2G /swap.img
💻 sudo chmod 00600 /swap.img
💻 sudo mkswap -L SWAP /swap.img
💻 sudo swapon /swap.img
Zobrazení:
💻 swapon
💻 free -m
Automatický mount:
💻 sudo vi /etc/fstab
Vložit:
/swap.img none swap sw 0 0
💻
sudo update-initramfs -ck all
Případ
Bliknutí obrazovky, každých 30 minut zhasnutí na 2 sekundy.
Příčina
Stává se ve spojitosti s běžícím Firefoxem a to jen v určité konfiguraci Xubuntu, verzí jeho balíčků.
Řešení
Vyexportovat parametr MOZ_DISABLE_RDD_SANDBOX=1 , nejlépe pro celé prostředí zadefinováním do:
💻 sudo vi /etc/bash.bashrc
Vložit:
... export MOZ_DISABLE_RDD_SANDBOX=1
Jednoduchá aktivace je odhlášením se z Xubuntu a zpět přihlášení.
