
Bien, esto es en un iPad Pro, pero les pregunto porque se trata del sistema Unix subyacente detrás de iOS/OS X, no es realmente específico de iPad.(Y sí, pasé horas leyendo primero todos los artículos relevantes de StackExchange sobre "no queda espacio en el dispositivo").
Problema #1:No puedo crear archivos de más de 2 a 8 MB (varía según el reinicio). Esto hace que el iPad sea prácticamente inutilizable.Muchas aplicaciones no se inician, no se instalan, etc.informa "no queda espacio en el dispositivo" cuando intentas crear un archivo más grande que el extraño límite de 2 a 8 MB, a pesar de tener gigas de espacio libre.
Problema #2:El espacio en disco sigue desapareciendo constantemente. Seguí desinstalando aplicaciones (antes de que comenzara este problema de "no quedaba espacio en el dispositivo") y no importaba cuántas eliminara, funcionaba por completo unos días después. Al principio funcionó al máximo con 1 GB libre. Luego, durante varias semanas, finalmente se convirtió en 2 GB, luego en 3...4... 6...8... y finalmente, incluso con 9 GB libres, ¡el dispositivo todavía actuaba como si estuviera lleno! Entonces supe que había una GRAN cantidad de espacio en disco sin contabilizar porque había desinstalado docenas de aplicaciones.
Incidente precipitante: Algo catastrófico sucedió hace unos meses cuando tenía muy poco espacio en el disco e intenté actualizar varias aplicaciones a la vez. El iPad se congeló y varias bases de datos del sistema se corrompieron, y el iPad comenzó a pedirme que configurara ciertas contraseñas nuevamente, etc. Desde entonces he tenido varios problemas con él, pero pude usarlo en su mayoría. ¡Hasta la semana pasada!
Terminé haciendo Jailbreak al iPad porque estoy al límite de mi ingenio y voy a tener que borrar el dispositivo si no puedo resolverlo, y me moría absolutamente por ejecutar un"du -h -d 1"¡¡Para ver QUÉ consumía aproximadamente 60 GB de espacio faltante!!
Ejecuté fsck_hfs en el disco (¡¡lo cual fue increíblemente difícil de hacer!!) y SEGURO, decía algo como2 millones de bloques gratis - deberían ser 16 millones¡Y hice los cálculos y tenía mucho sentido! El fsck se completó y reinició y ¡BAM! De repente, el espacio que me faltaba volvió y tengo¡71 GB gratis!
Pero fue entonces cuando el problema se agravó tanto que no puedo crear ningún archivo de más de 2 a 8 MB. Literalmente corrí:
dd if=/dev/zero of=testfile.bin bs=1M count=10
..y fallará en un cierto número que casi siempre es una potencia de MiB perfecta de 2 (como 2, 4 u 8MiB) con "No queda espacio en el dispositivo". ¡PERO SIEMPRE PUEDO ESCRIBIR TANTOS ARCHIVOS DE ESE TAMAÑO COMO QUIERA! Digamos que el límite es 4,0 MiB hoy. Puedo hacer ese comando DD con nombres de archivos incrementales una y otra vez. Lo hice 7 veces seguidas creando 7 archivos y cada vez funcionó perfectamente. Si lo hice a 4,1MiB, falla. ¡Aunque acabo de crear 7x4 (32MiB) de archivos!
Y AÚN, el espacio en disco CONTINÚA reduciéndose por sí solo, esta mañana se ha reducido a 39 GB libres.Si vuelvo a fsck_hfs, volverá a la marca libre de ~70 GB y lentamente comenzará a disminuir una vez más.
Estoy perdido. Justo¿CÓMO puede el dispositivo dar el error "No queda espacio en el dispositivo" cuando hay docenas de GB libres?El iPad solo tiene 1 disco, dividido en una partición /System de 4GB y el resto en /private/var. La partición de mi sistema está llena solo al 75%, lo cual es normal en cualquier dispositivo iOS.
Incluso verifiqué los inodos con df y hay algo así como 4 mil millones de inodos libres en el disco de datos (/dev/disk0s1s2).
Aquí hay algunas impresiones relevantes (de varios días):
iPad:/private root# df
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s1s1 9316200 6795912 2427128 74% 125137 4294842142 0% /
devfs 99 99 0 100% 172 0 100% /dev
/dev/disk0s1s2 486135960 476137152 9998808 98% 1217291 4293749988 0% /private/var
iPad:/private root# df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk0s1s1 4.4Gi 3.2Gi 1.2Gi 74% 125137 4294842142 0% /
devfs 50Ki 50Ki 0Bi 100% 172 0 100% /dev
/dev/disk0s1s2 232Gi 227Gi 4.8Gi 98% 1217291 4293749988 0% /private/var
iPad-Pro-256GB:/sbin root# mount
/dev/disk0s1s1 on / (hfs, local, journaled, noatime)
devfs on /dev (devfs, local, nobrowse)
/dev/disk0s1s2 on /private/var (hfs, local, nodev, nosuid, journaled, noatime, protect)
iPad-Pro-256GB:~ root# pwd
/var/root
iPad-Pro-256GB:~ root# dd if=/dev/zero of=test3.bin bs=1M count=20
dd: error writing 'test3.bin': No space left on device
9+0 records in
8+0 records out
8388608 bytes (8.4 MB, 8.0 MiB) copied, 0.671137 s, 12.5 MB/s
Extracto de uno de los primeros fsck_hfs que ejecuté cuando el dispositivo tenía aproximadamente 9 GB libres pero debería haber tenido 70 GB libres:
** Checking volume bitmap.
Volume bitmap needs minor repair for orphaned blocks
Volume bitmap needs repair for under-allocation
** Checking volume information.
Invalid volume free block count
(It should be 16884367 instead of 2063604)
Un fsck_hfs completamente exitoso:
iPad-Pro-256GB:/ root# umount -f /private/var && killall backboardd && fsck_hfs -f -y /dev/disk0s1s2
umount: /private/var: not currently mounted
iPad-Pro-256GB:/ root# fsck_hfs -f -y /dev/disk0s1s2
** /dev/rdisk0s1s2
Executing fsck_hfs (version hfs-366.30.3).
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive volume.
The volume name is Data
** Checking extents overflow file.
** Checking catalog file.
Incorrect size for file MediaLibrary.sqlitedb
(It should be 1343488 instead of 1564672)
** Checking multi-linked files.
** Checking catalog hierarchy.
** Checking extended attributes file.
** Checking volume bitmap.
Volume bitmap needs minor repair for orphaned blocks
** Checking volume information.
Invalid volume free block count
(It should be 16972349 instead of 14633343)
** Repairing volume.
Limited repair mode, not all repairs available
** Rechecking volume.
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive volume.
The volume name is Data
** Checking extents overflow file.
** Checking catalog file.
** Checking multi-linked files.
** Checking catalog hierarchy.
** Checking extended attributes file.
** Checking volume bitmap.
** Checking volume information.
** Trimming unused blocks.
** The volume Data was repaired successfully.
Notas:
R. No hay nada relevante en el syslog cuando no se pueden crear archivos grandes.
B. Dispositivo: iPad Pro 9.7" 256GB iOS 10.2.1 HFS (no APFS que se introdujo más adelante en 10.3). Nunca se le hizo jailbreak HASTA mucho después de que comenzara este problema.
Respuesta1
Si un sistema de archivos está muy fragmentado, puede ser que haya mucho espacio libre pero no haya espacio suficiente en bloques más grandes.
Parece que su caso esto podría ser cierto en su sistema de archivos.
La fragmentación suele ocurrir si copia muchos archivos pequeños al sistema de archivos y luego elimina una parte aleatoria de estos archivos pequeños. Esto libera fragmentos que no se pueden recombinar en bloques más grandes.
En el pasado, un usenet news
sistema de archivos solía sufrir este problema en caso de que copiaras muchos artículos a tu disco privado y usaras diferentes tiempos de conservación para los distintos grupos de noticias.
Si no existe una herramienta de desfragmentación para este sistema de archivos, puede copiar (no mover) muchos de los archivos pequeños a otro lugar del sistema de archivos y luego eliminar las versiones antiguas de los archivos pequeños. Si obtiene los archivos correctos mientras hace esto, existe una gran posibilidad de que los fragmentos liberados encajen para crear nuevos bloques libres más grandes.