WD20EARS 設定メモ for Linux

(

)

by

in
[目標]
・AFT (物理セクタが 4096byte)と論理セクタ(512byte)のバウンダリを合わせる。
[初期状態の確認]
・デフォルトジオメトリ
# fdisk -l <device> で見ると
Disk /dev/sdd: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
ディスク /dev/sdd は正常な領域テーブルを含んでいません
この場合、何も考えずにパーティションを切ると、
 開始セクタが 63 となる
・このままだと、物理セクタと論理セクタがずれる。 
[変更作業]
・ジオメトリを変更
# fdisk -H 224 -S 56 <device>
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。
このディスクのシリンダ数は 311465 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります
コマンド (m でヘルプ): n
コマンドアクション
e   拡張
p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-311465, default 1): 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-311465, default 311465):
Using default value 311465
コマンド (m でヘルプ): p
Disk <device>: 2000.3 GB, 2000398934016 bytes
224 heads, 56 sectors/track, 311465 cylinders
Units = シリンダ数 of 12544 * 512 = 6422528 bytes
デバイス Boot      Start         End      Blocks   Id  System
<device>1           1      311465  1953508452   83  Linux
コマンド (m でヘルプ): w
# fdisk -l <device> で見ると
Disk <device>: 2000.3 GB, 2000398934016 bytes
224 heads, 56 sectors/track, 311465 cylinders
Units = シリンダ数 of 12544 * 512 = 6422528 bytes
# fdisk -lu <device> で見ると
Disk <device>: 2000.3 GB, 2000398934016 bytes
224 heads, 56 sectors/track, 311465 cylinders, total 3907029168 sectors
Units = セクタ数 of 1 * 512 = 512 bytes
* 容量が4MB程減った。まあ2TBあるので誤差の範囲
・後は普通にパーティションを切れば良い。
[変更後の確認]
・パーティションを切った後の fdisk -l <device>
 例)
 Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
 224 heads, 56 sectors/track, 311465 cylinders
 Units = シリンダ数 of 12544 * 512 = 6422528 bytes
 デバイス Boot      Start         End      Blocks   Id  System
 /dev/sda1               1         320     2007012   83  Linux
 /dev/sda2             321      311465  1951501440   fd  Linux raid 自動検出
・ちなみに、同じディスクを fdisk -l -u <device> で見ると以下の通り。
 ( -u オプションは、Unit をセクタ(512byte)単位としてで表示)
 例)
 Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
 224 heads, 56 sectors/track, 311465 cylinders, total 3907029168 sectors
 Units = セクタ数 of 1 * 512 = 512 bytes
 デバイス Boot      Start         End      Blocks   Id  System
 /dev/sda1              56     4014079     2007012   83  Linux
 /dev/sda2         4014080  3907016959  1951501440   fd  Linux raid 自動検出
・fdisk <device> で fdisk のコマンドプロンプトを出し、
x (エキスパートモード) にしてから、
 上級者コマンドプロンプトで p (領域テーブルを表示) すると
各パーティションは、ちゃんと セクタ1 から始まってますね。
 例)
 Disk /dev/sda: 224 heads, 56 sectors, 311465 cylinders
 Nr AF  Hd Sec  Cyl  Hd Sec  Cyl     Start      Size ID
 1 00   1   1    0 223  56  319         56    4014024 83
 2 00   0   1  320 223  56 1023    4014080 3903002880 fd
 3 00   0   0    0   0   0    0          0          0 00
 4 00   0   0    0   0   0    0          0          0 00
** シリンダ、ヘッドは 0 から、セクタは 1 から番号付けされる。
 *** 一番先頭のセクタ(シリンダ 0、ヘッド 0、セクタ 1)はマスターブートレコード (MBR)
   があるので、シリンダ 0, ヘッド 0 の領域をスキップして、シリンダ 0, ヘッド 1
   から使われている。