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 que hay que tratar. Y aunque Linux suele ser específico en sus mensajes de error, esta es una de las pocas ocasiones en las que falla.

Recibir el error "No queda espacio en el dispositivo" explica muy poco, especialmente si el disco está lejos de estar lleno. ¿Por qué aparece este mensaje de error? ¿Por qué no puedes crear archivos nuevos a pesar de tener suficiente espacio en el disco? Y lo más importante, ¿cómo se soluciona?

Vamos a descubrirlo.

¿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 realmente se ha agotado el espacio en el disco de su sistema, no debe entrar en pánico. Puedes simplemente eliminar 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 opciones -s y -h. -s resume los resultados, mientras que -h garantiza que sean legibles por humanos. Así que ingrese el comando sudo du -sh /donde /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 tengas que 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, este es el resultado del comando du aplicado a un directorio normal.
      2. Ahora usaremos df para ver cuánto espacio libre hay disponible. El comando df es mucho más sencillo de usar ya que sólo 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 indica 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 ves el mensaje de error "No queda espacio en el dispositivo" a pesar de tener suficiente espacio libre en tu disco, no es el hardware el culpable. Descubrir la causa exacta del error puede requerir un poco de resolució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 haya desaparecido.
        • No hay suficientes inodos: Otra causa frecuente es no tener suficientes inodos. Los inodos son las páginas de índice de un sistema de archivos Unix y contienen los metadatos de cada archivo almacenado. Sin embargo, los inodos no son ilimitados y quedarse sin inodos antes de que quede espacio de almacenamiento puede generar el error "No queda espacio en el dispositivo".
        • Disco duro defectuoso: Entonces, 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, genera un error.
        • Solución 1: reiniciar procesos utilizando archivos eliminados

          La causa más probable del error "No queda espacio en el dispositivo" es un proceso que todavía utiliza un archivo eliminado. Afortunadamente, corregir este error es fácil. Sólo necesitas reiniciar el proceso para liberar el almacenamiento reservado.

          1. Para encontrar el proceso problemático, necesita usar los comandos lsof y grep. El comando lsof le dará una lista de todos los archivos abiertos que utilizan los procesos en ejecución, y grep puede limitar la selección a los que se eliminan. Entonces ingresa sudo lsof / | grep eliminadodonde / 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 comando sudo systemctl restart service_name, donde el nombre del servicio es el nombre del servicio que apareció en la búsqueda.
            2. .
              1. Si hay varios procesos como este o simplemente no quiere molestarse en buscar servicios específicos, puede restablecerlos todos con el comando sudo systemctl daemon-reload. Esto regenera todas las dependencias, teniendo en cuenta cualquier cambio en el sistema de archivos.
              2. Después de esto, el espacio de almacenamiento retenido por el proceso debería estar disponible nuevamente, lo que le permitirá escribir archivos sin encontrarse con ningún error.

                Solución 2: comprobar los inodos

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

                Puedes verificar fácilmente la disponibilidad de inodos usando el indicador -i con el comando df. Así:

                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 sólo se crean al formatear la unidad por primera vez, no hay forma de generar más inodos. Todo lo que puedes hacer es eliminar los archivos innecesarios para liberar inodos para archivos futuros.

                Solución 3: marcar bloques defectuosos

                La corrupción de datos es el destino inevitable de cualquier disco duro. Si bien una unidad nueva no tendrá 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 aparente espacio libre en el disco, cuando en realidad no se pueden escribir archivos en ellos. Esto genera el error "No queda espacio en el dispositivo", ya que el sistema operativo intenta y no logra 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..

                Para hacer esto, debes iniciar desde un CD en vivo, ya que no puedes realizar una verificación del sistema de archivos dentro de una unidad en ejecución. Una vez que hagas eso, simplemente 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 la unidad y los marcará como inutilizables. Sin embargo, no le brindará 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 solucionar el error "No queda espacio en el dispositivo"?

                La razón habitual para ver el error "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 ocupaba 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 necesitas hacer es reiniciar el proceso en cuestión. Las otras causas del error, sin embargo, no son tan fáciles de solucionar.

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

                .

                Artículos Relacionados:


                30.08.2022