왜 '크기'와 '디스크의 크기'간에 큰 차이가 있습니까?
대부분 'Size'와 'Size on disk'값은 폴더 나 파일의 크기를 확인할 때 매우 가깝습니다. 그러나 둘 사이에 큰 불일치가 있다면 어떻게해야합니까? 오늘의 수퍼 유저 Q & A 게시물은이 혼란스러운 문제에 대한 해답을 살펴 봅니다..
오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 중심 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..
질문
수퍼 유저 인 thelastblack은 휴대 전화의 SD 카드에있는 폴더의 '크기'와 '디스크의 크기'간에 왜 큰 차이가 있는지 알고 싶어합니다.
아래에서 볼 수 있듯이이 폴더의 '크기'와 '디스크의 크기'필드에는 많은 차이가 있습니다. 왜 그런가요??
나는 '디스크의 크기'가 Windows의 할당 단위로 인해 '크기'보다 조금 더 커야한다는 것을 알고 있습니다. 그러나 그 차이가 왜 그렇게 큽니까? 파일 수가 너무 많기 때문일 수 있습니다.?
BTW,이 폴더는 내 Android 휴대 전화의 SD 카드에 있습니다. 이 내부에서 내지도 앱은 캐시 된지도를 저장하고 앱은 Google지도에서지도를 가져옵니다..
스크린 샷을 보면 '크기'와 '디스크의 크기'사이에 큰 불일치가 있습니다. 따라서이 문제를 일으키는 원인은 무엇입니까??
대답
수퍼 유저 기고가 밥 (Bob)이 우리에게 해답을드립니다.
나는 당신이 여기에 FAT / FAT32 파일 시스템을 사용하고 있다고 가정 할 것입니다, 왜냐하면 당신은 이것이 SD 카드라고 언급했기 때문입니다. NTFS 및 exFAT는 할당 단위와 관련하여 유사하게 동작합니다. 다른 파일 시스템은 다를 수 있지만 Windows에서는 지원되지 않습니다..
작은 파일이 많다면 이것은 확실히 가능합니다. 이걸 고려하세요:
- 50,000 개의 파일
- 32 KB 클러스터 크기 (할당 단위) - FAT32의 최대 크기
좋아, 이제 최저한의 촬영 된 공간은 50,000 * 32,000 = 1.6GB입니다 (수학을 단순화하기 위해 이진 코드가 아닌 SI 접두사 사용). 각 파일이 디스크에서 차지하는 공간은 항상 할당 단위 크기의 배수입니다. 여기서는 각 파일이 실제 하나의 단위에 들어 맞을만큼 작고 일부 공간이 낭비되어 있다고 가정합니다..
각 파일의 평균 크기가 2KB라면 총 크기는 약 100MB가되지만 할당 단위 크기로 인해 평균 15KB (파일 당 30KB)가 낭비됩니다.
심층 설명
왜 이런 일이 생길까요? 음, FAT32 파일 시스템은 각 파일이 저장된 위치를 추적해야합니다. 모든 단일 바이트의 목록을 유지한다면 주소록과 같은 표가 데이터와 동일한 속도로 성장하여 많은 공간을 낭비하게됩니다. 그래서 그들은 "할당 단위"( "클러스터 크기"라고도 함)를 사용합니다. 볼륨은 이러한 할당 단위로 나뉘며 파일 시스템에 관한 한 세분화 할 수 없습니다.이 블록은 처리 할 수있는 가장 작은 블록입니다. 집 번호를 가지고있는 것보다 많이하지만, 우편 배달부는 갖고있는 침실이나 집에 살고있는 침실이 얼마나 많은지 신경 쓰지 않습니다..
파일 크기가 매우 작은 경우 어떻게됩니까? 음, 파일 시스템이 파일이 0 KB, 2 KB 또는 심지어 15 KB인지 여부는 신경 쓰지 않습니다. 위의 예에서 32KB입니다. 파일은이 공간을 약간만 사용하고 나머지는 기본적으로 낭비되지만 여전히 파일에 속합니다. 비어있는 침실처럼.
할당 단위 크기가 다른 이유는 무엇입니까? 음, 더 큰 테이블 (주소록, 예를 들어 John은 123 가짜 거리, 124 가짜 거리, 666 Satan Lane 등에서 집을 소유하고 있음을 나타내는 것)과 각 유닛 (집)에서 더 많은 낭비 된 공간을 가지는 것 사이에는 절충이됩니다. . 더 큰 파일을 가지고 있다면, 더 큰 할당 단위를 사용하는 것이 더 합리적입니다. 다른 모든 단위가 채워질 때까지 파일이 새로운 단위 (집)를 얻지 못하기 때문입니다. 작은 파일이 많다면 어쨌든 큰 테이블 (주소록)을 가지므로 작은 단위 (주택)를 줄 수도 있습니다..
대용량 할당 단위는 일반적으로 작은 파일이 많을 경우 많은 공간을 낭비합니다. 일반적으로 일반적인 용도로 4KB 이상을 사용하지 않는 것이 좋습니다..
분열?
단편화에 관해서는 단편화가 이런 방식으로 공간을 낭비해서는 안됩니다. 대용량 파일은 여러 개의 할당 단위로 분할, 즉 분할 될 수 있지만 다음 단위가 시작되기 전에 각 단위를 채워야합니다. 조각 모음을하면 할당 테이블에 약간의 공간이 절약 될 수 있지만 이는 특정 문제가 아닙니다..
가능한 해결책
gladiator2345가 제안했듯이이 시점에서 유일한 옵션은 함께 살거나 작은 할당 단위로 다시 포맷하는 것입니다.
카드 크기는 테이블 크기에 대한 제한이 더 적은 FAT16으로 포맷 될 수 있으므로 더 큰 볼륨 (32KB 할당 단위로 2GB의 상한이 있음)을 처리하려면 더 큰 할당 단위가 필요합니다. Braiam의 근원 의례. 그렇다면 FAT32 형식으로 안전하게 포맷 할 수 있어야합니다..
설명에 추가 할 것이 있습니까? 의견에서 소리가 나지. 다른 기술에 정통한 Stack Exchange 사용자의 답변을 더 읽고 싶습니까? 전체 토론 스레드를 여기에서 확인하십시오..