좋아, 이것은 iPad Pro에 관한 것이지만 이것은 iPad에 국한된 것이 아니라 iOS/OS X의 기본 Unix 시스템에 관한 것이기 때문에 묻습니다.(예, 처음에는 "장치에 남은 공간이 없습니다"에 관한 모든 관련 StackExchange 항목을 읽는 데 몇 시간을 보냈습니다.)
질문 1:2~8MB보다 큰 파일을 생성할 수 없습니다(재부팅 후에는 달라집니다). 이로 인해 iPad를 거의 사용할 수 없게 됩니다.많은 응용 프로그램을 시작할 수 없거나 응용 프로그램을 설치할 수 없습니다.이상한 2-8MB 제한보다 큰 파일을 생성하려고 하면 여유 공간이 충분함에도 불구하고 "기기에 남은 공간이 없습니다"라고 보고됩니다.
질문 #2:디스크 공간이 계속 사라집니다.. "기기에 공간 없음" 문제가 발생하기 전에 앱을 계속 제거했으며 삭제한 앱 수에 관계없이 며칠 후에 전체 앱으로 표시되었습니다. 처음에는 1GB의 여유 공간이 있습니다. 그런 다음 몇 주 후에는 2GB, 그 다음에는 3...4...6...8...이 되었고 결국에는 9GB를 사용할 수 있음에도 불구하고 장치가 여전히 꽉 찬 것처럼 작동했습니다! 그래서 수십 개의 앱을 제거한 후 설명되지 않은 디스크 공간이 많이 있다는 것을 알고 있습니다.
긴급 상황: 몇 달 전 디스크 공간이 매우 부족하여 동시에 여러 앱을 업데이트하려고 했을 때 끔찍한 일이 일어났습니다. iPad가 정지되고 여러 시스템 데이터베이스가 손상되었으며 iPad에서 특정 비밀번호를 재설정하라는 메시지가 표시되기 시작했습니다. 그 이후로 여러 가지 문제가 있었지만 대부분의 경우 사용할 수 있었습니다. 지난주까지!
어찌할 바를 모르고 아이패드를 탈옥했고, 고칠 수 없으면 기기를 지워야 했고, 정말 실행하고 싶었습니다."du-hd 1"약 60GB의 누락된 공간을 소비하는 것이 무엇인지 확인하세요!
드라이브에서 fsck_hfs를 실행했는데(매우 어려웠습니다!!) 당연히 다음과 같은 내용이 나왔습니다.200만 무료 - 1,600만이어야 함, 제가 계산을 했는데 결과가 말이 되네요! fsck가 완료되고 재부팅되고 BAM! 어느새 잃어버렸던 공간이 다시 돌아와서 갖게 됐어71GB 무료!
그런데 문제가 심각해지면서 2~8MB보다 큰 파일을 만들 수 없게 됐습니다. 나는 실제로 다음을 실행했습니다.
dd if=/dev/zero of=testfile.bin bs=1M count=10
..그리고 "장치에 남은 공간 없음"과 함께 거의 항상 완벽한 MiB 전력 2(예: 2, 4 또는 8MiB)인 특정 숫자에서 실패합니다. 하지만 필요한 경우 언제든지 해당 크기의 파일을 더 많이 작성할 수 있습니다! 오늘의 한도가 4.0MiB라고 가정해 보겠습니다. 증분 파일 이름을 사용하여 DD 명령을 반복해서 실행할 수 있습니다. 이 작업을 연속 7번 수행하고 7개의 파일을 생성했는데 매번 완벽하게 작동했습니다. 4.1MiB로 설정하면 실패합니다. 방금 7x4(32MiB) 파일을 생성했는데도 말이죠!
그럼에도 불구하고 디스크 공간은 계속해서 줄어들어 오늘 아침에는 여유 공간이 39GB까지 줄었습니다.다시 fsck_hfs하면 ~70GB 여유 공간으로 돌아가서 천천히 다시 감소하기 시작합니다.
나는 헤매고 있다. 오직수십 GB의 사용 가능한 공간이 있는 경우 어떻게 장치에 "장치에 남은 공간 없음" 오류가 표시될 수 있나요?iPad에는 디스크가 1개만 있으며 4GB /System 파티션으로 나누어지고 나머지는 /private/var에 있습니다. 내 시스템 파티션이 75%만 점유되어 있는데 이는 모든 iOS 장치에서 정상적인 현상입니다.
심지어 df를 사용하여 inode를 확인한 결과 데이터 디스크(/dev/disk0s1s2)에 약 40억 개의 inode가 사용 가능합니다.
다음은 관련 인쇄물입니다(다른 날짜의).
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
장치에 약 9GB의 여유 공간이 있었지만 70GB의 여유 공간이 있어야 했던 첫 번째 fsck_hfs에서 가져왔습니다.
** 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)
완전한 성공적인 fsck_hfs:
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.
노트:
답변: 대용량 파일 생성에 실패할 경우 시스템 로그에는 관련 내용이 없습니다.
B. 장치: iPad Pro 9.7" 256GB iOS 10.2.1 HFS(10.3 후반부에 도입된 APFS 아님). 이 문제가 발생한 지 한참 후에 탈옥되었습니다.
답변1
파일 시스템이 매우 조각화되어 있는 경우 여유 공간은 많지만 더 큰 블록에는 공간이 충분하지 않을 수 있습니다.
귀하의 경우에는 파일 시스템에서 이것이 올바른 것 같습니다.
조각화는 많은 수의 작은 파일을 파일 시스템에 복사한 다음 해당 작은 파일의 임의 부분을 삭제하는 경우 자주 발생합니다. 이렇게 하면 더 큰 덩어리로 재조립할 수 없는 조각이 해제됩니다.
이전에는 usenet news
많은 수의 기사를 개인 디스크에 복사하고 개별 뉴스 그룹에 대해 서로 다른 보존 시간을 사용한 경우 파일 시스템에서 이 문제가 자주 발생했습니다.
파일 시스템에 조각 모음 도구가 없으면 많은 수의 작은 파일을 파일 시스템의 다른 위치로 복사(이동하는 대신)한 다음 작은 파일의 이전 버전을 삭제할 수 있습니다. 이 작업을 수행할 때 올바른 파일을 얻으면 해제된 조각이 함께 결합되어 새롭고 더 큰 사용 가능한 블록을 생성할 가능성이 높습니다.