"stat /etc" 크기 불일치: 24개 블록, 크기 12288 대신 8192

"stat /etc" 크기 불일치: 24개 블록, 크기 12288 대신 8192

stat /etc명령에 따르면 블록 수가 24개입니다. 여기서 한 블록은 512바이트를 의미한다는 것을 알고 있습니다. 따라서 전체 크기는 24 × 512, 즉 12288바이트입니다.

하지만 8192바이트가 표시되는데 이유를 모르겠습니다. 내 생각에는 12288(3×4096)이 되어야 할 것 같다.

$ stat /etc
  File: /etc
  Size: 8192            Blocks: 24         IO Block: 4096   directory
Device: fd00h/64768d    Inode: 16777345    Links: 152
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-01-28 00:03:35.470200471 +0100
Modify: 2022-01-27 23:59:09.331606660 +0100
Change: 2022-01-27 23:59:09.331606660 +0100
 Birth: -

/etcXFS 파일 시스템에 위치합니다.

답변1

이는 XFS에 있으므로 /etc보고된 크기와 할당된 블록 수 간의 차이는 사전 할당 또는 디렉터리 축소로 인해 발생할 수 있습니다. xfs_db( )를 사용하여 파일 시스템을 보면 할당 xfs_db -r /dev/...된 블록을 볼 수 있습니다.

$ sudo xfs_db -r ...
xfs_db> inode 16777345
xfs_db> print
[...]
u3.bmx[0-3] = [startoff,startblock,blockcount,extentflag] 
0:[0,1052355,1,0] 
1:[1,1094509,1,0] 
2:[2,1094191,1,0] 
3:[8388608,1052431,1,0]
[...]

( inode위 명령은 시스템에 적합하지만 출력은 달라집니다.)

이는 크기가 12,288바이트이지만 할당된 크기가 16,384바이트(32개 블록으로 보고됨)인 디렉터리에서 가져온 것입니다 stat. 이는 세 개의 데이터 블록(시작 오프셋 0, 1, 2)과 "사용 가능 목록"의 일부인 하나의 추가 블록(시작 오프셋 8388608)으로 표시됩니다.디렉토리에 할당되었지만 디렉토리 데이터에서는 사용되지 않는 블록입니다.

관련 정보