# Cómo solucionar el error "No space left on device" en Linux

**Categoría:** Linux · **Nivel:** Intermedio · **Lectura:** 18 min
**Publicada:** 2026-07-28 · **Actualizada:** 2026-07-28 · **Autoría:** Underc0de
**Versión HTML (canónica):** https://underc0de.org/guias/linux/como-solucionar-el-error-no-space-left-on-device/

## Respuesta rápida

El error **«No space left on device»** significa que Linux no puede escribir porque el **sistema de archivos está lleno**. Lo esperable es que sea literal —el disco se llenó—, y se confirma con `df -h`, que muestra el espacio usado y libre de cada partición. Pero hay una **trampa clásica**: a veces `df -h` dice que **hay espacio de sobra** y el error *sigue apareciendo*. En ese caso, el culpable no es el espacio, sino los **inodos**. Un inodo es la «ficha» que el sistema de archivos usa para **cada archivo**: guarda sus metadatos (permisos, fechas, dónde está en el disco). El sistema tiene un **número finito de inodos**, fijado al crear la partición, y si se agotan —típicamente por **millones de archivos diminutos** (sesiones de PHP, caché, correos, temporales)— no podés crear ni un archivo más *aunque sobre espacio*, porque no hay ficha libre para él. Se comprueba con `df -i` (la `-i` es de inodos). Así que el diagnóstico correcto es: primero `df -h` (¿falta espacio?) y, si dice que hay, `df -i` (¿faltan inodos?). Una vez que sabés *qué* se acabó, hay que encontrar *dónde*: con `du -sh *` se ve qué directorios ocupan más, y con **ncdu** (un explorador visual de uso de disco) se navega cómodamente hasta el culpable. Los sospechosos habituales: **logs** que crecieron sin control, **cachés**, paquetes descargados, backups viejos, temporales y archivos enormes olvidados. Al liberar, la regla es **no borrar a ciegas**: entender qué es cada cosa, empezar por lo claramente prescindible (caché, logs rotados, paquetes ya instalados) y nunca borrar archivos del sistema por el nombre sin saber qué son. Un detalle: un archivo **en uso por un proceso** no libera su espacio al borrarlo hasta que el proceso lo suelta.

## Qué significa

El mensaje **«No space left on device»** aparece cuando un programa intenta **escribir** algo —crear un archivo, ampliar uno existente, guardar un log— y el sistema de archivos le responde que no puede. La consecuencia es que empiezan a fallar cosas de forma aparentemente inconexa: la base de datos no guarda, la web da errores, no podés instalar nada, los logs se cortan. El origen es siempre el mismo: **algo se agotó** en el sistema de archivos. Y ahí está la clave del diagnóstico: ese «algo» puede ser el **espacio** (lo intuitivo) o los **inodos** (lo que confunde a mucha gente).

> **Espacio e inodos: dos límites distintos**
>
> Un sistema de archivos tiene **dos recursos finitos**, no uno. El primero es obvio: el **espacio**, los gigabytes disponibles para guardar el *contenido* de los archivos. El segundo es menos conocido: los **inodos**. Cada archivo, por diminuto que sea, necesita un **inodo**, que es su ficha de identidad interna: guarda quién es su dueño, sus permisos, sus fechas y en qué bloques del disco está su contenido. El número de inodos se fija al **crear la partición** y no crece. La consecuencia práctica: podés quedarte sin inodos *teniendo espacio de sobra*, si tenés muchísimos archivos pequeños. Es como una biblioteca con estanterías medio vacías pero sin fichas libres en el catálogo: no podés registrar un libro más aunque quepa. Por eso el mismo error, «no queda espacio», tiene **dos causas posibles** que se diagnostican distinto.

## Diagnóstico

El diagnóstico correcto sigue este orden:

| Comando | Qué revela |
|---|---|
| `df -h` | Espacio usado y libre por partición; si algo está al 100 %, falta espacio |
| `df -i` | Inodos usados y libres; si están al 100 % con espacio libre, es la trampa de los inodos |
| `du -sh *` | Cuánto ocupa cada directorio; para localizar los que más consumen |
| `ncdu` | Explorador visual del uso de disco; navegar hasta el culpable con comodidad |

> **Atención**
>
> El diagnóstico tiene **dos fases** que no hay que confundir. La primera responde *qué recurso se agotó*: espacio (`df -h`) o inodos (`df -i`). La segunda responde *dónde* está el problema, y para eso sirven `du` y **ncdu**. `du -sh *` ejecutado en un directorio muestra cuánto ocupa cada subdirectorio, lo que permite ir «bajando» hacia el que más pesa. **ncdu** hace lo mismo pero de forma **interactiva y visual**: escanea y te deja navegar con las flechas, ordenando por tamaño, hasta encontrar el archivo o carpeta que llenó el disco —es la herramienta más cómoda para esto—. Si el problema son los inodos, hay que buscar directorios con **enorme cantidad de archivos** (no necesariamente grandes), que suelen estar en cachés, sesiones o colas de correo. Conocer la [estructura de directorios de Linux](../estructura-de-directorios-de-linux-fhs/index.md) ayuda a saber dónde mirar primero: los logs, los temporales y las cachés tienen sus lugares habituales.

## Liberar espacio

Una vez localizado el culpable, se libera con cabeza. Los sospechosos habituales y cómo tratarlos:

| Sospechoso | Cómo liberarlo |
|---|---|
| Logs que crecieron sin control | Rotar o limpiar los logs; configurar la rotación para el futuro |
| Caché de paquetes descargados | Limpiar la caché del gestor de paquetes (ya están instalados) |
| Paquetes y kernels antiguos | Eliminar versiones viejas que ya no se usan |
| Backups y archivos temporales | Borrar los que ya no hagan falta, con criterio |
| Archivos enormes olvidados | Revisar qué son antes de borrarlos |

> **Atención**
>
> La regla de oro al liberar espacio: **entender qué es cada cosa antes de borrarla**. Empezar por lo *claramente* prescindible —la caché del [gestor de paquetes](../gestion-de-paquetes-en-linux-apt-dnf-pacman/index.md) (los paquetes ya están instalados), los logs ya rotados, los temporales—, y **nunca** borrar archivos del sistema por el nombre sin saber qué son: eliminar algo esencial puede dejar el sistema inservible. Hay una trampa que sorprende a mucha gente: si borrás un archivo que **un proceso todavía tiene abierto** (por ejemplo, un log que un servicio sigue escribiendo), el espacio **no se libera** hasta que ese proceso lo suelte —lo ves porque `df` no baja aunque hayas borrado archivos grandes—. La solución en ese caso no es borrar más, sino **reiniciar o recargar el servicio** que mantiene el archivo abierto, o truncarlo en vez de borrarlo. Y si el disco se llenó por completo, a veces ni siquiera podés operar: liberar unos pocos megabytes de algo prescindible suele bastar para volver a tener margen y trabajar.

## Errores frecuentes

- **Mirar solo el espacio y no los inodos.** Si `df -h` dice que hay espacio y el error sigue, comprobar `df -i`.
- **Borrar archivos del sistema por el nombre.** Sin saber qué son, se puede dejar el sistema inservible.
- **Esperar que `df` baje tras borrar un archivo en uso.** No se libera hasta que el proceso lo suelte; recargar el servicio.
- **Ignorar los logs sin rotación.** Un log que crece sin límite es la causa más común de disco lleno.
- **Confundir `df` con `du`.** `df` mide el sistema de archivos; `du` mide directorios; se usan en fases distintas.
- **Vaciar la papelera del sistema sin verla.** En escritorio, los archivos borrados siguen ocupando en la papelera.
- **No prevenir la reaparición.** Sin configurar rotación de logs y limpieza, el disco se vuelve a llenar.

## Preguntas frecuentes

**¿Qué significa el error "No space left on device"?**
El error que indica que no queda espacio en el dispositivo significa que el sistema de archivos de Linux no puede completar una operación de escritura, como crear un archivo nuevo, ampliar uno existente o guardar información, porque el recurso necesario para ello se ha agotado. Aunque el mensaje habla de espacio, la causa real puede ser de dos tipos distintos, y esa es una de las claves para diagnosticarlo correctamente. La causa más intuitiva y frecuente es que el disco o la partición esté literalmente llena, es decir, que se hayan agotado los gigabytes disponibles para almacenar el contenido de los archivos. En este caso, el sistema no tiene sitio donde poner más datos, y por eso rechaza cualquier escritura. La segunda causa, menos conocida pero muy habitual como fuente de confusión, es el agotamiento de los inodos. Un inodo es una estructura interna que el sistema de archivos utiliza para cada archivo, y que almacena sus metadatos, como el propietario, los permisos, las fechas y la ubicación de su contenido en el disco. El número de inodos disponibles se fija al crear la partición y es finito, de modo que si se agotan, no se pueden crear más archivos aunque quede espacio libre, porque no hay ficha disponible para registrar el nuevo archivo. Esta situación se produce típicamente cuando hay una cantidad enorme de archivos muy pequeños. Sea cual sea la causa, la consecuencia del error es que empiezan a fallar operaciones de forma aparentemente inconexa, como que una base de datos no pueda guardar, que una web dé errores, que no se puedan instalar programas o que los registros del sistema se corten. Por ello, ante este error, el primer paso es diagnosticar cuál de las dos causas lo provoca, comprobando primero el espacio disponible y, si resulta que hay espacio de sobra pero el error persiste, comprobando entonces los inodos, ya que la solución es distinta según el recurso que se haya agotado.

**¿Qué son los inodos y por qué se agotan?**
Los inodos son estructuras internas del sistema de archivos de Linux que se utilizan para representar y gestionar cada archivo, y su agotamiento es una causa habitual, aunque poco conocida, del error de que no queda espacio, que confunde porque puede ocurrir incluso cuando hay espacio de disco libre en abundancia. Cada archivo que existe en un sistema de archivos, por muy pequeño que sea, necesita un inodo, que funciona como su ficha de identidad interna y que almacena toda la información sobre el archivo excepto su nombre y su contenido, incluyendo el propietario, el grupo, los permisos, las fechas de creación, modificación y acceso, el tamaño y, sobre todo, la ubicación de los bloques del disco donde se guarda su contenido. Se puede pensar en los inodos como las fichas del catálogo de una biblioteca, donde cada ficha representa un libro y contiene sus datos, mientras que el contenido de los libros ocupa las estanterías. El aspecto crucial es que el número total de inodos disponibles en un sistema de archivos se determina en el momento en que se crea la partición y permanece fijo, sin crecer con el tiempo. Esto significa que un sistema de archivos tiene dos límites independientes: el espacio para el contenido de los archivos y el número de inodos para registrar archivos. Los inodos se agotan cuando se crea una cantidad enorme de archivos, típicamente muchos archivos muy pequeños, ya que cada uno consume un inodo con independencia de lo poco que ocupe su contenido. Situaciones que suelen provocar el agotamiento de inodos incluyen la acumulación de millones de archivos diminutos de sesiones de aplicaciones web, de cachés que crean un archivo por elemento, de colas de correo, de archivos temporales que no se limpian, o de aplicaciones mal configuradas que generan archivos sin control. Cuando esto sucede, se llega a la paradoja de que el sistema no puede crear ni un solo archivo más, y muestra el error de falta de espacio, a pesar de que al comprobar el espacio de disco se ve que hay gigabytes libres. Por eso, cuando el error persiste pese a que la comprobación del espacio indica que hay sitio de sobra, hay que comprobar los inodos con la opción correspondiente del comando de espacio, y si están al máximo, la solución pasa por localizar y eliminar la gran cantidad de archivos pequeños que los están consumiendo.

**¿Cómo encuentro qué está llenando el disco?**
Para encontrar qué está llenando el disco en Linux se utiliza un proceso de diagnóstico en dos fases, primero identificando qué recurso se ha agotado y después localizando dónde está el consumo, para lo cual existen varias herramientas de línea de comandos que se complementan. La primera fase consiste en determinar si el problema es de espacio o de inodos. Para comprobar el espacio se usa el comando que muestra el espacio usado y libre de cada sistema de archivos montado, preferiblemente en un formato legible por personas; si alguna partición aparece al cien por cien de uso, la causa es la falta de espacio literal. Si ese comando indica que hay espacio libre pero el error persiste, se comprueba entonces el uso de inodos con el mismo comando pero añadiendo la opción de inodos, que muestra cuántos inodos se han usado y cuántos quedan; si los inodos están al máximo, la causa es su agotamiento. La segunda fase consiste en localizar dónde está el consumo, ya sea de espacio o de archivos. Para ello, una herramienta fundamental es el comando que calcula cuánto ocupa cada directorio, que ejecutado con las opciones adecuadas en un directorio muestra el tamaño de cada subdirectorio, permitiendo ir descendiendo por el árbol de directorios hacia aquel que más consume, hasta encontrar el origen del problema. Una alternativa muy cómoda y recomendable es una herramienta interactiva y visual de exploración del uso de disco, que escanea un directorio y permite navegar por él con el teclado, mostrando los elementos ordenados por tamaño y facilitando enormemente la localización del archivo o la carpeta responsable, ya que se puede ir entrando y saliendo de los directorios viendo en todo momento cuánto ocupa cada uno. Si el problema es de inodos, en lugar de buscar los archivos más grandes hay que buscar los directorios que contienen una cantidad enorme de archivos, aunque sean pequeños, lo que suele llevar a cachés, directorios de sesiones o colas de correo. Conocer la estructura estándar de directorios de Linux ayuda mucho en esta tarea, ya que orienta sobre dónde suelen encontrarse los registros, los archivos temporales y las cachés, que son los sospechosos más habituales. Con estas herramientas se puede pasar de saber que el disco está lleno a saber exactamente qué carpeta o archivo lo ha llenado.

**¿Cuál es la diferencia entre df y du?**
La diferencia entre los comandos de espacio de disco y de uso de directorios es que el primero informa sobre el estado global de los sistemas de archivos, es decir, cuánto espacio total hay y cuánto está usado en cada partición, mientras que el segundo calcula cuánto espacio ocupan archivos y directorios concretos, y ambos se usan en fases distintas del diagnóstico de un problema de disco lleno. El comando de espacio de disco, cuya función es reportar el espacio de los sistemas de archivos, muestra una visión de conjunto: para cada sistema de archivos montado, indica su tamaño total, cuánto espacio está usado, cuánto queda libre y el porcentaje de uso, y con la opción adecuada puede mostrar también el uso de inodos en lugar del de espacio. Es la herramienta que se usa en la primera fase del diagnóstico para responder a la pregunta de qué recurso se ha agotado y en qué partición, ofreciendo una fotografía rápida del estado general del almacenamiento. Sin embargo, este comando no dice dónde, dentro de una partición, se está consumiendo el espacio, es decir, no indica qué directorios o archivos concretos son los responsables. Ahí es donde entra el comando de uso de directorios, cuya función es calcular el espacio que ocupan los archivos y directorios, y que se usa en la segunda fase del diagnóstico para responder a la pregunta de dónde está el consumo. Este comando recorre los directorios y suma el tamaño de su contenido, permitiendo ver cuánto ocupa cada carpeta y descender por el árbol de directorios hacia el origen del problema. Una forma habitual de usarlo es pedirle el tamaño resumido de cada elemento de un directorio, para identificar cuáles son los que más pesan e ir investigándolos. La relación entre ambos comandos es de complementariedad: primero se usa el de espacio para saber qué partición está llena y si el problema es de espacio o de inodos, y después se usa el de directorios, o una herramienta visual equivalente, para localizar dentro de esa partición qué carpetas y archivos concretos están consumiendo el recurso agotado. Confundir ambos comandos o usar solo uno de ellos lleva a diagnósticos incompletos, por lo que entender que uno da la visión global del sistema de archivos y el otro la visión detallada por directorios es clave para resolver eficazmente los problemas de disco lleno.

**Borré archivos pero el espacio no se liberó, ¿por qué?**
Si se han borrado archivos, incluso archivos grandes, pero el espacio libre no aumenta y el comando de espacio de disco sigue mostrando la partición igual de llena, la causa más habitual es que esos archivos todavía están siendo utilizados por algún proceso en ejecución, lo que impide que el sistema libere realmente su espacio hasta que el proceso los suelte. En Linux, cuando se borra un archivo, lo que se elimina es en realidad la entrada que lo referencia en el directorio, pero el sistema de archivos solo libera de verdad el espacio que ocupaba su contenido cuando ya no queda ninguna referencia a ese archivo, y eso incluye las referencias que mantienen los procesos que lo tienen abierto. Por tanto, si un proceso en ejecución tiene abierto un archivo, por ejemplo un servicio que está escribiendo continuamente en un archivo de registro, y se borra ese archivo mientras el proceso sigue funcionando, el proceso mantiene una referencia interna al archivo y continúa usándolo e incluso escribiendo en él, de modo que el espacio no se libera y el archivo sigue existiendo de forma oculta hasta que el proceso termina o cierra el archivo. Este comportamiento explica la situación desconcertante en la que se borra un registro enorme para liberar espacio pero el espacio libre no cambia. La solución en estos casos no es intentar borrar más archivos, sino ocuparse del proceso que mantiene abierto el archivo borrado, lo que normalmente se consigue reiniciando o recargando el servicio responsable, tras lo cual el proceso suelta el archivo y el sistema libera por fin el espacio. Una alternativa que evita este problema desde el principio, especialmente útil con los archivos de registro que un servicio está escribiendo, es no borrar el archivo sino vaciarlo o truncarlo, es decir, reducir su contenido a cero manteniendo el archivo en su sitio, de modo que el proceso pueda seguir escribiendo en él sin perder la referencia y el espacio se libere de inmediato. Por ello, ante un archivo de registro descontrolado que está siendo escrito por un servicio, suele ser preferible truncarlo y después configurar una rotación adecuada de los registros que evite que vuelva a crecer sin control, en lugar de borrarlo directamente, ya que el borrado directo no liberaría el espacio mientras el servicio siga en ejecución.

**¿Cómo libero espacio de forma segura?**
Liberar espacio de forma segura en Linux requiere seguir la regla fundamental de entender qué es cada cosa antes de borrarla, empezando por los elementos claramente prescindibles y evitando eliminar archivos del sistema cuya función se desconoce, ya que un borrado imprudente puede dejar el sistema inservible. El punto de partida seguro son los elementos que se sabe con certeza que se pueden eliminar sin consecuencias. Entre ellos está la caché del gestor de paquetes, que almacena los archivos de los paquetes que se han descargado para instalar, y que se puede limpiar sin problema porque los paquetes ya están instalados y esos archivos descargados ya no son necesarios; los gestores de paquetes ofrecen comandos específicos para limpiar esta caché. También son candidatos seguros los registros del sistema que ya han sido rotados y archivados y que ya no se necesitan, así como los archivos temporales que las aplicaciones dejan y que se pueden regenerar. Otro grupo de candidatos, aunque requiere algo más de criterio, son las versiones antiguas de paquetes y de núcleos del sistema que ya no se usan, que se pueden eliminar con las herramientas del gestor de paquetes destinadas a ese fin, y los backups y archivos antiguos que ya no hagan falta, revisando bien antes cuáles se pueden descartar. Para los archivos grandes que se hayan localizado durante el diagnóstico, la regla es revisar qué son antes de borrarlos, comprobando a qué corresponden y si son prescindibles, ya que podría tratarse de datos importantes. En ningún caso se deben borrar archivos del sistema por su nombre sin saber qué son, porque eliminar componentes esenciales del sistema operativo puede impedir que este funcione. Además, hay que tener en cuenta que si un archivo está siendo usado por un proceso, borrarlo no liberará el espacio hasta que el proceso lo suelte, por lo que en esos casos conviene recargar el servicio correspondiente o truncar el archivo en lugar de borrarlo. Por último, para evitar que el problema se repita, es muy recomendable adoptar medidas preventivas, como configurar correctamente la rotación de los registros para que no crezcan sin límite, programar limpiezas periódicas de cachés y temporales, y vigilar el uso del disco de forma regular. De este modo, no solo se resuelve el problema puntual de falta de espacio, sino que se reduce la probabilidad de que vuelva a producirse en el futuro.

## Fuentes

Documentación oficial y material de la comunidad consultados para esta guía. Fecha de consulta: 28 de julio de 2026.

### Aportes de la comunidad Underc0de

1. **Underc0de, foro.** [GNU/Linux](https://underc0de.org/foro/gnu-linux/). Administración y diagnóstico del sistema.
2. **Underc0de, blog.** [Blog de Underc0de](https://blog.underc0de.org/). Mantenimiento de servidores.

### Documentación oficial

1. **man7.org.** [df(1)](https://man7.org/linux/man-pages/man1/df.1.html). Espacio en los sistemas de archivos.
2. **man7.org.** [du(1)](https://man7.org/linux/man-pages/man1/du.1.html). Uso de espacio por directorio.
3. **The Linux Documentation Project.** [TLDP](https://tldp.org/). Sistemas de archivos e inodos.
4. **man7.org.** [filesystems(5)](https://man7.org/linux/man-pages/man5/filesystems.5.html). Sistemas de archivos de Linux.

## Guías relacionadas

- [Rendimiento del servidor](../como-diagnosticar-el-rendimiento-de-un-servidor-linux/index.md)
- [Estructura de directorios](../estructura-de-directorios-de-linux-fhs/index.md)
- [Comandos útiles de Linux](../comandos-utiles-de-linux/index.md)
- [Gestión de paquetes](../gestion-de-paquetes-en-linux-apt-dnf-pacman/index.md)
- [Índice de Linux](../index.md)
