home products tech support contact us

 Linux 技術支援    ⇒   基礎篇    進階篇    補腦篇    指令索引    中⇒ENG
版權所有, 引用請註明出處

先進格式化硬碟

1.0 先進格式化硬碟
       512e 模擬傳統格式硬碟
       4Kn 原生 4K 磁區硬碟
       先進格式化硬碟的 partition 對齊
       識別先進格式化硬碟
1.1 分割先進格式化硬碟
           parted 自動對齊分割
           手動 parted 對齊分割
           用 Windows 分割 partition


  1.0 先進格式化硬碟
有次工作用的 Windows 7 硬碟運轉時一直嘎嘎作響好像快掛了,為了安心買了顆新硬碟用 Norton GHOST 把舊硬碟的資料複製到新硬碟,原是簡單的工作想不到是惡夢的開始。

新硬碟跑起來比烏龜還慢,怎可能新硬碟會是石器時代的速度?龜速的 PC 害的我要天天加班才能完成工作,再加上為了調查硬碟龜速的原因一連幾天沒睡飽。

經好幾天的調查才發現目前買的硬碟大多為〝先進格式化硬碟〞(Advanced Format , AF)。 partition 如沒對齊先進格式化硬碟的物理磁區(Physical Sector)會嚴重拖累硬碟的效能,Windows 會遇到先進格式化硬碟的 Partition 對齊問題,同理 Linux 也會。

〝先進格式化硬碟〞可在相同的磁片密度和不增加硬體成本下增加硬碟約 10% 的容量,在 2011 年開始有部分硬碟廠商嘗試性的推出先進格式化硬碟,因加量不加價故 2014 以後買到的硬碟應都是先進格式化硬碟。 (至於 SSD;根據我測試手上現有的幾顆 SSD,有些是Advanced Format,有些不是,可能 SSD 是否為 Advanced Format 對成本沒什影響)。

雖先進格式化硬碟有容量上的優勢,但如不知所以然 partition 亂規劃可會大大影響硬碟的速度,了解先進格式化硬碟之前要先了解傳統格式的硬碟。

傳統格式的硬碟一個磁區(sector)為 512 Byte + 50 Byte 左右的校正碼( ECC,Error Correcting Code )如下圖

hd 512k sector
注意觀察傳統格式的硬碟會發現一個磁區 512 Byte 約有 8% 浪費在 ECC,於是就有人想到把磁區加大,但相對的 ECC 的增加有限可更有效的利用磁碟空間。

先進格式化的硬碟一個磁區不再局限 512 Byte,而定義出 1K/2K 和 4K磁區的先進化格式,但目前三大主流的 filesystem 如 Linux 的 ext3/ext4,Windows 的 NTFS 和 Apple 的 HFS Plus 一個 cluster 或 block 皆預設為 4K,所以如一個磁區也是 4K 剛好可填滿和最有效率,所以先進格式化的硬碟演化到最後只有 4K 磁區的格式。

以 4K (4096 Byte) sector 的先進格式化硬碟為例,如下圖所示一個磁區為 4K+ 100 Byte 的 ECC 光用〝 看 〞的就知道比傳統 512 Byte 一個磁區的硬碟更能有效利用空間。

adf hd 4k sector

^ back on top ^


  1.1 分割先進格式化硬碟
分割先進格式化硬碟是讓 partition 的起始 sector 對齊先進格式化硬碟的 4k Physical Sector, 特別是 512e 的硬碟,因如分割不當不但影響速度甚至會導致硬碟早衰。

Linux parted 對分割先進格式化硬碟比 fdisk 有更好的支援,但 Linux Kernel < v2.6.31 無法識別先進格式化硬碟,如 Linux Kernel 版本≧ 2.6.31 且 parted 版本 ≧2.1 ,不但可正確識別先進格式化硬碟,分割 partition 時也會自動對齊。

識別 Linux Kernel 和 parted 版本可如下:

# uname -r ←識別 Kernel 版本
# parted -v ←識別 parted 版本

常用會自動對齊先進格式化硬碟的工具和版本如下:
Kernel ≧2.6.31
partition parted ≧2.1
RAID mdadm ≧2.15
LVM lvm2 ≧2.15

被 Microsoft 安樂死的 Windows XP 和較早版本的 Linux (Kernel < 2.6.31),分割 partition 時無法自動對齊先進格式化硬碟,如有使用者用這些古董 OS 又老覺得硬碟跑起來很慢,可要好好檢查看看。

解決方法為用有支援先進格式化硬碟的 Linux 版本用 parted 自動對齊分割手動 parted 對齊分割 或用 Winodws Vista 以上版本來 Windows 分割 partition ,分割好 partition 後再來安裝這些古董級的 OS。


^ back on top ^




[註1.0] 參考來源 http://support.microsoft.com/kb/2510009

[註1.1] 可參考 redhat 有關 parted 自動對齊說明 http://people.redhat.com/msnitzer/docs/io-limits.txt

[註1.1a] 參考來源:Vista's New Partitioning Rules http://www.multibooters.co.uk/partitions.html