Obsah

Řešení problémů


1. Oprava chyb při selhání bootování (RHEL/CentOS 7, 8)

1.1. Poškozený master boot record (MBR) nebo chybějící soubory v /boot/efi oddílu

1. Nabootujte z instalačního zdroje (live CD, instalační DVD nebo síť).

2. Až se zobrazí nabídka zavaděče jádra, vyberte položku „rescue“ pomocí kláves se šipkami nahoru/dolů.

3. Vyberte možnost 1 (Continue) a stisknutím klávesy „Enter“ připojte systém pod „/mnt/sysimage“.

4. Stisknutím klávesy „Enter“ otevřete shell.

5. Změňte kořenový souborový systém na „/mnt/sysimage“:

sh-4.4# chroot /mnt/sysimage


6. Přeinstalujte zavaděč jádra GRUB 2 do MBR bootovacího zařízení:

sh-4.4# grub2-install /dev/sda

nebo přeinstalujte balíčky „grub2-efi“ a „shim“:

sh-4.4# yum reinstall grub2-efi shim


7. Ukončete chroot a rescue shell:

sh-4.4# exit
sh-4.4# exit

(Systém se restartuje, provede úplné přenastavení bezpečnostního kontextu SELinuxu a poté se znovu restartuje.)

1.2. Chybné záznamy v konfiguračním souboru pro GRUB 2

A. Použití záchranného režimu

1. Restartujte systém.

2. Až se zobrazí nabídka zavaděče jádra, vyberte položku „rescue“ pomocí kláves se šipkami nahoru/dolů.

3. Přihlaste se do záchranného režimu.

4. Vytvořte nový konfigurační soubor pro GRUB 2:

# grub2-mkconfig -o /boot/grub2/grub.cfg

(na systému s firmwarem BIOS)
nebo

# grub2-mkconfig -o /boot/efi/EFI/${ID}/grub.cfg

(na systému s firmwarem UEFI)

5. Restartujte systém:

# reboot


B. Použití GRUB 2 shellu

1. Restartujte systém.

2. Až se zobrazí nabídka zavaděče jádra, stiskněte libovolnnou klávesu pro přerušení bootovacího procesu, kromě klávesy „Enter“.

3. Vyberte jádro pomocí kláves se šipkami nahoru/dolů.

4. Stiskněte klávesu „c“ pro spuštění GRUB 2 shellu.

5. Zaveďte XFS a LVM moduly:

grub> insmod xfs
grub> insmod lvm


6. Zobrazte dostupná zařízení:

grub> ls
(lvm/vg00-home_lv) (lvm/vg00-tmp_lv) (lvm/vg00-var_lv) (lvm/vg00-usr_lv) (lvm/v
g00-root_lv) (lvm/vg00-swap_lv) (hd0) (hd0,msdos2) (hd0,msdos1)


7. Zobrazte informace o prvním diskovém oddílu na prvním disku:

grub> ls (hd0,msdos1)
        Partition hd0,msdos1: Filesystem type xfs, UUID
a5eeb5e9-9cd4-437c-b8bb-3d928a0daf5e - Partition start at 1024KiB - Total size
524288KiB


8. Zobrazte obsah potenciálního bootovacího oddílu:

grub> ls (hd0,msdos1)/
efi/ grub2/ grub/ System.map-4.18.0-305.7.1.el8_4.x86_64 config-4.18.0-305.7.1.
el8_4.x86_64 vmlinuz-4.18.0-305.7.1.el8_4.x86_64 initramfs-0-rescue-73a3b006041
74b4f9843524821768b43.img vmlinuz-0-rescue-73a3b00604174b4f9843524821768b43 ini
tramfs-4.18.0-305.7.1.el8_4.x86_64.img initramfs-4.18.0-305.7.1.el8_4.x86_64kdu
mp.img


9. Nastavte bootovací oddíl:

grub> set root=(hd0,msdos1)


10. Zaveďte jádro a zadejte kořenový souborový systém:

grub> linux (hd0,msdos1)/vmlinuz-4.18.0-305.7.1.el8_4.x86_64 root=/dev/mapper/v

g00-root_lv

(Pro doplnění cesty k jádru použijte klávesu „Tab“.)

11. Zaveďte prvotní obraz RAM disku:

grub> initrd (hd0,msdos1)/initramfs-4.18.0-305.7.1.el8_4.x86_64.img

(Pro doplnění cesty k obrazu initramfs použijte klávesu „Tab“.)

12. Spusťte systém:

grub> boot


13. Vytvořte nový konfigurační soubor pro GRUB 2:

# grub2-mkconfig -o /boot/grub2/grub.cfg

(na systému s firmwarem BIOS)
nebo

# grub2-mkconfig -o /boot/efi/EFI/${ID}/grub.cfg

(na systému s firmwarem UEFI)

14. Restartujte systém:

# reboot


1.3. Chybné záznamy v /etc/fstab

1. Restartujte systém.

2. Až se zobrazí nabídka zavaděče jádra, stiskněte libovolnnou klávesu pro přerušení bootovacího procesu, kromě klávesy „Enter“.

3. Vyberte jádro pomocí kláves se šipkami nahoru/dolů.

4. Stiskněte klávesu „e“ pro upravení položky.

5. Pomocí kurzorových kláves přejděte na řádek začínající slovem „linux“, „linux16“ či „linuxefi“.

6. Stisknutím klávesy „End“ přesuňte kurzor na konec řádku.

7. Doplňte „systemd.unit=emergency.target“ pro bootování do nouzového režimu.

8. Stiskněte klávesy Ctrl+x pro spuštění systému s upraveným nastavením.

9. Přihlaste se do nouzového režimu.

10. Zkontrolujte, které souborové systémy jsou aktuálně připojeny:

# mount


11. Připojte kořenový souborový systém v režimu čtení a zápisu:

# mount -o remount,rw /


12. Připojte všechny souborové systémy uvedené v /etc/fstab:

# mount -a


13. Upravte /etc/fstab v případě chyb (neexistující UUID / přípojný bod či nesprávné volby připojení):

# vi /etc/fstab


14. Připojte znovu všechny souborové systémy a ověřte, zda je /etc/fstab v pořádku:

# mount -a


15. Restartujte systém:

# reboot

2. Oprava chyb při selhání přihlášení uživatele root

2.1. RHEL/CentOS 7, 8

1. Restartujte systém.

2. Až se zobrazí nabídka zavaděče jádra, stiskněte libovolnnou klávesu pro přerušení bootovacího procesu, kromě klávesy „Enter“.

3. Vyberte jádro pomocí kláves se šipkami nahoru/dolů.

4. Stiskněte klávesu „e“ pro upravení položky.

5. Pomocí kurzorových kláves přejděte na řádek začínající slovem „linux“, „linux16“ či „linuxefi“.

6. Stisknutím klávesy „End“ přesuňte kurzor na konec řádku.

7. Doplňte „rd.break“ pro přerušení bootovacího procesu a získání příkazového řádku.

8. Stiskněte klávesy Ctrl+x pro spuštění systému s upraveným nastavením.

9. Po spuštění shellu z initramfs připojte souborový systém „/sysroot“ v režimu čtení a zápisu:

switch_root:/# mount -o remount,rw /sysroot


10. Změňte kořenový souborový systém na „/sysroot“ a spusťte nový shell:

switch_root:/# chroot /sysroot


11. Nastavte heslo uživatele root:

sh-4.4# passwd


12. Povolte obnovu bezpečnostního kontextu SELinuxu při příštím spuštění systému (pokud se SELinux používá):

sh-4.4# touch /.autorelabel


13. Ukončete shell:

sh-4.4# exit
switch_root:/# exit

(Systém pokračuje v bootování, provede úplné přenastavení bezpečnostního kontextu SELinuxu a poté se znovu restartuje.)

2.2. RHEL/CentOS 4, 5, 6

1. Restartujte systém.

2. Až se zobrazí nabídka zavaděče jádra, stiskněte libovolnnou klávesu pro přerušení bootovacího procesu, kromě klávesy „Enter“.

3. Vyberte jádro pomocí kláves se šipkami nahoru/dolů.

4. Stiskněte klávesu „e“ pro upravení položky.

5. Pomocí kurzorových kláves přejděte na řádek začínající slovem „kernel“.

6. Stiskněte znovu klávesu „e“ pro upravení položky.

7. Doplňte „s“ nebo „single“ na konec řádku.

8. Stiskněte klávesu „Enter“ pro potvrzení změn a poté stisknutím „b“ spusťte systém s upraveným nastavením.

9. Nastavte heslo uživatele root.

10. Ukončete shell.


3. Oprava chyb při selhání instalace softwaru


"Kernel panic"

=>

# yum reinstall kernel


"Yum Error: database disk image is malformed"

=>

# yum clean dbcache

nebo

# yum clean all


"Depsolving loop limit reached" / "<package_name-versionX> is a duplicate with <package_name-versionY>"

(duplicitní balíčky z neúspěšné yum transakce)
=>

# yum-complete-transaction

nebo

# package-cleanup --cleandupes
# yum update

nebo

# tar -cvzf /tmp/rpm_db.tar.gz /var/lib/{rpm,yum}
# yum check duplicates 2> /dev/null | awk '/duplicate/ {print $NF}' | xargs rpm -e --justdb --nodeps
# yum update


"error: rpmdbNextIterator: skipping h#..."

(poškozená RPM databáze)
=>

# lsof | grep /var/lib/rpm
# rm -f /var/lib/rpm/__db*
# tar -cvzf rpmdb.tar.gz /var/lib/rpm
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
# mv /var/lib/rpm/Packages{,.broken}
# /usr/lib/rpm/rpmdb_dump /var/lib/rpm/Packages.broken | /usr/lib/rpm/rpmdb_load /var/lib/rpm/Packages
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
# rm -f /var/lib/rpm/Packages.broken
# rpm --rebuilddb
# rpm -qa > /dev/null

4. Oprava chyb při selhání spuštění souboru


"No execute permissions for /bin/chmod"

=>

# setfacl -m u::rwx,g::rx,o::rx /bin/chmod

nebo

# cp /bin/chmod /bin/chmod.broken
# install -m 0755 /bin/chmod.broken /bin/chmod
# rm -f /bin/chmod.broken

nebo

# perl -e 'chmod 0755, "/bin/chmod"'

nebo

# /lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod

nebo

# rpm -qf /bin/chmod
coreutils-8.30-8.el8.x86_64
# yum reinstall coreutils

nebo

# cp /bin/ls /bin/ls.old && cat /bin/chmod > /bin/ls.old && /bin/ls.old 755 /bin/chmod && rm -f /bin/ls.old

nebo zkopírujte soubor z jiného serveru:

# scp <uzivatel>@<IP>:/bin/chmod /tmp
# mv /tmp/chmod /bin
# chown root:root /bin/chmod