Advanced Format

From ArchWiki
Revision as of 19:27, 28 March 2011 by MkFly (Talk | contribs)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Introduction

The 'advanced format' feature reduces overhead by using 4 kilobyte sectors instead of the traditional 512 byte sectors. The old format gave a format efficiency of 87%. Advanced Format results in a format efficiency of 96% which increases space by up to 11%. The 4k sector is slated to become the next standard for HDDs by 2014.

More Detailed Explanation

The main idea behind using 4096-byte sectors is to increase the bit density on each track by reducing the number of gaps which hold Sync/DAM and ECC (Error Correction Code) information between data sectors. For eight 512-byte sectors, the track also holds eight sector gaps.

By having one single sector of size 4096-byte (8 x 512-byte), the track holds only 1 sector gap for each data sector thus reducing an overhead for a need to support multiple Sync/DAM and ECC blocks and at the same time increasing bit density.

Linux partitioning tools by default start each partition on sector 63 which leads to a bad performance in HDDs that use this 4K sector size due to misalignment to 4K sector from the beginning of the track.

External Links

Current HDD Models that Employ a 4k Sectors

As of July/2010, there are a limited number of HDDs that support "Advanced Format" or 4k sectors as shown below:

Manufacturer Model Capacity
3.5"
Western Digital WD30EZRSDTL 3.0 TB
Western Digital WD25EZRSDTL 2.5 TB
Samsung HD204UI 2.0 TB
Western Digital WD20EARS 2.0 TB
Western Digital WD15EARS 1.5 TB
Western Digital WD10EARS/WD10EURS 1.0 TB
Western Digital WD8000AARS 800.0 GB
Western Digital WD6400AARS 640.0 GB
2.5"
Western Digital WD10TPVT 1.0 TB
Western Digital WD7500BPVT/WD7500KPVT 750.0 GB
Western Digital WD6400BPVT 640.0 GB
Western Digital WD5000BPVT 500.0 GB
Western Digital WD3200BPVT 320.0 GB
Western Digital WD2500BPVT 250.0 GB
Western Digital WD1600BPVT 160.0 GB
Note: Readers are encouraged to add to this table.

Aligning Partitions

Check your partitions alignement

# fdisk -lu /dev/sda
...
# Device     Boot      Start   End         Blocks      Id System
# /dev/sda1            2048    46876671    23437312    7  HPFS/NTFS

2048 (default since fdisk 2.17.2) means that your HDD is aligned correctly. Any other value divisible by 8 is good as well.

GPT (Recommended)

When using GPT partition tables, one need only use gdisk to create partitions which are aligned by default. For an example, see SSD#Detailed_Usage_Example.

MBR (Not Recommended)

One can employ fdisk to align partitions to sector 2048 which will ensure that the partitions are aligned to the 4k sector. Interestingly, in sector mode, the default starting point is not 63 or 64 but 2048 in the current version of fdisk (2.17.2) so it's automatically taking care of the 4k sector size!

# fdisk -c -u /dev/sda

Special Consideration for WD Green HDDs

FYI - this section has nothing to do with Advanced Format technology, but this is an appropriate location to share it with users. The WD20EARS (and other sizes include 1.0 and 1.5 TB driver in the series) will attempt to park the read heads once every 8 seconds FOR THE LIFE OF THE HDD which is just horrible! Use hdparm in Template:Filename to disable this 'feature' and likely add life to your hdd:

# echo "hdparm -S 242 /dev/sdX" > /etc/rc.local

Alternatively, the following bash script can accomplish this automatically:

#!/bin/bash
for DISK in `fdisk -l |grep [12]000.4 | cut -c13-13`
do echo hdparm -S 242 /dev/sd$DISK
done