stat -c '%B' *
各ファイルは同じ番号512を報告します。どういう意味ですか%B
?マニュアルを読むことができません。
%B - '%b'によって報告された各ブロックのサイズ(バイト単位)
私のブロックサイズに関連していますか?
$ sudo blockdev --getbsz /dev/sda1
4096
ありがとうございます。
答え1
ファイルシステムを表示する際には、重要な2つの割り当てサイズがあります。ファイルシステムのブロックサイズとディスクのセクタサイズ。ほとんどの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)で定義されています。ユーザーは、カンマ区切りリストを使用して1つ以上の使用タイプを指定できます。このオプションを指定しない場合、
mke2fs
生成されるファイルシステムのサイズに応じて、単一のデフォルト使用タイプが選択されます。ファイルシステムサイズが3MB以下の場合、mke2fs
ファイルシステムタイプが使用されますfloppy
。ファイルシステムサイズが3より大きく512 MB以下の場合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です。
注:この値はドライブのセクタサイズとは関係ありません。