5,964 瀏覽數

Hard Drive – Sector size 512 / 520 bytes

Sector size 是硬碟中最小儲存單位,通常會是 512 bytes 的大小,但是通常使用在 Storage 的儲存裝置上會使用 520 bytes 大小的 Sector size.怎麼多出這 8 bytes 是做什麼的??在 Linux 下有什麼工具是可以將 Sector size 做改變的.

多出來的那 8bytes 廠商可以依據自己需求來定義,大多是儲存錯誤檢查等資料.
520block
要改變 Sector size 的工具在,RHEL 4 / 5 光碟中皆有提供,  sg_format 主要是由套件 sg3_utils ,   sg3_utils_libs  所提供,如果找不到可以上官方網站來查詢.

Ubuntu 可以直接透過 #apt-get 去安裝

[root@benjr ~]# apt-get install sg3-utils

The Linux sg3_utils package http://sg.danny.cz/sg/sg3_utils.html

使用下面的指令加上參數就可以將 sdd 的 Sector size 改成 520 bytes 大小.
RedHat

[root@benjr ~]# sg_format –format –size=520 /dev/sdd

Ubuntu

[root@benjr ~]# sg_format -–format -–size=520 /dev/sdd

RedHat 和 Ubuntu 參數的使用略有不同.

格式化的時間會依據磁碟的大小來決定,但是記得一點當我們將 Sector size 由 512 bytes 改成 520 bytes 之後,Linux 就無法透過 fdisk , mkfs 的工具做存取.不過透過 dmesg 還是可以得知有新的硬碟加入系統中.

[root@benjr ~]# dmesg 
sd 0:0:7:0: Attached scsi disk sdc
sd 0:0:7:0: Attached scsi generic sg2 type 0
mptsas: ioc0: attaching ssp device, channel 0, id 33, phy 2
      Vendor: Fujitsu  Model: MBE2147RC  Rev: NQ00
      Type: Direct-Access ANSI SCSI revision: 03 
sdd : unsupported sector size 520.

Advanced Format(AF)

原本每個 sector 預設的 Block size 是 512 或 520-bytes,每一個sector 的 512bytes 其實還包含了(Gap 間隙、Sync/DAM 及 ECC 錯誤校).所以當硬碟越來越大時 Block size 卻還是相對的小會造成空間的浪費,而所謂的 Advanced Format(AF) 就將 Block size 由 512 bytes 提升為 4096 bytes.

http://en.wikipedia.org/wiki/Advanced_Format 

http://www.wdc.com/wdproducts/library/WhitePapers/CHT/2579-771430.pdf

2 個網友的想法 “Hard Drive – Sector size 512 / 520 bytes

  1. 怎麼知道520 bytes?
    但是通常使用在 Storage 的儲存裝置上會使用 520 bytes 大小的 Sector size。
    這是從哪邊得知,我用很多儲存裝置,沒仔細去看過Sector size,更不知道Sector size怎麼去看。

    • 要看 sector size 只要使用 fdisk -l ,如果你的硬碟格式是 512 bytes 系統會正確的顯示出來.Linux 無法處理 sector size 為 520 bytes.這時我們可以透過指令 #dmesg 來看.

      [root@benjr ~]# fdisk -l
      Disk /dev/sda: 146.8 GB, 146814976000 bytes
      255 heads, 63 sectors/track, 17849 cylinders
      Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot      Start         End      Blocks   Id  System
      /dev/sda1   *           1          13      104391   83  Linux
      /dev/sda2              14       17849   143267670   8e  Linux LVM
      

      一般的 storage 所指派給 initiator 端硬碟都是已經過 Target 端處理過所以看到都是  512 bytes  大小的.如果是用 JBOD 就有可能會看到 sector size 為 520 bytes 大小的.

發表迴響