stat -c '%B' *
각 파일은 동일한 번호 512를 보고합니다. 무슨 뜻이에요 %B
? 설명서를 읽을 수 없습니다.
%B - '%b'에 의해 보고된 각 블록의 크기(바이트)
내 블록 크기와 관련이 있습니까?
$ sudo blockdev --getbsz /dev/sda1
4096
감사해요.
답변1
파일 시스템을 볼 때 중요한 두 가지 할당 크기가 있습니다. 파일 시스템의 블록 크기와 디스크의 섹터 크기입니다. 대부분의 SATA 드라이브512바이트 섹터가 있습니다.그러나 예외도 있습니다. 4KB 섹터가 있는 드라이브는 드물지 않습니다. 이 정보는 다음과 같은 방법으로 얻을 수 있습니다 hdparm
.
# hdparm -I /dev/sdb|grep Sector
Logical/Physical Sector size: 512 bytes
그러나 파일 시스템 블록에 매핑할 때 드라이브가 충분히 큰 경우 512바이트는 블록 이름을 지정할 때 상당한 오버헤드를 부과합니다(할당 정보를 저장하는 데 필요한 메타데이터는 데이터를 저장하는 데 사용할 수 없는 공간). 일반적으로 블록 크기가 결정됩니다. 포맷 프로그램에 의해 자동으로 실행되지만 일반적으로 이를 무시할 수 있습니다. 예를 들어 ext3/4에서 사용하는 방법은 다음과 같습니다.다음과 같이:
-T usage-type[,...]
mke2fs
해당 목적에 가장 적합한 파일 시스템 매개변수를 선택할 수 있도록 파일 시스템을 사용하는 방법을 지정합니다 . 지원되는 사용 유형은/etc/mke2fs.conf
구성 파일(5)에 정의되어 있습니다. 사용자는 쉼표로 구분된 목록을 사용하여 하나 이상의 사용 유형을 지정할 수 있습니다.이 옵션을 지정하지 않으면
mke2fs
생성되는 파일 시스템의 크기에 따라 단일 기본 사용 유형이 선택됩니다. 파일 시스템 크기가 3MB 이하인 경우mke2fs
파일 시스템 유형이 사용됩니다floppy
. 파일 시스템 크기가 3보다 크고 512MB 이하인 경우mke2fs
(8) 파일 시스템이 사용됩니다small
. 그렇지 않으면mke2fs
(8) 기본 파일 시스템 유형이 사용됩니다default
.
기본값은 다음과 같이 4KB 블록이 기본값임을 나타냅니다 /etc/mke2fs.conf
.
[defaults]
base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr
default_mntopts = acl,user_xattr
enable_periodic_fsck = 0
blocksize = 4096
inode_size = 256
inode_ratio = 16384
따라서 %B
물리적 섹터의 크기를 보여줍니다. 여기에 사용된 섹터 수를 곱하면 %b
디스크에 할당된 총 바이트 수를 알 수 있습니다. 파일 시스템 할당은 블록 크기보다 작지 않기 때문에 일반적으로 전혀 관련이 없지만 물리적 섹터의 모든 할당이 8의 배수(4KB/512바이트 = 8)인지 결정하는 데 도움이 됩니다.
# stat test.img
File: test.img
Size: 536870912 Blocks: 1048584 IO Block: 4096 regular file
따라서 이 정보를 사용하여 디스크에 할당된 바이트 수와 이 파일에 할당된 사용되지 않은 공간을 확인할 수 있습니다.
블록 수 * 블록 크기 = 1048584 블록 * 512바이트/블록 = 536875008바이트.
사용되지 않은 할당 공간의 양: 536875008-536870912바이트 = 4096바이트 사용되지 않음.
답변2
stat 명령이 매뉴얼 페이지에 설명된 대로 작동하면 %B
포함 파일의 값이 반환됩니다.DEV_BSIZE
param.h
이 값은 대부분의 시스템에서 512이지만 HP-UX에서는 1024입니다.
참고: 이 값은 드라이브의 섹터 크기와 관련이 없습니다.