[目標] ・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 から使われている。