2TBのHDDをサーバからぶっこ抜いて別サーバに接続、fdiskでパーティションを作成後に mke2fs でフォーマットをかけようとしたら下記のようなエラーが表示されてフォーマットできませんでした。
# mke2fs -j /dev/sdb1 mke2fs 1.41.12 (17-May-2010) /dev/sdb1 is apparently in use by the system; will not make a filesystem here!
原因は、元々別サーバでRAID構成にて利用してたので、RAID情報が残ってしまい消えていなかったからのようです。 というわけでHDDに残ったRAID情報を削除して再利用できるようにします。
まずは dmraid で削除できるか試してみます。
# dmraid -r -E /dev/sdb no raid disks and with names: "/dev/sdb"
ダメでした orz….
そこで今度はRAID情報の残っているブロックを上書きで消しこんでやります。
ddコマンドで書き込み。
# dd if=/dev/zero of=/dev/sdb bs=512 count=2 2+0 records in 2+0 records out 1024 bytes (1.0 kB) copied, 5.0923e-05 s, 20.1 MB/s
続いてパーティションのサイズを (ブロック単位で) 標準出力に表示します。出力された値をメモっておきます。
# fdisk -s /dev/sdb 1953514584
改めてddコマンドで書き込みします。先ほどメモった値から20引いた値をseek値に指定してください。
# dd if=/dev/zero of=/dev/sdb seek=1953514564 bs=1k dd: writing `/dev/sdb': デバイスに空き領域がありません 21+0 records in 20+0 records out 20480 bytes (20 kB) copied, 0.00256153 s, 8.0 MB/s
これで完了です。
改めてfdiskでパーティションを作成し、mke2fsでフォーマットするとできるようになっているはずです。 ちなみにmke2fsをする前にサーバの再起動をお忘れなく‥。(外付けHDDの場合は取り外し、取り付けでもOK)