domingo, 7 de octubre de 2018

PackageKit cache consume casi todo el espacio disponible

El directorio /var/cache/PackageKit/28 esta consumiendo casi 2.9 GB y consecuentemente deja poco espacio libre en /
Este cache lo crea PackageKit cuando va actualizando la versión Fedora instalada.
Para limpiar la cache he usado el comando:

su -
pkcon refresh force

Esto limpia la cache. Ha pasado de casi 2.9 GB a tan solo 206 MB.

Se puede evitar que se cree cache actualizando con dnf update

Si se quiere que PackageKit no cree cache, se puede editar el archivo de configuracion de PackageKit en /etc/PackageKit/PackageKit.conf y eliminar el comentario de la linea #KeepCache=false

martes, 7 de agosto de 2018

Demasiado tiempo en el arranque gráfico de Fedora 28

Tarda demasiado tiempo en arrancar el entorno gráfico GNOME 3. Desde que aparece el menú de opciones de Grub2 hasta que aparece el login screen pasan más de dos minutos. Para comprobar cuánto tiempo consume el proceso de arranque utilizamos el comando:

# systemd-analyze

que devuelve el resultado:

Startup finished in 1.461s (kernel) + 1.592s (initrd) + 2min 10.568s (userspace) = 2min 13.622s
graphical.target reached after 2min 5.083s in userspace

Para saber que proceso es responsable del arranque lento, se puede ejecutar:

# systemd-analyze blame

y muestra el resultado siguiente:

        2min 1.010s lvm2-monitor.service
   2min 493ms systemd-udev-settle.service
       6.875s NetworkManager-wait-online.service
       1.551s dmraid-activation.service
       1.374s plymouth-quit-wait.service
        793ms udisks2.service
        735ms fwupd.service
        654ms dkms.service
        650ms initrd-switch-root.service
        631ms firewalld.service
        508ms dev-md126p1.device
        455ms dracut-pre-pivot.service
        451ms upower.service
        350ms dnf-makecache.service
        340ms systemd-logind.service
        228ms libvirtd.service
        181ms accounts-daemon.service
        149ms dracut-initqueue.service
        134ms dracut-pre-trigger.service
        117ms user@1000.service
        115ms systemd-udev-trigger.service
        114ms sysroot.mount
        108ms polkit.service
        106ms user@42.service
       96ms home.mount
        96ms geoclue.service

Parece que la mayor parte del retraso proviene del proceso lvm2-monitor.service. Este proceso se encarga de monitorizar el uso del LVM.

Si no utilizas LVM se puede deshabilitar sin problemas. Para identificar que el servicio lvm2-monitor está habilitado y en uso puedes usar el comando:

 
# systemctl status lvm2-monitor

Este comando devuelve la siguiente información si el servicio está activado:

● lvm2-monitor.service - Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
Loaded: loaded (/usr/lib/systemd/system/lvm2-monitor.service; enabled; vendor preset: enabled)
Active: active (exited)  since Mon 2018-08-06 22:12:47 CEST; 41min ago

Process: 710 ExecStart=/usr/sbin/lvm vgchange --monitor y --ignoreskippedcluster (code=exited, status=0/SUCCESS)
Main PID: 710 (code=exited, status=0/SUCCESS)

En mi caso, el servicio systemd-udev-settle también causa buena parte del retraso en el arranque. Para comprobar su estado ejecuto:
 
# systemctl status systemd-udev-settle.service

y devuelve la siguiente información:

 
● systemd-udev-settle.service - udev Wait for Complete Device Initialization
   Loaded: loaded (/usr/lib/systemd/system/systemd-udev-settle.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2018-08-06 22:12:46 CEST; 41min ago
  Docs: man:udev(7)
        man:systemd-udevd.service(8)
  Process: 759 ExecStart=/usr/bin/udevadm settle (code=exited, status=1/FAILURE)
  Main PID: 759 (code=exited, status=1/FAILURE)
Aug 06 22:10:46 systemd[1]: Starting udev Wait for Complete Device Initialization...
Aug 06 22:12:46 systemd[1]: systemd-udev-settle.service: Main process exited, code=exited, status=1/FAILURE
Aug 06 22:12:46 systemd[1]: systemd-udev-settle.service: Failed with result 'exit-code'.
Aug 06 22:12:46 systemd[1]: Failed to start udev Wait for Complete Device Initialization.


Desactivo ambos servicios con los comandos:

# systemctl mask systemd-udev-settle.service
Created symlink /etc/systemd/system/systemd-udev-settle.service → /dev/null.
systemctl mask lvm2-activation-net.service

#systemctl mask lvm2-activation-net.service
Unit lvm2-activation-net.service does not exist, proceeding anyway.
Created symlink /etc/systemd/system/lvm2-activation-net.service → /dev/null.

Y ahora reiniciamos el sistema y comprobamos nuevamente los tiempos de arranque.

# systemd-analyze
Startup finished in 1.465s (kernel) + 1.602s (initrd) + 10.034s (userspace) = 13.102s
graphical.target reached after 4.211s in userspace

Y para determinar el proceso que más tarda en responder hacemos:

# systemd-analyze blame

Y ahora devuelve el siguiente resultado:

         21.856s dnf-makecache.service
          6.830s NetworkManager-wait-online.service
          1.160s udisks2.service
           996ms plymouth-quit-wait.service
           741ms fwupd.service
           652ms initrd-switch-root.service
           564ms dkms.service
           560ms firewalld.service
           536ms dev-md126p1.device
           442ms dracut-pre-pivot.service
           390ms home.mount
           376ms systemd-logind.service
           306ms upower.service
           264ms systemd-fsck@dev-disk-by\x2duuid-1576514b\x2d25a2\x2d446e\x2d867f\x2de15bef848cff.service
           171ms accounts-daemon.service
           163ms dracut-initqueue.service
           155ms libvirtd.service
           138ms dracut-pre-trigger.service
           137ms auditd.service
           119ms user@1000.service
           117ms systemd-journal-flush.service

Aquí hay una buena explicación de porqué se puede deshabilitar el servicio udev-settle sin que el sistema lo note.

domingo, 8 de julio de 2018

Ajustes en los parámetros del Kernel después de instalar Fedora 28 y los drivers propietarios de NVIDIA

Aquí algunos ajustes en los parámetros del Kernel después de instalar los drivers propietarios de NVIDIA y también para evitar que se muestre el error ACPI durante el inicio:


#grubby --args="libata.noacpi=1" --update-kernel /boot/vmlinuz-4.17.3-200.fc28.x86_64
#grubby --remove-args="quiet" --update-kernel /boot/vmlinuz-4.17.3-200.fc28.x86_64
#grubby --args="rd.driver.blacklist=nouveau" --update-kernel /boot/vmlinuz-4.17.3-200.fc28.x86_64
#grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.17.3-200.fc28.x86_64
Found initrd image: /boot/initramfs-4.17.3-200.fc28.x86_64.img
Found linux image: /boot/vmlinuz-4.16.3-301.fc28.x86_64
Found initrd image: /boot/initramfs-4.16.3-301.fc28.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-9249b31f315348a99e8a52d56af472c2
Found initrd image: /boot/initramfs-0-rescue-9249b31f315348a99e8a52d56af472c2.img
done
#mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
#dracut /boot/initramfs-$(uname -r).img $(uname -r) --force




He encontrado muy útiles los siguientes artículos para hacer estos ajustes en los parámetros del Kernel:


ACPI Error: Una tontería de GNU/Linux que me ha vuelto loco
Fedora 28/27/26 nVidia Drivers Install Guide
Tutorial : Install NVIDIA 396.24 in Fedora 28 with Kernel 4.16.x

Al modificar los parámetros del kernel con grubby y después hacer grub2-mkconfig las modificaciones desaparecen y los parámetros introducidos no aparecen ni tampoco se elimina "quiet" tras hacer grubby --remove.

Sin motivo aparente, al hacer grub2-mkconfig, la llamada al kernel vmlinuz y sus parámetros se restablecen a su valor por defecto, es decir, con los parámetros rhgb y quiet unicamente:

#grubby --info=ALL
index=0
kernel=/boot/vmlinuz-4.17.3-200.fc28.x86_64
args="ro resume=UUID=9f37d638-7127-43cf-ae0a-6c0a4ba4d2f0 rd.md.uuid=dc00ef36:c7b058c3:a6598f75:06f6e016 rd.md.uuid=0125bb79:4caae511:15023fbb:4006b23c rhgb quiet "
root=UUID=e3300789-4bcf-4b78-9548-4ed4a0ee9475
initrd=/boot/initramfs-4.17.3-200.fc28.x86_64.img
title=Fedora (4.17.3-200.fc28.x86_64) 28 (Workstation Edition)
index=1
kernel=/boot/vmlinuz-4.16.3-301.fc28.x86_64
args="ro resume=UUID=9f37d638-7127-43cf-ae0a-6c0a4ba4d2f0 rd.md.uuid=dc00ef36:c7b058c3:a6598f75:06f6e016 rd.md.uuid=0125bb79:4caae511:15023fbb:4006b23c rhgb quiet "
root=UUID=e3300789-4bcf-4b78-9548-4ed4a0ee9475
initrd=/boot/initramfs-4.16.3-301.fc28.x86_64.img
title=Fedora (4.16.3-301.fc28.x86_64) 28 (Workstation Edition)
index=2
kernel=/boot/vmlinuz-0-rescue-9249b31f315348a99e8a52d56af472c2
args="ro resume=UUID=9f37d638-7127-43cf-ae0a-6c0a4ba4d2f0 rd.md.uuid=dc00ef36:c7b058c3:a6598f75:06f6e016 rd.md.uuid=0125bb79:4caae511:15023fbb:4006b23c rhgb quiet "
root=UUID=e3300789-4bcf-4b78-9548-4ed4a0ee9475
initrd=/boot/initramfs-0-rescue-9249b31f315348a99e8a52d56af472c2.img
title=Fedora (0-rescue-9249b31f315348a99e8a52d56af472c2) 28 (Workstation Edition)
index=3
non linux entry 


Después de varios intentos se soluciona elminando el archivo vmlinuz de la versión actual del kernel que está ubicado en /boot y reinstalo el kernel:

#mv /boot/vmlinuz-4.17.3-200.fc28.x86_64 /root/
#dnf reinstall kernel-core-4.17.3-200.fc28.x86_64
#grubby --args="rd.driver.blacklist=nouveau" --update-kernel /boot/vmlinuz-4.17.3-200.fc28.x86_64
#grubby --info=ALL
#grubby --remove-args="quiet" --update-kernel /boot/vmlinuz-4.16.3-301.fc28.x86_64
#grubby --args="libata.noacpi=1" --update-kernel /boot/vmlinuz-4.17.3-200.fc28.x86_64
#grubby --info=ALL
#grub2-mkconfig
#grubby --info=ALL
index=0
kernel=/boot/vmlinuz-4.17.3-200.fc28.x86_64
args="ro resume=UUID=9f37d638-7127-43cf-ae0a-6c0a4ba4d2f0 rd.md.uuid=dc00ef36:c7b058c3:a6598f75:06f6e016 rd.md.uuid=0125bb79:4caae511:15023fbb:4006b23c rhgb quiet LANG=en_GB.UTF-8 rd.driver.blacklist=nouveau libata.noacpi=1"
root=UUID=e3300789-4bcf-4b78-9548-4ed4a0ee9475
initrd=/boot/initramfs-4.17.3-200.fc28.x86_64.img
title=Fedora (4.17.3-200.fc28.x86_64) 28 (Workstation Edition)
index=1
kernel=/boot/vmlinuz-4.16.3-301.fc28.x86_64
args="ro resume=UUID=9f37d638-7127-43cf-ae0a-6c0a4ba4d2f0 rd.md.uuid=dc00ef36:c7b058c3:a6598f75:06f6e016 rd.md.uuid=0125bb79:4caae511:15023fbb:4006b23c rhgb"
root=UUID=e3300789-4bcf-4b78-9548-4ed4a0ee9475
initrd=/boot/initramfs-4.16.3-301.fc28.x86_64.img
title=Fedora (4.16.3-301.fc28.x86_64) 28 (Workstation Edition)
index=2
kernel=/boot/vmlinuz-0-rescue-9249b31f315348a99e8a52d56af472c2
args="ro resume=UUID=9f37d638-7127-43cf-ae0a-6c0a4ba4d2f0 rd.md.uuid=dc00ef36:c7b058c3:a6598f75:06f6e016 rd.md.uuid=0125bb79:4caae511:15023fbb:4006b23c rhgb quiet"
root=UUID=e3300789-4bcf-4b78-9548-4ed4a0ee9475
initrd=/boot/initramfs-0-rescue-9249b31f315348a99e8a52d56af472c2.img
title=Fedora (0-rescue-9249b31f315348a99e8a52d56af472c2) 28 (Workstation Edition)
index=3
non linux entry





vmlinuz dañado en Fedora 28 - invalid signature

Al intentar modificar los parámetros del Kernel con grubby, por error ejecuté el comando grub2-mkconfig con el parámetro de salida equivocado:

ejecute:

grubby --args="libata.noacpi=1" --update-kernel /boot/vmlinuz-4.17.3-200.fc28.x86_64
grubby --remove-args="quiet" --update-kernel /boot/vmlinuz-4.17.3-200.fc28.x86_64
grub2-mkconfig -o /boot/vmlinuz-4.17.3-200.fc28.x86_64

en lugar de esto:

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Como consecuencia reescribí el kernel de linux y el sistema no puede arrancar sino que muestra el error:

error: /live/vmlinuz has invalid signature. error: you need to load the kernel first.

Para solucionarlo reinicié el sistema en la versión anterior del Kernel que aún funcionaba y restauré el archivo dañado de la copia que existía en /lib/modules con:

cp /lib/modules/4.17.3-200.fc28.x86_64/vmlinuz /boot/vmlinuz-4.17.3-200.fc28.x86_64

Después de reiniciar el sistema funciona perfectamente en la correcta versión del Kernel