andujar_dani
Posts: 2
Joined: Thu Jul 19, 2018 2:14 pm

Error en pendrive "no space left on device"

Thu Jul 19, 2018 2:28 pm

Buenas!! Estoy un poco verde aún con todo lo relacionado con linux... a ver si podéis echarme una mano...

Tengo Raspbian instalado en una Raspberrypy 3. Ahí tengo un script en python que me descarga archivos .jpg en un pendrive de 8 gb formateado en FAT32. El script se detiene por un error reportando el mensaje: “no space left on device”. El caso es aún debería quedarle espacio disponible. He buscado información por internet pero no he conseguido solucionarlo...

Cuando ejecuto df –h esta es la salida:

Code: Select all

S.ficheros     Tamaño Usados  Disp Uso% Montado en
/dev/root         30G   3,6G   25G  13% /
devtmpfs         460M      0  460M   0% /dev
tmpfs            464M      0  464M   0% /dev/shm
tmpfs            464M    47M  417M  11% /run
tmpfs            5,0M   4,0K  5,0M   1% /run/lock
tmpfs            464M      0  464M   0% /sys/fs/cgroup
/dev/mmcblk0p1    43M    22M   21M  51% /boot
tmpfs             93M      0   93M   0% /run/user/1000
/dev/sda1        7,5G   1,6G  6,0G  21% /media/pi/E49E-1F3E
El pendrive en cuestión /media/pi/E49E-1F3E

Al estar en FAT32 me ha parecido entender que no es un problema de inodes, pero por si acaso os pongo la salida de df -i:

Code: Select all

S.ficheros     Nodos-i NUsados NLibres NUso% Montado en
/dev/root      1934944  113850 1821094    6% /
devtmpfs        117529     365  117164    1% /dev
tmpfs           118681       1  118680    1% /dev/shm
tmpfs           118681     442  118239    1% /run
tmpfs           118681       3  118678    1% /run/lock
tmpfs           118681      10  118671    1% /sys/fs/cgroup
/dev/mmcblk0p1       0       0       0     - /boot
tmpfs           118681      15  118666    1% /run/user/1000
/dev/sda1            0       0       0     - /media/pi/E49E-1F3E
También he probado a vaciar la papelera con este comando

Code: Select all

rm -rf /media/pi/E49E-1F3E/.Trash-1000
pero no lo ha solucionado.

Como información adicional, los .jpg tienen un nombre de más de 20 caracteres y en total tengo en el pendrive 11.128 archivos. También hay una carpeta que no he creado que se llama System Volume information pero creo que no tiene nada que ver, que es algo que crea Windows...

A ver si podéis echarme una mano por favor!!

Muchas gracias!!!

tthalatos
Posts: 19
Joined: Mon Jul 09, 2018 11:09 pm

Re: Error en pendrive "no space left on device"

Thu Jul 19, 2018 4:34 pm

hola

tengo un problema parecido pero con el script y soy ben verde emrpogramacion, mas bajo del index postee el code , me podrias dejar ver le tuyo por favor
y el que yo puse tal vez te sirve

56kbps
Posts: 113
Joined: Wed Apr 13, 2016 6:22 am

Re: Error en pendrive "no space left on device"

Fri Jul 20, 2018 8:28 am

De la salida del comando "df" se entiende que no hay falta de espacio en ningún dispositivo de almacenamiento. Ni en el pendrive ni en otro. De tal forma que no es posible pensar que, por despiste, las imágenes se están guardado en otro dispositivo y te estés confundiendo.

Dicho esto, mi primera hipótesis es que el pendrive está defectuoso o se ha estropeado con el uso. He experimentado casos de tarjetas de memoria, como también de lectores, que entran en modo "solo lectura" cuanto se estropean.

Así que para verificar que es lo que te ha pasado podrías intentar guardar algún archivo manualmente desde la línea de comandos. Supongo que primero tendrás que borrar algún archivo, o moverlo temporalmente a otro dispositivo, para dejar espacio. Si te funciona, entonces no hay razón para pensar que el dispositivo esté defectuoso. Si además puedes seguir guardando más y más archivos, entonces tampoco hay razón para pensar que esté lleno.

User avatar
lmarmisa
Posts: 1223
Joined: Thu Feb 14, 2013 2:22 am
Location: Jávea, Spain

Re: Error en pendrive "no space left on device"

Fri Jul 20, 2018 8:30 am

El máximo número de ficheros por directorio en una partición fat32 está limitado a 65535 ficheros. No parece que estés cerca de ese número. Dices que el número total de ficheros son unos 11000, pero probablemente estarán guardados en múltiples directorios. No parece tampoco que estés intentando copiar ficheros mayores de 2GB.

https://stackoverflow.com/questions/466 ... -directory

Dada la información que acompañas no veo dónde puede estar el error. El pendrive está al 21% de capacidad y quedan libres 6GB. Por tanto no debería haber problemas de espacio.

Puedes ejecutar un procedimiento de reparación del sistema fat32 por si el sistema de ficheros tuviera algún error.

Lo primero debes teclear un comando para desmontar el pendrive. En tu caso sería:

Code: Select all

umount /media/pi/E49E-1F3E
Teclea después el comando de reparación:

Code: Select all

sudo dosfsck -w -r -l -a -v -t /dev/sda1
Una vez finalizada la reparación, reinicia el sistema para que se vuelva a montar automáticamente el pendrive y comprueba si el problema se ha solucionado (probablemente seguirá igual si no han aparecido errores en la reparación).

En cuanto a un script para copiar de modo inteligente un directorio completo a un pendrive (o a otro directorio), recomiendo el comando rsync. Digo que esa copia es inteligente porque no se copia toda la información al distino sino sólo lo que es diferente, de modo que el destino queda igual que el origen pero copiando sólo lo estrictamente necesario. La primera vez el destino estará vacío y se copiará todo, pero en las veces sucesivas sólo se copiarán los ficheros que se hayan modificado.

Esta versión del comando es "conservadora" de modo que no se borran los ficheros o directorios que estén en destino pero no en origen:

Code: Select all

rsync -av /home/pi/midirectorio/ /media/pi/E49E-1F3E/
Este otro comando deja el destino exactamente igual que el origen borrando, en caso de existir, los ficheros o directorios que estén en el destino que no se encuentren en el origen:

Code: Select all

rsync -av --delete /home/pi/midirectorio/ /media/pi/E49E-1F3E/
NOTA: en caso de usar el comando rsync es muy recomendable terminar en "/" los directorios origen y destino.

andujar_dani
Posts: 2
Joined: Thu Jul 19, 2018 2:14 pm

Re: Error en pendrive "no space left on device"

Mon Jul 23, 2018 2:41 pm

Hola de nuevo,

He probado a realizar la opción de reparación del pendrive y no se han encontrado errores. He reiniciado para que volviera a montar el pendrive y no podía copiar, me salía el mismo mensaje.

He probado a eliminar unos 2.000 archivos y ahora sí me deja copiar. Esto ya lo hice la primera vez que me sucedió (olvidé ponerlo en el primer post), por lo que no parece una solución definitiva ya que volverá a sucederme lo mismo.

¿Alguna idea más? ¿Entiendo que siempre me queda la opción de formatearlo no? En caso de que lo formatease, como este PEN lo voy a usar solo en la Raspberry, ¿hay algún formato que sea mejor que FAT32?

Muchas gracias!!

User avatar
lmarmisa
Posts: 1223
Joined: Thu Feb 14, 2013 2:22 am
Location: Jávea, Spain

Re: Error en pendrive "no space left on device"

Mon Jul 23, 2018 3:06 pm

Si sólo vas a conectar el pendrive a la RPi, te recomiendo usar una partición nativa Linux ext4.

Para formatear usa la herramienta gparted:

Code: Select all

sudo apt-get install gparted
Arranca gparted mediante Inicio -> Preferencias -> gparted.

Selecciona arriba a la derecha el dispositivo del pendrive (probablemente será /dev/sda). Desmonta (si está montada) con click y botón derecho la partición del pendrive.

A continuación te recomiendo crear una nueva tabla de particiones del tipo msdos con Dispositivo -> Crear Tabla de Particiones.

Seguidamente añade una partición ext4 ocupando todo el pendrive y aplica la operación. Durante la definición de la partición puedes definir una etiqueta para la misma.

Una vez completadas esas operaciones puedes salir de gparted.

Ahora hay que montar la partición creada mediante una entrada en el fichero /etc/fstab.

Lo primero crearemos un punto de montaje. Por ejemplo:

Code: Select all

sudo mkdir -p /media/pendrive
Ahora editaremos el fichero /etc/fstab:

Code: Select all

sudo nano /etc/fstab
Y añadiremos al final una línea como ésta:

Code: Select all

...
/dev/sda1 /media/pendrive ext4 nofail,noatime  0 2
Salvamos y cerramos el fichero.

Es importante comprobar que el montaje se realiza correctamente. Con estos comandos harás el montaje y verificarás que está montado:

Code: Select all

sudo mount -a
mount | grep sda1
Si no habido problemas, crearemos una carpeta para los datos de pi:

Code: Select all

sudo mkdir /media/pendrive/data
sudo chown -R pi:pi /media/pendrive/data
Finalmente puedes crear uno o varios symlinks en los directorios de la cuenta pi que desees que faciliten el acceso a la nueva carpeta de datos:

Code: Select all

ln -s /media/pendrive/data
Suerte.

NOTA: es más elegante referirse a la partición a montar en el fichero /etc/fstab mediante el indentificador único UUID en vez de por el dispositivo /dev/sda1, pero no he añadido esas instrucciones porque el post sería todavía más largo.

56kbps
Posts: 113
Joined: Wed Apr 13, 2016 6:22 am

Re: Error en pendrive "no space left on device"

Mon Jul 23, 2018 5:44 pm

Por curiosidad, ¿qué pasa si metes el pendrive en otro sistema? Especialmente en un Windows. ¿También se queja de falta de espacio? ¿Cuánto espacio dice que queda?

Return to “Español”