回答:
ターミナルでは、diskutilを使用して、デバイスのブロックサイズなど、ドライブに関する情報を取得できます。
$ diskutil info / | grep "Block Size"
Device Block Size: 512 Bytes
まず、デバイスのブロックサイズは、ファイルシステムで使用されているブロックサイズとは異なることに注意してください。diskutilによって報告される前の値は、ハードウェアによって使用される生のブロックサイズを指します。コマンドラインで後者の値を確認する簡単な方法は見つかりませんでしたが、ゼロバイトのファイルを作成して、FinderからGet Infoを実行するだけで済みます。0バイトと表示されますが、ディスクでは4kが使用されます。
次に、コマンドラインプログラムを使用して、4kブロックサイズを超えるHFS +ファイルシステムを作成できますnewfs_hfs
。最も簡単な方法は、ディスクユーティリティを使用してドライブをパーティション分割し、デフォルトのフォーマットでパーティションを作成して/bin/df
から、ブロックデバイスの決定に使用することです(例のみです/dev/disk0s2
)。次に、そのパーティションをアンマウントし(umount /dev/diskXXX
またはディスクユーティリティを使用)、64kブロックのHFS +として再フォーマットします。
newfs_hfs -v VolumeName -b 65536 /dev/disk0s2
上記の「情報を見る」のヒントを使用して、ディスク上の小さなファイルが64kを占有していることを確認してください(10のべき乗単位で65kになる場合があります)。
格納するデータのほとんどが大きなファイル(MP3、写真、ビデオ、.zipファイルなど)である場合、パフォーマンスがこれを行う主な理由であり、ディスクの断片化を低く抑えるのにも役立ちます。主に小さなファイルを保存する場合は、気にしないでください。
デフォルトの4kブロックサイズでHFSとしてフォーマットされた大きなドライブ(> 1 TB)では、ドライブが容量に近づくと書き込みパフォーマンスが著しく低下することがわかりました。これは、パーティションが断片化されており、データの最後の1%を書き出すために空きブロックを探し回る必要があるためだと推測しています。ブロックサイズを大きくすると、この問題が多少軽減されることを期待しています。
stat -f %k .
ます。
diskutil info
時にはあなたのアロケーションブロックサイズを教えてくれます:Allocation Block Size: 32768 Bytes
だけでなく、デバイスブロックサイズ。rdisk2s0
カードリーダーでSDカードを使用してrawデバイスを使用する場合、これが正しいことがわかりました 。ハードドライブで動作させる方法がわかりません。
Macintosh用のファイルシステムに対するAppleの2回目の試みである古いHFSファイルシステムでは、ディスク上に最大65,535個の割り当てブロックしか存在できませんでした。ブロックサイズは、バイト単位のディスクサイズを割り当てブロックの最大数である65,535で割った関数です。小さいディスクではこれで問題ありませんでしたが、ディスクサイズが1 GBに近づき始めたとき、最小割り当てブロックサイズは16 KB(1073741824/65535)= 16384.25でしたが、16384に切り捨てる必要があります。
これは、1GB HFSディスク上の1バイトファイルがハードドライブに保存するのに16,384バイトを必要としたため、無駄なスペースが多すぎることを意味します。そこで、AppleはHFS +ラッパーを作成して、無駄なスペースを削減しました。
ブロックサイズを大きく設定する方法があるかもしれませんが、なぜしたいのですか?
これは、現在接続されているすべてのディスクのすべてのdiskinfo出力をリストするクイックbashスクリプトです。
#!/bin/bash
for disk in /dev/disk*s*
do
diskutil info $disk
echo "**************************************************************************************"
echo " "
done