Escenarios de resolución de problemas de Linux: desafíos y soluciones del mundo real

Linux es un sistema operativo potente y confiable, pero incluso los usuarios experimentados encuentran problemas inesperados. Ya sea un archivo eliminado, una contraseña de root olvidada o un sistema lento, saber cómo solucionar problemas de manera eficiente es clave para convertirse en un verdadero experto en Linux.

Esta guía presenta escenarios reales de resolución de problemas de Linux junto con soluciones paso a paso, que son comunes entre los administradores de sistemas, desarrolladores y usuarios cotidianos de Linux.

Escenario 1: Has eliminado accidentalmente un archivo importante

Eliminaste accidentalmente un archivo importante usando el comando rm, y ahora necesitas recuperarlo. A diferencia de Windows y macOS, Linux no tiene una “Papelera de reciclaje” incorporada para archivos eliminados desde la terminal.

Tus opciones de recuperación dependen del sistema de archivos en uso.

Para sistemas de archivos EXT3/EXT4

Utiliza extundelete, que es una utilidad de código abierto diseñada para recuperar archivos eliminados de sistemas de archivos ext3 y ext4 en Linux.

sudo apt install extundelete  # Debian-based  
sudo yum install extundelete  # RHEL-based  

Antes de intentar la recuperación, desmonta la partición para evitar escrituras adicionales que podrían sobrescribir datos eliminados:

sudo umount /dev/sdX

A continuación, ejecuta el siguiente comando para recuperar el archivo eliminado y asegúrate de reemplazar /dev/sdX con la partición real donde se eliminó el archivo.

sudo extundelete /dev/sdX --restore-all

Para sistemas de archivos XFS, Btrfs o NTFS

Si su sistema utiliza XFS, Btrfs o NTFS, la herramienta testdisk es una mejor opción.

sudo apt install testdisk  # Debian-based  
sudo yum install testdisk  # RHEL-based  

Ejecute testdisk y siga las indicaciones interactivas para restaurar archivos perdidos.

sudo testdisk

Consejos de prevención:

    • Utilice trash-cli: En lugar de rm, utilice trash-cli para enviar los archivos a una papelera de reciclaje recuperable.
sudo apt install trash-cli  
trash-put myfile.txt  
  • Habilitar copias de seguridad regulares: Configure rsync o Timeshift para hacer copias de seguridad automáticas de archivos importantes.

Escenario 2: Recuperar una contraseña de root olvidada

Olvidó la contraseña de root y no puede realizar tareas administrativas, lo que significa que no puede instalar software, cambiar la configuración del sistema o acceder a archivos críticos.

Puede restablecer la contraseña de root iniciando en el modo de recuperación o modificando el cargador de arranque GRUB.

Usando el Modo de Recuperación (Ubuntu/Debian)

Primero, reinicia tu sistema y mantén presionada la tecla Shift durante el arranque para acceder al menú GRUB, luego selecciona “Opciones avanzadas” → “Modo de recuperación” y elige “Acceder al símbolo del sistema de root”.

Aquí, vuelve a montar el sistema de archivos raíz como escribible y restablece la contraseña de root.

mount -o remount,rw /
passwd root

Reinicia el sistema.

reboot

Usando rd.break (RHEL/CentOS/Fedora)

Primero, reinicia tu sistema, presiona la tecla e en el menú GRUB y encuentra la línea que comienza con linux y agrega rd.break al final.

Luego, monta el sistema de archivos raíz y restablece la contraseña de root.

mount -o remount,rw /sysroot  
chroot /sysroot  
passwd root  

Finalmente, sal y reinicia.

exit  
reboot  

Consejos de prevención:

  • Crea un usuario sudo sin contraseña para evitar quedarte bloqueado sin acceso root.
  • Usa claves SSH en lugar de contraseñas para la autenticación.

Escenario 3: Instalaste un paquete, pero no funciona

Instalaste un paquete, pero dice “comando no encontrado” cuando intentas ejecutarlo, lo cual suele ocurrir cuando el binario no está en la PATH de tu sistema, el paquete no está instalado correctamente o falta una dependencia.

La solución es verificar primero si el paquete está instalado o no.

dpkg -l | grep package-name  # Debian-based  
rpm -qa | grep package-name  # RHEL-based  

Si falta, reinstálalo:

sudo apt install package-name  
sudo yum install package-name  

A continuación, verifica si el comando está en tu sistema PATH.

which package-name  
echo $PATH

Si el binario está en una ubicación no estándar, agrégalo a PATH:

export PATH=$PATH:/usr/local/bin  

Consejos de Prevención:

  • Reinicia la terminal o ejecuta hash -r después de instalar nuevos paquetes.
  • Utiliza gestores de paquetes como Snap o Flatpak, que manejan mejor las dependencias.

Escenario 4: Tu Sistema se Está Quedando Sin Espacio en Disco

Tu sistema muestra un error “No queda espacio en el dispositivo”, impidiendo actualizaciones de software, registros y operaciones normales.

A continuación, te mostramos cómo recuperar espacio en disco y mantener tu sistema funcionando sin problemas.

Paso 1: Verificar el Uso del Disco

La solución es, primero necesitas verificar cuánto espacio se utiliza en cada partición de tu sistema utilizando el comando df.

df -h

Paso 2: Encontrar y Eliminar Archivos Grandes

A continuación, localice los archivos más grandes que consumen espacio ejecutando el comando du, que escaneará su sistema y listará los 10 archivos o directorios más grandes. Elimine archivos innecesarios usando rm o muévalos a un disco externo.

du -ah / | sort -rh | head -10

Paso 3: Eliminar registros innecesarios

Los registros son esenciales para la resolución de problemas y el monitoreo de la actividad del sistema, pero pueden crecer rápidamente y consumir una cantidad significativa de espacio en disco.

Con el tiempo, los registros antiguos pueden ya no ser necesarios, convirtiéndolos en candidatos ideales para la limpieza.

sudo journalctl --vacuum-time=2d  # Deletes logs older than 2 days  
sudo apt autoclean                # Removes outdated package files  

Paso 4: Eliminar núcleos antiguos (Ubuntu/Debian)

Cuando actualiza su sistema, especialmente en Ubuntu o distribuciones basadas en Debian, a menudo se instalan nuevas versiones del núcleo de Linux.

Sin embargo, los núcleos antiguos no se eliminan automáticamente y con el tiempo, estos núcleos antiguos pueden acumularse y ocupar una cantidad significativa de espacio en disco.

Eliminarlos es una forma segura y efectiva de liberar espacio sin afectar la funcionalidad de su sistema.

sudo apt autoremove --purge  

Consejos de prevención:

  • Configurar la Rotación de Registros: Usa logrotate para gestionar automáticamente los tamaños de los archivos de registro y los períodos de retención.
  • Monitorear el Uso del Disco: Instala herramientas como ncdu para rastrear el uso del disco e identificar los elementos que ocupan mucho espacio.
  • Limpiezas Regulares: Programa limpiezas periódicas para eliminar archivos temporales, cachés y paquetes no utilizados.

Escenario 5: Tu Servidor Repentinamente no Responde

Estás administrando un servidor Linux y de repente deja de responder. Intentas conectarte a través de SSH, pero la conexión se agota o se niega a establecerse. Incluso podrías notar que el servidor sigue encendido, pero no reacciona a ningún comando.

Esta situación puede ser causada por diversos problemas, incluyendo:

  • Alto uso de CPU o memoria debido a procesos descontrolados.
  • Cuellos de botella de E/S de disco, donde el sistema está sobrecargado con operaciones de lectura/escritura.
  • Pánicos del kernel o caídas del sistema.
  • Fallas de red que impiden el acceso remoto.

Para recuperar el control, sigue estos pasos de resolución de problemas.

Paso 1: Accede al Servidor Localmente o a través de TTY

Si SSH no funciona, intenta acceder al servidor directamente o a través de una sesión TTY:

  • En una máquina física, utiliza la consola local.
  • En una máquina virtual, utiliza la consola del hipervisor.
  • Para sistemas Linux, cambia a otra sesión TTY usando Ctrl + Alt + F2 (o F3, F4, etc.).

Paso 2: Verifica la Carga del Sistema

Una vez que hayas iniciado sesión, verifica la carga del sistema y el uso de recursos, que mostrará los promedios de carga del sistema durante 1, 5 y 15 minutos. Un valor de carga superior al número de núcleos de CPU indica una alta demanda.

uptime  

A continuación, utiliza top o htop para monitorizar procesos en tiempo real:

top  
Or
htop

Busca procesos que consuman excesiva CPU o memoria.

Paso 3: Identificar y Terminar Procesos Descontrolados

Para identificar los procesos que más recursos consumen, ejecuta:

ps aux --sort=-%cpu | head  

Esto lista los procesos que más CPU consumen, donde podrás encontrar un proceso problemático y terminarlo usando:

kill -9 PID  

Reemplaza PID con el ID del proceso de la aplicación problemática.

Paso 4: Revisa los Registros del Sistema

Si el sistema sigue respondiendo, revisa los registros en busca de errores:

sudo tail -f /var/log/syslog  
Or
sudo dmesg | tail  

Estos comandos muestran mensajes del sistema recientes y registros del kernel, que pueden ayudar a identificar problemas de hardware o software.

Paso 5: Reinicio seguro utilizando SysRq

Si el sistema está completamente congelado, utiliza la combinación de teclas SysRq para reiniciar de manera segura:

echo b > /proc/sysrq-trigger  

Esto provoca un reinicio seguro, garantizando la integridad de los datos al sincronizar los discos y desmontar los sistemas de archivos.

Conclusión

La resolución de problemas es una habilidad esencial para cada usuario de Linux. Ya sea recuperando archivos borrados, restableciendo contraseñas o solucionando errores del sistema, conocer los comandos adecuados puede ahorrar tiempo y frustración.

¿Tienes tus propios consejos de resolución de problemas? ¡Compártelos en los comentarios! Construyamos juntos una comunidad de Linux colaborativa.

Source:
https://www.tecmint.com/linux-troubleshooting-tips/