パーティションの開始位置について
2014-11-15 11:18:03
はじめに
ファイルシステムのブロックサイズと、パーティション開始位置については、昔はそんなに気にする必要は無かった。しかし大容量時代になり、ハードディスクでは実際のセクタサイズが大きくなったり、SSDではNANDフラッシュの単位が重要だったりで、いろいろ気にする必要がでてきた。 要はアクセスの境界を合わせればよい。
ファイルシステムのブロックサイズ
Windowsではアロケーションユニットサイズという、昔はクラスタと言っていたような。
- AFTドライブならセクタサイズに合わせて4KiB。
- SSDならフラッシュメモリとSSDコントローラの最小公倍数にあわせて、4KiBか8KiBか16KiB。(これは自分の見解)
- ハードウェアRAIDならそれにあわせる。
Windowsでのパーティション開始位置
- XPのパーティション確保はまったく4KiBにあっておらず、alignが必要。
- Vista/7ではドライブに合わせてオフセットを決めればよい。デフォルトでオフセット1MiBめからパーティションを確保するので4KiB境界にあっており、考慮不要。
Linuxでのパーティションの開始位置
Linuxの場合、4KiB/8KiB/16KiB境界にあわせるには下記のどちらでもよい。
- fdisk -H224 -S56で、112セクタ(57344バイトめ)からパーティション確保。将来的な大容量時代にも対応するので、これがおすすめ。
- fdisk -H32 -S32で、64セクタ(32768バイトめ)から確保してもよい。わかりやすいが最大容量の限界が低い上に25KiB得するだけなので、そんなにこだわることはない。
余談
- ブートローダとしてGRUB、GRUB2を使用する場合はディスクの先頭に最低31KB必要で、その分空けておく必要がある。Linuxでは上記のように空けるのがおすすめ。
- Linuxでパーティションの開始位置をシリンダ・ヘッダの境界に合わせているのは慣習的にやっているだけで、あまり意味は無い。気持ちの問題。
- VMWareの場合はイメージファイルも合わせないといけないのではないか。と思ったが、VMFSのブロックサイズはMB単位なので、ここの話題とは関係ない。
参考
- 4KB セクター・ディスクで Linux を使用する: 実用的なアドバイス http://www.ibm.com/developerworks/jp/linux/library/l-4kb-sector-disks/
- SSD(Crucial m4)の速度が異常に出ない原因はパーティションアライメントにあった - consbiol のエコ日記 http://d.hatena.ne.jp/consbiol/20120422/1335086418
- VMware Infrastructure 3のストレージ機構[2] (1/4) http://www.atmarkit.co.jp/ait/articles/0903/02/news124.html