ハードディスクの物理フォーマットとはどのようなフォーマット何でしょうか。
簡潔にいうと,HDDコントローラがトラックとセクタを書き込んでいく作業だと考えればよいでしょう。物理フォーマットが行われていないHDDにデータを書き込むことはできません。
DOS/Windowsの初期化(FORMAT.COM)は,OSがHDDを使うための情報,具体的にはFATを作成する作業で,「論理フォーマット」と呼ばれます。論理フォーマットは,物理フォーマットがなされて,初めて行うことができます。
●物理フォーマット実行時に行われること
磁気ディスクに作られるトラックは,HDDにデータを記録する単位であるセクタや,セクタの開始位置を示すセクタインデックスから構成されます。さらに,1個のセクタは,そのセクタの位置を示すセクタID,データが格納されるデータフィールド,セクタギャップなどの情報で構成されます。物理フォーマットは,これらの情報を磁気ディスクに書き込む作業であると考えればいいでしょう。
また,物理フォーマッタによっては,物理フォーマット中に欠陥セクタを見つけると,その代替セクタを作成する作業を行うものもあります。
したがって,「以前は」物理フォーマットを行うことで,欠陥セクタを修復して不調をきたしたHDDを復活させることができるなどの利点がありました。しかし,現在では,やみくもに物理フォーマットを行うとトラブルの元になるとされています。その理由をATAとSCSIの場合で簡単に解説しておきましょう。
●ATAの場合
PCによっては,BIOSセットアップでATA-HDDに物理フォーマットを行うことができるものがあります。しかし,現在のHDDに,この機能を使って物理フォーマットを行うことはお勧めできません。
その理由はBIOSが前提にしているHDDと,現在のHDDが大きく異なっているためです。IBM PC/AT標準のBIOSでは,HDDを物理的なジオメトリ,つまり,シリンダ数,トラック当たりのセクタ数,ヘッド数で扱います。例えばデータを書き込むとき,ディスクにおける物理的な位置を「X番目のヘッドでXXXXトラックのYYYセクタ」という具合に指定していたわけです。
ジオメトリ情報とはHDDの物理的な仕様,すなわち,ドライブに封入されているディスクの枚数,ディスクに描くトラック数,そして1トラック当たりのセクタ数を表しています。しかし,現在のHDDは,このようなジオメトリで表現できる物理的な構造を持ちません。その理由はHDDの容量を稼ぐために,ディスク外周と内周で,セクタ/トラック数が異なるフォーマットを用いているからです。
そこで,現在のBIOSではHDDに対して二つのアクセス方法をサポートしています。一つは,従来どおりのジオメトリでHDDをコントロールする方法,これをNormalまたはCHSと呼んでいます。この場合,PC側のATAインタフェースはHDDのコントローラに対して従来どおりジオメトリを送り,HDD側では指定されたジオメトリを内部のジオメトリに変換します。
もう一つは,論理ブロックを利用する方法で(LBA:Logical Block Accessと呼ばれる),ATAインタフェースでは旧来のジオメトリを用いず,HDDに対して論理ブロック番号を使用します。PC上のソフトウェアが旧来のジオメトリを使用した場合は,PCのBIOSがそれを論理ブロック番号に変換してHDDに送るようになっています。
このように,ATAドライブはPCの古い規格と互換性を持つものの,かなり変質しています。BIOSで物理フォーマットを行わないほうがよいとされているのは,以上のような理由のためです。
ついでですので,HDDに対するBIOSパラメータで現在は使用されていない項目を紹介しておきましょう。
・Write Pre-Compensation
磁気メディアは,書き込むときの電流ピーク位置に対して,読み出したときの電圧ピーク位置が若干遅れるという特性があります。その遅れを補正するために,HDDは書き込み電流のピーク位置をずらしています。古いドライブでは,補正幅を調節するためのシリンダ番号を明示的に指定する必要がありましたが,現在のATAドライブでは,補正をコントローラ内のファームウェアが行い,書き込み補正を行うシリンダも内部で決定しています。したがって,BIOSパラメータにあるWrite Pre-Compensation(書き込み電流補正)は無意味になっているわけです。
・Landing Zone(ランディングゾーン)
BIOSにあるこの項目は,HDD停止時にヘッドが着陸するランディングゾーンのシリンダ番号を指定する項目ですが,これもATAドライブではファームウェアがヘッドランディングを行うため,BIOSのパラメータは無意味になっています。
さて,では現在のATAドライブを物理フォーマットしたい場合は,どうすればいいのでしょうか。HDDメーカーによっては,ドライブごとにDOS上の物理フォーマッタを用意している場合があります。それらをネットワークのサービスサイトからダウンロードして利用するのが確実でしょう。ただし,現在のATAドライブで物理フォーマットが必要になるケースは,ほとんどないと思われます。
●SCSIの場合
ここまではATAの話でしたが,SCSIの場合は若干事情が違います。
SCSIの場合も,論理ブロック番号からジオメトリへの変換が行われますが,その作業はSCSIカードが行っています。SCSIカードによっては,ほかのカードと変換の方法が異なるものがあります。例えば,SYMBIOS LOGICのLSIを用いたカードはアダプテックのカードとジオメトリ変換の互換性がありません。そのような場合,他方のカードで物理フォーマットを行ったHDDを,一方のカードで使用することができないか,使用できても不具合が起こる可能性があります。また,大部分のSCSIドライブは出荷のときに物理フォーマットが行われていますが,その物理フォーマットがユーザーの使用するSCSIカードと互換性のない場合もあります。
したがって,購入したばかりのSCSI対応HDDは使用する環境で念のため物理フォーマットしたほうがよいでしょう。SCSIドライブBIOSのメニューや,カードに添付されているSCSIユーティリティで物理フォーマットを行うことができます。機能はカードによって異なり,例えば物理フォーマットと同時にセクタの代替処理が行われるものや,ベリファイオプションを指定したときのみ代替処理が行われるものなどがありますから,物理フォーマットを行うときにはカードの説明書をよく読んでから行うようにしてください。
最後に念のため。物理フォーマットはHDDの全データを完璧に消去します。SCSI,ATAにかかわらず,物理フォーマットを行う前に,データのバックアップを必ず行うようにしてください。また,物理フォーマットは自己責任で行うようにしましょう。
(米田 聡)