16.10. ネットワーク、メモリ、そしてファイルベースのファイルシステム
戻る | 第16章 ストレージ | 次へ

## 16.10. ネットワーク、メモリ、そしてファイルベースのファイルシステム

再構成および追記: Fonvieille Marc [FAMILY Given].

FreeBSD にはフロッピーや CD, ハードディスクなどの手元の計算機に取り付けたディスクの他に、 別の形態のディスク、仮想ディスク、もあります。

これには、Network File System のようなネットワークファイルシステムや Coda, メモリベースのファイルシステムおよびファイルベースのファイルシステムがあります。

稼働させている FreeBSD のバージョンによって、 ファイルベースおよびメモリベースのファイルシステムを作成したり操作するために、異なるツールを使用しなければならないでしょう。

### 注記:

FreeBSD 4.X の使用者は必要なデバイスを作成するために MAKEDEV(8) を使用しなければならないでしょう。FreeBSD 5.0 以降では、devfs(5) がデバイスノードを自動的に割り当ててくれるので、 使用者が意識する必要はありません。

### 16.10.1. FreeBSD 4.X でファイル中に構築されるファイルシステム

vnconfig(8) ユーティリティを使えば擬似ディスクデバイスを設定し、 有効にすることができます。 vnode とはファイルの内部的な表現方法であり、 ファイルに関する操作の中心となるものです。つまり、vnconfig(8) はファイルシステムを生成したり操作したりするためにファイルを用いるのです。 一つ例を挙げると、 ファイルに収められたフロッピーや CD-ROM のイメージをマウントするために用いることができます。

vnconfig(8) を使用するためには、 カーネルが vn(4) デバイスに対応している必要があります。 そうでなければ、カーネルコンフィギュレーションファイルに 次の行を追加してカーネルを再構築し、システムを再起動してください。

pseudo-device vn

既にあるファイルシステムイメージのマウント

例16.4 FreeBSD 4.X での vnconfig を用いた既存のファイルシステムイメージのマウント
`#` `vnconfig vn`0` `diskimage`` `#` `mount /dev/vn`0`c `/mnt``

vnconfig(8) を用いたファイルシステムイメージの新規作成

例16.5 `vnconfig` を用いたファイルベースディスクの新規作成
`#` `dd if=/dev/zero of=`newimage` bs=1k count=`5`k` 5120+0 records in 5120+0 records out `#` `vnconfig -s labels -c vn`0` `newimage`` `#` `disklabel -r -w vn`0` auto` `#` `newfs vn`0`c` Warning: 2048 sector(s) in last cylinder unallocated /dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) super-block backups (for fsck -b #) at: 32 `#` `mount /dev/vn`0`c `/mnt`` `#` `df `/mnt`` Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/vn0c 4927 1 4532 0% /mnt

### 16.10.2. FreeBSD 5.X でファイル中に構築されるファイルシステム

mdconfig(8) ユーティリティは FreeBSD 5.X において メモリディスク (md(4)) を設定し、有効にするために使用されます。 mdconfig(8) を使用するためには md(4) モジュールを読み込むか、 カーネルコンフィギュレーションファイルに md(4) デバイスを追加してカーネルを再構築し、システムを再起動してください。

device md

mdconfig(8) コマンドは、 三つのタイプのメモリベース仮想ディスクに対応しています。 malloc(9) を用いて割り当てられたメモリディスク、 ファイルをベースにしたメモリディスク、 およびスワップ領域をベースにしたメモリディスクです。 想定される使用法は、ファイル内に保持されたフロッピーイメージまたは CD イメージをマウントすることです。

既にあるファイルシステムイメージのマウント

例16.6 FreeBSD 5.X での `mdconfig` を用いた既存のファイルシステムイメージのマウント
`#` `mdconfig -a -t vnode -f `diskimage` -u `0`` `#` `mount /dev/md`0`c `/mnt``

mdconfig(8) を用いたファイルシステムイメージの新規作成

例16.7 `mdconfig` を用いたファイルシステムイメージの新規作成
`#` `dd if=/dev/zero of=`newimage` bs=1k count=`5`k` 5120+0 records in 5120+0 records out `#` `mdconfig -a -t vnode -f `newimage` -u `0`` `#` `disklabel -r -w md`0` auto` `#` `newfs md`0`c` /dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 `#` `mount /dev/md`0`c `/mnt`` `#` `df `/mnt`` Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4846 2 4458 0% /mnt

`-u` オプションを用いて ユニット番号を指定しない場合、mdconfig(8) は未使用のデバイスを自動的に選択するために md(4) デバイスの auto-unit 機能を使用します。 割り当てられたユニットの名前は `md4` のように標準出力に出力されます。mdconfig(8) の詳細についてはマニュアルページを参照してください。

### 注記:

FreeBSD 5.1-RELEASE から、従来の disklabel(8) プログラムは bsdlabel(8) ユーティリティに置き換えられました。bsdlabel(8) では、 使用されていないオプションおよびパラメタの数多くが削除されました。 たとえば `-r` オプションは bsdlabel(8) では取り除かれました。詳細については bsdlabel(8) マニュアルページを参照してください。

mdconfig(8) ユーティリティは大変役に立ちますが、 ファイルベースのファイルシステムを作成するために、 多くのコマンドの入力が必要となります。FreeBSD 5.0 では mdmfs(8) と呼ばれるツールも用意されています。このプログラムは mdconfig(8) を用いて md(4) ディスクを設定し、newfs(8) を用いて UFS ファイルシステムを作成し、mount(8) を用いてマウントします。たとえば、上記と同じファイルシステムを作成し、 マウントしたい場合は、下記のように入力するだけです。

例16.8 `mdmfs` を用いたファイルベースディスクの設定とマウント
`#` `dd if=/dev/zero of=`newimage` bs=1k count=`5`k` 5120+0 records in 5120+0 records out `#` `mdmfs -F `newimage` -s `5`m md`0` `/mnt`` `#` `df `/mnt`` Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0 4846 2 4458 0% /mnt

ユニット番号を指定せずに `md` オプションを使用した場合、mdmfs(8) は未使用のデバイスを自動的に選択するために md(4) デバイスの auto-unit 機能を使用します。mdmfs(8) についての詳細はマニュアルページを参照してください。

### 16.10.3. FreeBSD 4.X でのメモリベースのファイルシステム

md(4) ドライバは FreeBSD 4.X においてメモリファイルシステムを作成するために単純で効果的な手段です。 メモリを割り当てるために malloc(9) 関数が使用されます。

vnconfig(8) を用いて作成したファイルシステムを例に取ると、 以下のようにします。

例16.9 FreeBSD 4.X での md メモリディスク
`#` `dd if=`newimage` of=/dev/md`0`` 5120+0 records in 5120+0 records out `#` `mount /dev/md`0c` `/mnt`` `#` `df `/mnt`` Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4927 1 4532 0% /mnt

詳細については md(4) マニュアルページを参照してください。

### 16.10.4. FreeBSD 5.X でのメモリベースのファイルシステム

メモリベースおよびファイルベースのファイルシステムに対しても 同じツール (mdconfig(8) または mdmfs(8)) を使用できます。 メモリベースのファイルシステムに対する記憶領域は malloc(9) 関数を用いて割り当てられます。

例16.10 `mdconfig` を用いたメモリベースディスクの新規作成
`#` `mdconfig -a -t malloc -s `5`m -u `1`` `#` `newfs -U md`1`` /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. with soft updates super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 `#` `mount /dev/md`1` `/mnt`` `#` `df `/mnt`` Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4846 2 4458 0% /mnt
例16.11 `mdmfs` を用いたメモリベースディスクの新規作成
`#` `mdmfs -M -s `5`m md`2` `/mnt`` `#` `df `/mnt`` Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt

mdconfig(8) のコマンドラインの `malloc` を `swap` に置き換えることで、malloc(9) 関数によるファイルシステムを使用する代わりに スワップ領域を使用することが可能です。デフォルトでは mdmfs(8) ユーティリティはスワップベースのディスクを作成します (`-M` なし)。詳細は mdconfig(8) および mdmfs(8) マニュアルページを参照してください。

### 16.10.5. システムからメモリディスクを切り離す

メモリベースまたはファイルベースのファイルシステムが使用されていない場合、 すべてのリソースをシステムに開放するべきです。 はじめにファイルシステムをアンマウントします。 次にシステムからディスクを切り離し、リソースを開放するために mdconfig(8) を使用します。

たとえば `/dev/md4` によって使用されたすべてのリソースを切り離し、開放するには以下のようにします。

`#` `mdconfig -d -u `4``

`mdconfig -l` コマンドを使用することによって、 設定された md(4) デバイスについての情報を表示することが可能です。

FreeBSD 4.X では vnconfig(8) はデバイスを切り離すのに使用されます。たとえば `/dev/vn4` によって使用されたすべてのリソースを切り離し、開放するには以下のようにします。

`#` `vnconfig -u vn`4``

戻る | 上に戻る | 次へ
16.9. バックアップの基本 | ホーム | 16.11. ファイルシステムのスナップショット

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。