Las 3 formas principales de corregir el error «No queda espacio en el dispositivo» en Linux

Los errores sin una causa clara son los problemas más irritantes de tratar. Y aunque Linux suele ser específico en sus mensajes de error, esta es una de las pocas veces en que deja caer la pelota.

Obtener un «Error No queda lugar en el dispositivo» explica muy poco, especialmente si su disco está lejos de estar lleno. ¿Por qué aparece este mensaje de error? ¿Por qué no puede crear nuevos archivos a pesar de tener suficiente espacio en el disco? Y lo más importante, ¿cómo lo solucionas?

Vamos a averiguar.

¿Su disco duro realmente tiene suficiente espacio?

Antes de apresurarse a encontrar una solución, asegúrese de que haya un problema, para empezar. Después de todo, si el espacio en disco se ha agotado en su sistema, no hay necesidad de entrar en pánico. Simplemente puede eliminar los datos innecesarios para liberar más espacio.

Hay dos comandos del sistema Linux para obtener información sobre el espacio en disco: du y df. El comando du estima el uso del espacio en disco, mientras que el comando df analiza el espacio libre presente en el disco. Usarlos junto con sudo le brinda un informe preciso de cuánto espacio está realmente disponible en el disco.

  1. Comencemos con el comando du. Su salida puede ser bastante larga y engorrosa, por lo que usaremos las banderas -s y -h. -s resume los resultados, mientras que -h asegura que sea legible por humanos. Entonces ingresa el comando sudo du -sh / dónde / apunta al directorio base.
  1. No se preocupe por todos los mensajes de permiso denegado: así es como rastrea todos los subdirectorios del sistema. Dependiendo del tamaño de la unidad, es posible que deba dejarla funcionando durante un tiempo, ya que revisa todo de forma recursiva.
  1. Cuando du termine de escanear, generará una lista simple de directorios junto con sus tamaños. Por ejemplo, esta es la salida del comando du aplicado a un directorio ordinario.

Ahora usaremos df para ver cuánto espacio libre hay disponible. El comando df es mucho más simple de usar ya que solo muestra los sistemas de archivos montados y sus estadísticas de uso. Una vez más, usaremos el indicador -h para que la salida sea legible por humanos.

sudo df-h

La idea es contar los resultados de los comandos du y df. Cualquier discrepancia apunta a que el espacio en disco no está disponible gratuitamente a pesar de que ningún archivo o carpeta lo utiliza.

¿Por qué Linux muestra «No queda espacio en el dispositivo»?

Si ve el mensaje de error «No queda espacio en el dispositivo» a pesar de tener suficiente espacio libre en su disco, no es el hardware el que tiene la culpa. Descubrir la causa exacta del error puede requerir un poco de solución de problemas.

  • Archivo eliminado recientemente: La razón más común para ver este error es un archivo eliminado recientemente. A menudo, un archivo se elimina mientras un proceso todavía lo está usando, manteniendo el espacio reservado aunque el archivo ya no esté.
  • Inodos insuficientes: Otra causa frecuente es no tener suficientes inodos. Los inodos son las páginas de índice de un sistema de archivos Unix, que contienen los metadatos de cada archivo almacenado. Sin embargo, los inodos no son ilimitados y quedarse sin inodos antes del espacio de almacenamiento puede generar el error «No queda espacio en el dispositivo».
  • Disco duro defectuoso: Luego, por supuesto, existe la posibilidad de que el disco duro simplemente esté fallando y gran parte del espacio libre aparente esté ocupado por sectores defectuosos. Dado que el sistema no puede escribir ningún archivo en estas ubicaciones, arroja un error.

Solución 1: Reiniciar procesos usando archivos eliminados

La causa más probable del error «No queda espacio en el dispositivo» es un proceso que aún utiliza un archivo eliminado. Afortunadamente, corregir este error es fácil. Solo necesita reiniciar el proceso para liberar el almacenamiento reservado.

  1. Para encontrar el proceso problemático, debe usar los comandos lsof y grep. El comando lsof le dará una lista de todos los archivos abiertos que se utilizan en los procesos en ejecución, y grep puede reducir la selección a los que se eliminan. Así que entra sudo lsof / | grep eliminado donde / es el directorio base y | una tubería para vincular la salida de lsof a grep.
  1. Ahora puede reiniciar el proceso afectado con el sudo systemctl reiniciar nombre_servicio comando, donde el nombre del servicio es el nombre del servicio que apareció en la búsqueda.
  1. Si hay múltiples procesos como este o simplemente no quiere molestarse en encontrar servicios específicos, puede restablecerlos todos con el sudo systemctl daemon-recargar dominio. Esto regenera todas las dependencias, teniendo en cuenta cualquier cambio en el sistema de archivos.

Después de esto, el espacio de almacenamiento retenido por el proceso debería estar disponible nuevamente, permitiéndole escribir archivos sin encontrar ningún error.

Arreglo 2: Comprobar Inodos

Si bien cada unidad tiene una gran cantidad de inodos, es finita. Y si su sistema está repleto de una cantidad increíble de archivos, es posible alcanzar este límite antes de agotar la capacidad de almacenamiento de la unidad. Por eso es mejor tener archivos grandes en lugar de demasiados pequeños.

Puede verificar fácilmente la disponibilidad de inodos usando el indicador -i con el comando df. Como esto:

sudo df-i

Esto indicará claramente el número total de inodos presentes en el sistema de archivos, junto con la cantidad actualmente en uso. Si no quedan inodos libres en su sistema, esta es la fuente del error «No queda espacio en el dispositivo».

Como los inodos solo se crean al formatear primero la unidad, no hay forma de generar más inodos. Todo lo que puede hacer es eliminar los archivos innecesarios para liberar inodos para futuros archivos.

Arreglo 3: marcar bloques defectuosos

La corrupción de datos es el destino inevitable de cualquier disco duro. Si bien una unidad nueva no se encontrará con este problema, los discos duros más antiguos comenzarán a fallar gradualmente.

Lo que esto significa es que partes del disco duro quedan inutilizables, aunque el sistema de archivos todavía las considera funcionales. Estos bloques defectuosos inflan falsamente el espacio libre aparente en el disco, cuando en realidad no se pueden escribir archivos en ellos. Esto conduce a un error de «No queda espacio en el dispositivo», ya que el sistema operativo intenta y no puede almacenar ningún dato en estas ubicaciones.

No existe una forma real de solucionar este problema, ya que los sectores defectuosos son el resultado del desgaste físico de un disco duro. Lo único que puede hacer es marcar los sectores defectuosos para que el sistema de archivos ya no haga referencia a ellos.

Hacer esto requiere que inicie desde un Live CD, ya que no puede realizar una verificación del sistema de archivos dentro de una unidad en ejecución. Una vez que hagas eso, solo usa el siguiente comando:

sudo fsck -vcck /dev/sda

Esto reemplaza /dev/sda con la ruta de la unidad que desea reparar. Esto detectará automáticamente todos los bloques defectuosos en el disco y los marcará como inutilizables. Sin embargo, no le dará ninguna capacidad de almacenamiento adicional, así que prepárese para limpiar algunos archivos inútiles para liberar espacio en el disco.

¿Cuál es la mejor manera de corregir el error «No queda espacio en el dispositivo»?

La razón habitual para ver un error de «No queda espacio en el dispositivo» en Ubuntu o cualquier otra distribución de Linux es un archivo eliminado que todavía está siendo utilizado por un proceso en ejecución. Esto reserva el almacenamiento que estaba ocupado por el archivo, evitando que otras operaciones escriban datos en ese espacio.

Solucionar este problema también es lo más fácil, ya que todo lo que necesita hacer es reiniciar el proceso en cuestión. Las otras causas del error, sin embargo, no son tan fáciles de resolver.

Ya sea que su disco esté plagado de bloques de datos defectuosos o se haya quedado sin inodos, no hay una forma directa de solucionar estos problemas. Debe eliminar los archivos existentes para dejar espacio para que se escriban nuevos datos.

Categorías Hogar