[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

設定: 2TB を超えるファイルシステムを作る

本節では、 NetBSD で 2TB を超える大きさのハードディスクの扱い方を解説します。

Important: 歴史的に、ハードディスクの基本単位は 1 セクタ 512 バイトです。 このため 2TB を超えるハードディスクを認識できません。 これは従来の MBR (master boot record) や伝統的な disklabel が 32 ビット表現を前提としているためです。

回避するためには、 gpt コマンドと dkctl コマンドをもちいて /dev/dk を作る必要があります。 ここで gpt は GPT (GUID partition table)を設定するツールです。 dk(4) は NetBSD 3.0 で導入された Disk partition (wedge) driver のことです。

なお、この地雷は地雷で勉強になるので、 ためしに強引に HDD に設定を書き込んでみるのも面白いでしょう。 3.5TB のはずなのに 1.5TB などと表示されたり、やたらに警告が出るはずです。

変なことがおきましたか?では、セクタ番号を計算してみましょう。

1.5TB のセクタ数 = 3.5TBのセクタ数 - 2^32

問題例: 2982219648 と 7277186944 の差は?
になっていませんか?

STEP1: GPT の作成

2TB 超えの DISK の場合は、そのまま wd0 などと読みかえてください。

現状では 2TB の HDD がもっともコストパフォーマンスがよいため、 まだまだ RAID を使うでしょう。 というわけで、 RAID 0 のデバイス /dev/raid7 を作ったという前提で話をすすめます。

# raidctl -C /etc/raid7.conf raid7
# raidctl -I 20110910 raid7
# raidctl -iv raid7
RAID 設定の詳細は、次の節を参照してください: [ RAID1 ] [ RAID0 ] [ RAID5 ] [ RAID1+0 ]。

GPT を作ります。

# gpt create raid7
# gpt add -b 128 raid7
gpt add を実行すると、dkctl コマンドの例が表示されます。 セクタ番号は、ここで表示されたものを使います。 ちゃんとメモっておいてください。
実行例

# gpt create raid7
# gpt add -b 128 raid7
Partition added, use:
	dkctl rraid7d addwedge dk<N> 128 7277187039 <type>
to create a wedge for it

Caution

gpt の表示する見本では rraid7d ですが、実際には raid7 と入力してください。 たぶんバグです。

STEP2: DK の作成

dkctl コマンドで /dev/dk0 を作成します。 セクタ番号は gpt add の際に表示された値です。

# dkctl raid7 addwedge dk0 128 7277187039 4.2BSD
これで /dev/dk0 が作成されました。

dk0 作成後は FFSv2 で newfs です。 -I オプションは「普通の disklabel がないけど無視する」という意味です。 -b64k がファイルシステムのブロックサイズを変更する指示になっています。

# newfs -O2 -b64k -I dk0

これで /dev/dk0 が作成されました。 FFS とは自動認識されないので、操作には少し注意が必要です。

DK の確認

マウントできるか、ためしてみましょう。

# mount_ffs /dev/dk0 /mnt
うまくマウントできたら、/etc/fstab にも書いておきましょうね。

dkctl に wedges のリストを表示させる。

dkctl raid7 listwedges

GPT の情報を表示させる。

gpt show raid7

DK の削除

当然ながら、逆順に DK , GPT, RAID 設定を削除していきます。

dkctl raid7 delwedge dk0

GPT の削除

gpt remove -b 128 raid7
gpt destroy raid7

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >