Solución de problemas

Fedora Atomic Desktops utiliza una nueva forma de implementar y administrar el sistema operativo, por lo que es posible que ocasionalmente surjan problemas durante el uso diario. A continuación, se describen algunos de los problemas más comunes y sus posibles soluciones.

"Forbidden base package replacements"

Esto puede ocurrir cuando un paquete que se está agregando a una capa depende de un paquete que ya está en el sistema operativo base. En el caso problemático, el paquete agregado requiere una versión más reciente del paquete dependiente, la cual no está disponible en el sistema operativo base.

En la mayoría de los casos, esperar a una versión más reciente de OSTree Compose resolverá este problema. El paquete dependiente se actualizará en Compose y el paquete que se iba a integrar se cargará correctamente.

Sin embargo, si continúa encontrando este problema con una versión más reciente de compose, puede intentar limpiar los metadatos con rpm-ostree cleanup -m y luego volver a intentar rpm-ostree install.

Como alternativa, puedes intentar rebasar a cualquier referencia updates, como fedora/44/updates/x86_64 después de la operación cleanup.

Para obtener más información, consulte rpm-ostree#415.

Instalación de paquetes en /opt o /usr/local

La instalación en /opt era un problema frecuente entre los usuarios que intentaban instalar Google Chrome. Se ha implementado una solución parcial que permite a los usuarios instalar Google Chrome en capas; sin embargo, no es una solución completa para las aplicaciones que escriben datos modificables en /opt.

Este problema se está siguiendo en rpm-ostree#233.

Utilizando controladores NVIDIA

El proyecto Universal Blue (https://universal-blue.org/) crea imágenes de sistemas operativos con los controladores NVIDIA incluidos. Estas imágenes se basan en las imágenes de Fedora Atomic Desktop, con modificaciones adicionales a su discreción. El Proyecto Fedora no respalda oficialmente las imágenes de Universal Blue. Úselas bajo su propia responsabilidad.

Puedes instalar los controladores binarios oficiales de NVIDIA desde los repositorios RPM Fusion.

Los controladores binarios de NVIDIA no reciben mantenimiento por parte del Proyecto Fedora y, en ocasiones, es posible que no estén disponibles para la versión del kernel incluida en los entornos de escritorio Fedora Atomic.
  1. Primero, asegúrese de que su sistema esté completamente actualizado ejecutando sudo rpm-ostree upgrade y reiniciando.

  2. Luego, configure los repositorios de RPM Fusion siguiendo las instrucciones de documentation, incluyendo los dos reinicios.

  3. Finalmente, instale los controladores:

    # rpm-ostree install kmod-nvidia xorg-x11-drv-nvidia
    # rpm-ostree kargs --append=rd.driver.blacklist=nouveau,nova-core \
        --append=modprobe.blacklist=nouveau,nova-core \
        --append=nvidia-drm.modeset=1 \
        --append=initcall_blacklist=simpledrm_platform_driver_init
    # systemctl reboot

Al usar el arranque seguro (Secure Boot), los controladores NVIDIA instalados localmente deben firmarse con una clave local registrada mediante mokutil. Para obtener más detalles, consulte el problema fedora-silverblue#499.

También puede encontrar los siguientes problemas durante la instalación: #286, #331

Gracias a Alex Larsson, quien realizó los cambios necesarios en los paquetes akmods y kmodtools. Puedes leer más sobre el trabajo de Alex en su blog.

Módulos y controladores del kernel fuera del árbol mediante DKMS

Actualmente, los escritorios Fedora Atomic no son compatibles con DKMS. Consulte el problema en el repositorio principal: rpm-ostree#1091.

En su lugar, recomendamos crear paquetes kmods para módulos del kernel externos y enviarlos a los repositorios RPM Fusion. Estos paquetes kmods serán utilizados por akmods, que es compatible con los escritorios Fedora Atomic.

Agregar repositorios de paquetes externos

Esta sección trata sobre software de terceros que no está afiliado ni respaldado oficialmente por el Proyecto Fedora. Úselo bajo su propia responsabilidad.

Si desea utilizar repositorios RPM Fusion, siga las instrucciones de la sección Habilitación de repositorios RPM Fusion.

Algunos programas solo están disponibles en repositorios de terceros. En Fedora Atomic Desktop, puedes añadir manualmente un repositorio externo colocando el archivo .repo en /etc/yum.repos.d/ y la clave GPG en /etc/pki/rpm-gpg/. A continuación, se muestra un ejemplo completo para configurar el repositorio de Taiscale:

  1. Descarga e instala la configuración del repositorio:

    $ curl -O https://pkgs.tailscale.com/stable/fedora/tailscale.repo
    [tailscale-stable]
    name=Tailscale stable
    baseurl=https://pkgs.tailscale.com/stable/fedora/$basearch
    enabled=1
    type=rpm
    repo_gpgcheck=1
    gpgcheck=0
    gpgkey=https://pkgs.tailscale.com/stable/fedora/repo.gpg
    $ sudo install -o 0 -g 0 -m644 tailscale.repo /etc/yum.repos.d/tailscale.repo
  2. Obtén e instala las claves GPG:

    $ curl -O https://pkgs.tailscale.com/stable/fedora/repo.gpg
    $ sudo install -o 0 -g 0 -m644 repo.gpg /etc/pki/rpm-gpg/tailscale.gpg
  3. Reemplace la URL gpgkey= en la configuración del repositorio por la ruta de las claves GPG:

    $ sudoedit /etc/yum.repos.d/tailscale.repo
    $ cat /etc/yum.repos.d/tailscale.repo
    [tailscale-stable]
    name=Tailscale stable
    baseurl=https://pkgs.tailscale.com/stable/fedora/$basearch
    enabled=1
    type=rpm
    repo_gpgcheck=1
    gpgcheck=0
    ### Update this line
    gpgkey=file:///etc/pki/rpm-gpg/tailscale.gpg
    ###    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  4. Instala los nuevos paquetes con:

    $ rpm-ostree install tailscale

Se está haciendo un seguimiento del mejor soporte en rpm-ostree para este caso de uso en rpm-ostree#4014.

Problemas de SELinux

A medida que los usuarios trabajan diariamente con Fedora Atomic Desktops, es posible que hayan modificado la política SELinux predeterminada para intentar solucionar algún problema relacionado con SELinux. Esto suele ocurrir cuando un usuario ve un error de SELinux en el registro. Si este es el caso y desea volver a la política SELinux predeterminada, puede probar las siguientes acciones.

  1. Compruebe el estado de la política de SELinux

    $ sudo ostree admin config-diff | grep policy
    M    selinux/targeted/active/policy.linked
    M    selinux/targeted/active/policy.kern
    M    selinux/targeted/policy/policy.31
    A    selinux/targeted/policy/policy.30

    Si este comando devuelve algún resultado, significa que su política de SELinux se ha modificado con respecto a la configuración predeterminada.

  2. Copie la política SELinux predeterminada que viene incluida en el archivo OSTree compose

    $ sudo cp -al /etc/selinux{,.bak}
    $ sudo rsync -rlv /usr/etc/selinux/ /etc/selinux/

    Después de hacer esto, la salida de ostree admin config-diff | grep policy ya no debería indicar que la política ha sido modificada.

    Si su política aún aparece como modificada, puede probar el siguiente método.

  3. Elimine la política de SELinux; copie la política predeterminada

    $ sudo rm -rf /etc/selinux
    $ sudo cp -aT /usr/etc/selinux /etc/selinux

    Después de esto, el comando ostree admin config-diff | grep policy no debería devolver ninguna modificación.

No se puede agregar el usuario al grupo

Debido a la forma en que rpm-ostree gestiona las entradas de usuario y grupo, es posible que no se pueda usar usermod -a -G para agregar un usuario a un grupo correctamente. Hasta que rpm-ostree empiece a usar systemd sysusers, los usuarios tendrán que rellenar el archivo /etc/group a partir del archivo /usr/lib/group antes de poder agregarse a sí mismos al grupo.

Por ejemplo, si quisiera agregar un usuario al grupo libvirt:

$ grep -E '^libvirt:' /usr/lib/group | sudo tee -a /etc/group
$ sudo usermod -aG libvirt $USER
Necesitará cerrar sesión e iniciar sesión de nuevo para aplicar estos cambios.

Este problema se está siguiendo en rpm-ostree#29 y rpm-ostree#49.

ostree fsck informa de corrupción de archivos

Es posible encontrarse en una situación en la que uno o más archivos del disco se corrompan o falten. En este caso, ostree fsck informará de errores en ciertas confirmaciones. La solución (workaround) consiste en marcar toda la confirmación de OSTree como parcialmente recuperada y, a continuación, volver a descargarla.

/boot/efi a solo lectura impide cualquier mejora

Esta incidencia es más vista comúnmente cuando los usuarios tienen instalado Fedora Atomic Deskto en hardware Apple. La partición /boot/efi en el hardware de Apple está formateado como HFS+ y no siempre residente para fallos de energía u otras familias de eventos importantes con la energía.

Dado que Fedora Atomic Desktops ahora incluye el paquete hfsplus-tools en la configuración base, a los usuarios les resulta relativamente fácil solucionar este tipo de errores.

# umount /boot/efi
# fsck.hfsplus /dev/sda1
# mount -o rw /boot/efi

Consulte el problema de GitHub rpm-ostree#1380 para obtener más detalles.

No se puede instalar Fedora Atomic Desktop en sistemas EFI

Los usuarios han informado que no pueden instalar Fedora Atomic Desktop en un sistema basado en EFI donde previamente tenían instalado otro sistema operativo. El error que se observa con frecuencia es similar a este:

ostree ['admin', '--sysroot=/mnt/sysimage', 'deploy', '--os=fedora-workstation', 'fedora-workstation:fedora/28/x86_64/workstation'] finalizó con el código -6.

Existen un par de posibles soluciones alternativas:

  • Durante el proceso de instalación, seleccione "Particionamiento personalizado" y cree una partición EFI adicional. Asigne la partición EFI recién creada a /boot/efi. De esta forma, podrá arrancar el sistema operativo anterior junto con su escritorio Fedora Atomic. Si esta solución no funciona, siga el siguiente paso.

  • Formatee la partición EFI en el equipo host durante el proceso de instalación. Esto se puede hacer seleccionando «Particionado personalizado» y marcando la casilla ‘Reformatear’ al crear la partición /boot/efi.

Formatear /boot/efi probablemente impedirá arrancar cualquier otro sistema operativo que estuviera instalado previamente. Asegúrese de haber realizado una copia de seguridad de sus datos importantes antes de utilizar esta solución.

Este problema se está siguiendo en Bugzilla#1575957.

toolbox: error al listar las imágenes con com.redhat.component=fedora-toolbox

A partir de la versión 1.4.0 de podman, esta solución alternativa ya no es necesaria. Asegúrese de que podman esté actualizado ejecutando rpm-ostree upgrade antes de intentar esta solución.

Al ejecutar el comando toolbox list, los sistemas que utilicen versiones de podman posteriores a la 1.2.0 generarán el siguiente error:

toolbox: error al listar las imágenes con com.redhat.component=fedora-toolbox

La siguiente solución alternativa podría ser útil para otros errores de toolbox causados por versiones de podman superiores a 1.2.0. Consulte toolbox#169.

Como solución alternativa, es posible sobrescribir los paquetes podman posteriores a la versión 1.2.0 mediante el siguiente comando:

$ rpm-ostree override --remove=podman-manpages \
reemplazar https://kojipkgs.fedoraproject.org//packages/podman/1.2.0/2.git3bd528e.fc30/x86_64/podman-1.2.0-2.git3bd528e.fc30.x86_64.rpm

Reinicia el sistema para aplicar los cambios.

Como referencia, también es posible sobrescribir el paquete siguiendo estos pasos:

  1. Descarga podman-1.2.0-2.git3bd528e.fc30.x86_64.rpm desde Koji.

  2. Elimine podman-manpages mediante el siguiente comando: rpm-ostree override remove podman-manpages.

  3. Sobrescriba el paquete podman actualmente instalado (usando el paquete que descargó en el primer paso) de la siguiente manera:

    $ рпм-остре оверриде реплаче подман-1.2.0-2.гицвд528е.фк30.х86_64.рпм

Ahora puede reiniciar el sistema para que el cambio surta efecto.

Para revertir esta solución alternativa, ejecute los siguientes comandos:

$ rpm-ostree override reset podman
$ rpm-ostree override reset podman-manpages

No se puede acceder a la caja de herramientas debido a errores de permisos

Con ciertas versiones de podman, intentar acceder a una caja de herramientas provocará errores. Puede solucionar esto restableciendo los permisos en los contenedores superpuestos con el siguiente comando:

$ sudo chown -R $USER ~/.local/share/containers/storage/overlay-containers

Esto restablecerá los permisos de tus contenedores y te permitirá acceder a ellos de nuevo.

Consulte el problema de podman en el repositorio principal: podman#3187.

Ejecutando restorecon

Nunca debes ejecutar restorecon en un sistema Fedora Atomic Desktop. Consulta el siguiente error para obtener más detalles: Bugzilla#1259018

Sin embargo, si por casualidad hiciste esto, es posible recuperarse.

  1. Arranca con enforcing=0 en la línea de comandos del kernel

  2. Crea una nueva confirmación "corregida" localmente

  3. Implementa la nueva confirmación "corregida"

  4. Ejecutar restorecon

  5. Reiniciar

  6. Limpieza

$ rpm-ostree status -b | grep BaseCommit
		BaseCommit: 696991d589980aeaef5eda352dd7ad3d33c444c789c209f793a84bc6e7269aee
### Si el comando anterior no muestra ninguna salida, pruebe con:
$ rpm-ostree status -b | grep Commit
		Commit: 696991d589980aeaef5eda352dd7ad3d33c444c789c209f793a84bc6e7269aee
$ sudo ostree checkout \
	-H 696991d589980aeaef5eda352dd7ad3d33c444c789c209f793a84bc6e7269aee \
	/ostree/repo/tmp/selinux-fix
$ sudo ostree fsck --delete
$ sudo ostree commit --consume \
	--link-checkout-speedup --orphan --selinux-policy=/ /ostree/repo/tmp/selinux-fix
$ sudo restorecon -Rv /var
$ sudo restorecon -Rv /etc
### En el comando A continuación, sustituya:
### - x86_64 por la arquitectura de su CPU
### - silverblue por el nombre de su variante de Fedora Atomic Desktop
$ sudo ostree admin deploy fedora:fedora/44/x86_64/silverblue
$ sudo reboot

La desventaja de esta recuperación es que se eliminarán sus paquetes en capas; tendrá que volver a configurarlos después de la recuperación.

Consulte este comentario anterior para obtener detalles adicionales: ostree#1265.

Restablecimiento de contraseñas en modo de recuperación

En caso de que no recuerde su contraseña de usuario o contraseña de administrador, puede restablecerla siguiendo estos pasos:

  1. Mientras el sistema se está iniciando, interrumpa la secuencia de arranque en el menú GRUB2 usando la tecla Esc.

  2. Seleccione la entrada de arranque que desea editar utilizando las teclas de flecha.

  3. Edite la entrada seleccionada con la tecla e.

  4. Utilice las teclas de flecha para seleccionar la línea que comienza con linux, linux16 o linuxefi.

  5. Ve al final de esa línea (pulsando Ctrl + e) y añade init=/bin/bash.

  6. Pulsa Ctrl + x o F10 para iniciar la entrada.

  7. En el indicador bash resultante, ejecute los siguientes comandos:

# mount -t selinuxfs selinuxfs /sys/fs/selinux
# /sbin/load_policy
# passwd
# sync
# /sbin/reboot -ff

Si desea cambiar la contraseña de una cuenta de usuario, reemplace el comando passwd por passwd <nombre de usuario>.

Una vez que el sistema termine de reiniciarse, debería poder iniciar sesión con el nombre de usuario y la nueva contraseña.