ファイルシステムのブロックサイズを調べる

Linux では tune2fs -l パーティション
stat(1) で stat.st_blksize を見るといい。
stat.st_blocks は1ブロック=512byteとしたときの使用ブロック数なので注意。
ext2 ではブロックサイズとして1K/2K/4Kを選択できて、RedhatLinux では 4K が普通らしい。

  File: `.bashrc'
  Size: 205             Blocks: 8          IO Block: 4096   Regular File
Device: 302h/770d       Inode: 280766      Links: 1
Access: (0644/-rw-r--r--)  Uid: (  501/  oracle)   Gid: (  501/oinstall)
Access: 2007-04-05 08:49:37.000000000 +0900
Modify: 2007-04-04 13:33:20.000000000 +0900
Change: 2007-04-04 13:33:20.000000000 +0900

http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=stat&dir=jpman-5.4.0%2Fman§=2
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/stat.2.html


[追記:2007-04-05]
FreeBSD UFS のブロックサイズは 16KB。
http://journal.mycom.co.jp/articles/2007/03/09/mckusick/001.html
http://tiki.is.os-omicron.org/tiki.cgi?c=v&p=FreeBSD%2F%A5%D5%A5%A1%A5%A4%A5%EB%A5%B7%A5%B9%A5%C6%A5%E0


FreeBSD stat の出力書式

1043 565766 -rw-r--r-- 1 ao ao 2272624 40417 "Apr  5 21:34:32 2007" "Mar 29 22:00:01 2007" "Mar 29 22:00:01 2007" "Jan  8 05:28:57 2007" 16384 80 0 .vimrc

左から

st_dev ファイルが存在するデバイス
st_ino inode 番号
st_mode ファイルタイプと権限
st_nlink ハードリンク数
st_uid 所有者ユーザID
st_gid 所有者グループID
st_rdev バイス番号
st_size バイト単位でのファイルサイズ
st_atime atime
st_mtime mtime
st_ctime ctime
st_birthtime inode の生成時刻
st_blksize ファイルシステム I/O 操作での最適なブロックサイズ
st_blocks 使用ブロック数(512byte単位)
st_flags ユーザ定義のフラグ
ファイル名