“Não resta espaço no dispositivo”, apesar dos 70 GB livres; não é possível criar arquivos maiores que 8,0 MiB no iPad

“Não resta espaço no dispositivo”, apesar dos 70 GB livres; não é possível criar arquivos maiores que 8,0 MiB no iPad

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

Problema nº 1:Não consigo criar arquivos maiores que 2 a 8 MB (isso varia na reinicialização). Isso torna o iPad praticamente inutilizável.Muitos aplicativos não iniciam, aplicativos não instalam, etc.relata "não resta espaço no dispositivo" quando você tenta criar um arquivo maior que o bizarro limite de 2 a 8 MB, apesar de ter gigas de espaço livre.

Problema nº 2:O espaço em disco continua desaparecendo constantemente. Continuei desinstalando aplicativos (antes que esse problema de "sem espaço no dispositivo" começasse) e não importa quantos eu excluísse, ele ficaria cheio alguns dias depois. No início, ele funcionou totalmente com 1 GB grátis. Depois, ao longo de várias semanas, eventualmente passou para 2 GB, depois para 3...4... 6...8... e eventualmente, mesmo com 9 GB livres, o dispositivo ainda agia como se estivesse cheio! Então, eu sabia que uma quantidade ENORME de espaço em disco não era contabilizada porque eu havia desinstalado dezenas de shows de aplicativos.

Incidente precipitante: algo catastrófico aconteceu há alguns meses, quando eu estava legitimamente com muito pouco espaço em disco e tentei atualizar vários aplicativos de uma 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, tive vários problemas com ele, mas consegui usá-lo principalmente. Até semana passada!

Acabei desbloqueando o iPad porque estou perdendo o juízo e terei que apagar o dispositivo se não conseguir resolver o problema, e estava absolutamente MORRENDO para executar um"du -h -d 1"para ver O QUE estava consumindo cerca de 60 GB de espaço perdido!!

Eu executei um fsck_hfs na unidade (o que foi incrivelmente difícil de fazer!!) e COM CERTEZA, ele disse algo como2 milhões de blocos gratuitos – deveriam ser 16 milhões, e 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 eu tenho71 GB grátis!

Mas foi nessa época que o problema ficou tão grave que não consigo criar arquivos maiores que 2 a 8 MB. Eu literalmente corri:

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

..e falhará em um certo número que quase sempre é uma potência MiB perfeita de 2 (como 2, 4 ou 8 MiB) com "Não resta espaço no dispositivo". MAS SEMPRE POSSO ESCREVER QUANTOS ARQUIVOS DESSE TAMANHO QUISER! Digamos que o limite seja 4,0 MiB hoje. Posso executar esse comando DD com nomes de arquivos incrementais continuamente. Já fiz isso 7 vezes seguidas criando 7 arquivos e todas as vezes funcionou perfeitamente. Se eu consegui 4,1 MiB, ele falha. Mesmo que eu tenha criado 7x4 (32MiB) de arquivos!

E AINDA, o espaço em disco CONTINUA a diminuir por conta própria, esta manhã caiu para 39 GB livres.Se eu fsck_hfs novamente, ele voltará para a marca de ~ 70 GB livres e começará a diminuir lentamente novamente.

Estou perdido. ApenasCOMO o dispositivo pode apresentar erros "Não há espaço no dispositivo" quando há dezenas de GB livres?O iPad possui apenas 1 disco, dividido em uma partição /System de 4 GB e o restante em /private/var. Minha partição do sistema está apenas 75% cheia, o que é normal para qualquer dispositivo iOS.

Eu até verifiquei os inodes com df e há algo em torno de 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 livres, 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:

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

B. Dispositivo: iPad Pro 9,7 "256 GB iOS 10.2.1 HFS (não APFS que foi introduzido posteriormente em 10.3). Nunca desbloqueado ATÉ muito depois do início do problema.

Responder1

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

Parece que isso pode ser verdade no seu sistema de arquivos.

A fragmentação normalmente acontece se você copiar muitos arquivos pequenos para o sistema de arquivos e depois remover uma parte aleatória desses arquivos pequenos. Isso libera fragmentos que não podem ser recombinados em blocos maiores.

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

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

informação relacionada