2008年10月14日火曜日

邪魔なソフトウェアRAIDのシグネチャを消去する

ML110 G5 の Serial ATA ソフトウェア RAID など、 Linux dmraid で認識できる RAID を設定すると、たとえ BIOS レベルで RAID を削除しても dmraid がシグネチャを検出してしまい、 OS インストール時に支障が出ることがあります。

いちばんてっとりばやいのはディスクを /dev/zero で埋めてシグネチャを消してしまうことですが、これには時間がかかります。 シグネチャがディスクの終端にあることがわかっていれば、以下の方法でほぼピンポイントで dd をかければ解決です。

まず、ディスクの正確なサイズを調べておきます。

# fdisk /dev/sda

このディスクのシリンダ数は 19457 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

...

ディスクのセクタサイズは 512 バイトですので、160041885696÷512=31251808セクタ存在することがわかります。このディスクの終わりの部分だけを削除するには、以下のとおりコマンドを入力すると

dd if=/dev/zero of=/dev/sda bs=512 seek=31258100
dd if=/dev/zero of=/dev/sdb bs=512 seek=31258100

とすれば、3125100~31258107セクタの8セクタが/dev/zeroで塗りつぶされ、dmraidが勘違いするシグネチャを葬り去ることができます。

この操作は Anaconda をインストーラとして利用する Red Hat 系のディストリビューションであれば、インストール作業中の仮想コンソールから行えます。ただし、 dmraid の認識を解除するためには、作業後に一度インストーラをリブートする必要があります。





0 件のコメント:

コメントを投稿