現在2T以上的磁盤其物理扇區基本上是4K大小的,在linux下要得到磁盤的物理扇區大小有如下幾種方式:
1.使用hdparm 工具,hdparm -I 直接查看磁盤原始提供的物理和邏輯扇區大小。
2.對於ata 設備通過ioctl 向磁盤發送 HDIO_GET_IDENTITY 命令獲知。
3.blockdev --getss xxx , xxx為設備名。
4. 通過 /sys/dev 下的信息獲知。
5.通過 ioctl 向磁盤發送BLKSSZGET請求獲知。
其中方法1 和 方法2是可以准確獲取磁盤物理扇區大小的,由於現在的4K扇區的磁盤一般支持512Bytes的直接讀取和寫入,也即其在4K物理扇區上模擬了
512Bytes的概念。不過這種非對齊方式的寫入一般是由"先讀---再寫"兩個操作組成,這樣不能發揮4K物理扇區磁盤的最大性能。