“Não há espaço disponível no dispositivo”, apesar de 70GB livres; Não é possível criar arquivos maiores que 8.0MiB no iPad [closed]

0

OK, isso está em um iPad Pro, mas estou perguntando a vocês, porque se trata do sistema Unix subjacente por trás do iOS / OS X, e não do iPad. (E sim, passei horas lendo todos os relevantes do StackExchange sobre "sem espaço sobrando no dispositivo" primeiro).

Problema # 1 : Não consigo criar arquivos maiores que 2-8MB (varia na reinicialização). Isso torna o iPad praticamente inutilizável. Muitos aplicativos não são iniciados, os aplicativos não são instalados etc. Ele relata que "não há mais espaço no dispositivo" quando você tenta criar um arquivo maior que o bizarro 2 Limite de -8MB, apesar de ter shows de espaço livre.

Problema # 2 : O espaço em disco constantemente desaparece . Eu continuei a desinstalar os aplicativos (antes que esse problema "não há mais espaço disponível no dispositivo") e, não importa quantos eu excluísse, ele agisse na íntegra alguns dias depois. No começo, agiu com 1GB de graça. Em seguida, ao longo de várias semanas, acabou por tornar-se 2 GB, depois 3 ... 4 ... 6 ... 8 ... e, eventualmente, mesmo com 9 GB livres, o dispositivo continuava a funcionar como se estivesse cheio! Então, eu sabia que uma quantidade enorme de espaço em disco não era contabilizada por eu ter desinstalado dezenas de shows.

Precipitando o incidente : algo catastrófico aconteceu alguns meses atrás, quando eu estava com muito pouco espaço em disco e tentei atualizar vários aplicativos de uma só vez. O iPad congelou e vários bancos de dados do sistema foram corrompidos, e o iPad começou a me pedir para configurar certas senhas novamente, etc. Desde então eu tive vários problemas com ele, mas consegui usá-lo principalmente. Até a semana passada!

Acabei Jailbreaking o iPad porque estou no fim do meu juízo e vou ter que apagar o dispositivo se não conseguir resolvê-lo, e eu estava absolutamente morrendo de vontade de executar um "du -h" -d 1 " para ver apenas o que estava consumindo aproximadamente 60GB de espaço perdido !!

Eu executei um fsck_hfs no drive (que era incrivelmente difícil de fazer !!) e SURE SUFICIENTE, ele disse algo como 2 milhões de blocos grátis - deveria ser 16 milhões , e eu fiz as contas e fez todo o sentido! O fsck foi concluído e reiniciado e BAM! De repente, meu espaço perdido está de volta e tenho 71GB livres!

Mas foi aí que o problema ficou tão ruim que não consegui criar arquivos maiores que 2-8MB. Eu literalmente corri:

dd if=/dev/zero of=testfile.bin bs=1M count=10

.. e ele irá falhar em um certo número que quase sempre é uma potência MiB perfeita de 2 (como 2, 4 ou 8 MiB) com "Sem espaço disponível no dispositivo". MAS POSSO SEMPRE ESCREVER QUANTO MAIS ARQUIVOS DO TAMANHO QUANTO QUERO! Digamos que o limite seja de 4,0 MiB hoje. Eu posso fazer esse comando DD com nomes de arquivos incrementais repetidamente. Eu fiz isso 7 vezes seguidas, criando 7 arquivos e toda vez que funcionava perfeitamente. Se eu fiz 4,1 Mb, ele falhará. Mesmo que eu acabei de criar 7x4 (32MiB) de arquivos!

E ainda assim, o espaço em disco continua a encolher por conta própria, esta manhã é até 39GB livre. Se eu fsck_hfs novamente, ele retornará para a marca de ~ 70GB e, lentamente, começará a diminuir novamente.

Eu estou perdido. Apenas COMO o dispositivo pode fornecer erros "Não há espaço disponível no dispositivo" quando há dúzias de GB livres? O iPad tem apenas 1 disco, dividido em uma partição 4GB / System e o restante em / private / var . A partição do My System está com apenas 75% de carga, o que é normal para qualquer dispositivo iOS.

Eu até chequei os inodes com df e há algo como 4 bilhões de inodes livres no disco de dados (/ dev / disk0s1s2).

Aqui estão algumas impressões relevantes (de vários dias):

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

Trecho de um dos primeiros fsck_hfs que executei quando o dispositivo tinha cerca de 9 GB gratuitos, mas deveria ter 70 GB livres:

** 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)

Um fsck_hfs completo e bem-sucedido:

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:

Nada relevante no syslog quando arquivos grandes não são criados.

Dispositivo: iPad Pro 9,7 "256 GB iOS 10.2.1 HFS (não APFS que foi introduzido mais tarde em 10.3). Nunca jailbroken até muito depois que este problema começou.

    
por Syclone0044 27.08.2018 / 14:14

1 resposta

1

Se um sistema de arquivos é muito fragmentado, pode ser que haja muito espaço livre, mas não há espaço suficiente em blocos maiores.

Seu caso parece que isso pode ser verdade em seu sistema de arquivos.

A fragmentação geralmente acontece quando você copia vários arquivos pequenos para o sistema de arquivos e, em seguida, remove uma parte aleatória desses arquivos pequenos. Isso libera fragmentos que não podem ser recombinados em blocos maiores.

Antigamente, um sistema de arquivos usenet news normalmente sofria desse problema caso você copiasse muitos artigos para o seu disco privado e usasse diferentes tempos de manutenção para os vários grupos de notícias.

Se não houver uma ferramenta de desfragmentação para esse sistema de arquivos, você poderá copiar (não mover) muitos dos arquivos pequenos para outro lugar no sistema de arquivos e depois remover as versões antigas dos arquivos pequenos. Se você obtiver os arquivos corretos enquanto faz isso, há uma grande chance de que os fragmentos liberados se encaixem para criar novos blocos livres maiores.

    
por 27.08.2018 / 16:31