diff --git a/ja_JP.eucJP/books/handbook/disks/chapter.sgml b/ja_JP.eucJP/books/handbook/disks/chapter.sgml index 98bb97f3b5..7ba121af48 100644 --- a/ja_JP.eucJP/books/handbook/disks/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/disks/chapter.sgml @@ -2,132 +2,58 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: 1.27 + Original revision: 1.187 $FreeBSD$ --> - ディスク + ストレージ この章では - この章では、FreeBSD - 上でどのようにして物理的なディスクやメモリディスク、 - もしくはネットワークに接続されたディスクを使うのか、 - ということを解説します。 - + この章では、FreeBSD におけるディスクの使用方法を説明します。 + これにはメモリディスク、ネットワークに接続されたディスク、 + および標準的な SCSI/IDE 記憶デバイスが含まれます。 - - BIOS ドライブの番号付け + この章では、以下の分野について説明します。 - FreeBSD をインストールして設定する前に、 - 特に複数のハードディスクを持っているならば気をつけておかなければならない重要なことがあります。 - - DOS が動いている PC や WINxxx のような BIOS - 依存のオペレーティングシステムでは、BIOS - がディスクドライブの順序を構成し、OS はその変化に追従します。これにより、 - ユーザはいわゆる プライマリーマスター - 以外のディスクから起動することができます。 - この仕組みを用いればシステムのバックアップを取る最も簡単で安価な方法を構築できます。もう一つ同じディスクを買い、 - Ghost や XCOPY を用いて一つ目のディスクから二つめのディスクへのコピーを定期的に取ればいいのです。そして、一つ目のディスクに障害が起きた時には、 - BIOS に対してドライブを論理的に交換するように指示することで簡単に復旧できるのです。この方法はドライブのケーブルを交換するのと同じようなことなのですが、 - ケースを開ける必要がありません。 - - SCSI コントローラを備えたもっと高価なシステムでは、しばしば BIOS - に拡張が施されており同じように 7 - 台までのドライブの順番を組み換えることができるようになっています。 - - 以上のような機能を便利に使っているユーザは、FreeBSD - では同じような結果にならないことに驚くかもしれません。FreeBSD は BIOS - を利用しないため、論理 BIOS ドライブマッピング - については知らないのです。このため、 - 特にいくつかのドライブが同じジオメトリを持っている時に、 - そしてまたあるものをもう一つのクローンとして使っている時に非常にややこしい状況になり得ます。 - - FreeBSD を使う時は、 - インストール前にドライブの番号付けが自然なものになるように、 - BIOS の設定を忘れずに戻しておきましょう。 - もしドライブの番号付けを変更する必要がある場合には、 - そうすればいいのですが、 - ハードウェア的にケースを開けジャンパーやケーブルを移動しましょう。 - - - Bill と Fred のイケイケ冒険記 - - Bill は Fred のためにもう一つ FreeBSD 箱を作ろうと古い Wintel - 箱を潰しました。Bill は ユニット番号 0 の SCSI ドライブを一つ追加し、 - そこに FreeBSD を入れました - - Fred はこのシステムを使い始めましたが、数日後その古い SCSI - ドライブがたくさんのソフトエラーを吐いているのに気付き、 - Bill に報告しました。 - - さらに数日後、Bill はその問題に対処しようと決意し、 - 倉庫のディスクドライブアーカイブから同じ SCSI ドライブを取ってきました。 - まずドライブのサーフィススキャンを行なってみましたが特に問題なかったため、 - Bill はこのドライブをユニット番号 4 として付け、ドライブ 0 からドライブ - 4 へのイメージコピーを行ないました。新しいドライブがインストールされ、 - しかもうまく動いているため、 - Bill はそれを使い始めてもいいだろうと思いました。 - そこで彼は SCSI BIOS の機能を使ってシステムがユニット 4 - から起動するようにディスクドライブの順序を入れ換えました。 - FreeBSD が起動し、調子良く動き始めました。 - - Fred は数日作業を続けましたが、すぐに Bill と Fred - は新しい冒険に挑戦することにしました。 - 新しいバージョンの FreeBSD にアップグレードするのです。 - Bill は SCSI ユニット 0 のディスクは当てにならないので取りはずし、 - アーカイブから持ってきた別の新しいドライブと交換しました。 - そして、新しいバージョンの FreeBSD を、 Fred - の持っていた魔法のインターネット FTP フロッピーを用いて新しい - SCSI ユニット 0 にインストールしたのです。 - インストールはうまくいきました。 - - Fred は新しいバージョンの FreeBSD を数日使ってみて、 - 技術部門でも使えるくらい十分に良いものだと確認しました。 - 古いバージョンから全ての作業をコピーする時が来たのです。そこで Fred は - SCSI ユニット 4 (古い FreeBSD - で行なっていた作業の最新のものを置いてあるドライブです) - をマウントしました。ところが、Fred は SCSI ユニット 4 - には自分の貴重な作業がなにも残っていないことを発見して慌てふためきました。 - - データはどこへ行ったのでしょう? - - Bill がオリジナルの SCSI ユニット 0 のイメージをユニット 4 - にコピーした時、ユニット 4 は「新クローン」になりました。Bill - がユニット 4 から起動するように SCSI BIOS - で順序の入れ換えを行なった時、 - 実はおバカなことにそう変更したと思い込んでいただけなのです。 - FreeBSD は依然として SCSI ユニット 0 上で動いていたのです。 - BIOS にこのような変更を行なっても Boot と Loader - のコードの一部もしくは全部は選択された BIOS - ドライブから取得されるものの、処理が FreeBSD - のカーネルドライバーに引き渡された時から - BIOS ドライブの順序は無視され、FreeBSD - は通常のドライブ番号順に移行するのです。さきほどの例では、 - システムはオリジナルの SCSI ユニット 0 で動き続けており、Fred - のデータは全て SCSI ユニット 4 ではなくそのディスクに残っていたのです。 - システムが SCSI ユニット 4 - で動いているように見えたのは単に人の期待からくる妄想だったのです。 - - こういった現象の発見のどの時点においてもデータは全く失なわれても損なわれてもいないことを喜びをもって伝えておきます。 - 古い SCSI ユニット 0 はガラクタの山から見つけ出され、Fred の作業は全て彼のもとへ返ってきたのです - (そして Bill は自分が 0 までは数えられることを学んだのでした)。 - - この例では SCSI ドライブが用いられましたが、その概念は IDE - ドライブにも同じように当てはまります。 - + + 物理ディスク上のデータ構成 + について記述するために FreeBSD が使用する用語 + (パーティションおよびスライス) + + システムにハードディスクを追加する方法 + + メモリディスクのような仮想ファイルシステムを設定する方法 + + 使用できるディスク容量を制限するためにクォータを設定する方法 + + + 攻撃者から保護するためにディスクを暗号化する方法 + + + FreeBSD で CD や DVD を作成する方法 + + + バックアップのためのさまざまな記憶メディアオプション + + + FreeBSD で利用できるバックアッププログラムの使用方法 + + + フロッピーディスクにバックアップする方法 + + + スナップショットとは何か、そしてそれを効果的に使用する方法 + + - ディスクの名前付け + デバイス名 - 物理ディスクには主に二つの種類、IDE と - SCSI がありますが、他にも RAID - コントローラによって提供されるものやフラッシュメモリなどがあります。 - これらのディスクの振舞いはかなり異なるため、 - それぞれにドライバーとデバイスがあります。 + 以下は、FreeBSD で対応している物理記憶デバイスとそれに対応するデバイス名のリストです。 物理ディスクへの名前付け @@ -142,18 +68,15 @@ IDE ハードドライブ - 4.0-RELEASE では ad、 - 4.0-RELEASE より前のものでは wd + ad IDE CD-ROM ドライブ - 3.1-RELEASE 以降は acd、 - 4.0-RELEASE より前のものでは wcd + acd - SCSI ハードドライブ - 3.0-RELEASE 以降は da、 - 3.0-RELEASE より前は sd + SCSI ハードドライブおよび USB 大容量記憶デバイス + da SCSI CD-ROM ドライブ @@ -161,9 +84,16 @@ その他の非標準的 CD-ROM ドライブ - ミツミ CD-ROM は mcd、 - Sony CD-ROM は scd、 + ミツミ CD-ROM は mcd, + Sony CD-ROM は scd, 松下/パナソニック CD-ROM は matcd + + &man.matcd.4; ドライバは 2002 年 10 月 5 日に + FreeBSD 4.X ブランチから削除されました。 + また、FreeBSD 5.0 および 5.1 リリースには存在しませんが、 + 2003 年 6 月 16 日に + FreeBSD 5.X ブランチに復帰しました。 + @@ -172,73 +102,68 @@ SCSI テープドライブ - 3.0-RELEASE 以降は sa、 - 3.0-RELEASE よりも前では st + sa IDE テープドライブ - 4.0-RELEASE 以降では ast、 - それよりも前のものでは wst + ast フラッシュドライブ - 3.3-RELEASE 以降の DiskOnChip フラッシュデバイスは + &diskonchip; フラッシュデバイスは fla RAID ドライブ - myxd は Mylex 用、 - amrd は AMI MegaRAID 用、 - idad は Compaq Smart RAID 用。 - これらは全て 4.0-RELEASE 以降。3.2-RELEASE から - 4.0-RELEASE までは id + &adaptec; AdvancedRAID は aacd, &mylex; + は mlxd および mlyd, + AMI &megaraid; は amrd, + Compaq Smart RAID は idad, + &tm.3ware; RAID はtwed
- - - スライスとパーティション - - 物理ディスクは - 危険な専用 (原文はdangerously dedicated) ディスク - でない限り、通常はスライスを含んでいます。 - スライス番号はデバイス名の後に続き、s - という接頭文字が付きます。da0s1 - といった感じです。 - - スライスや - 危険な専用 (原文はdangerously dedicated) ディスク - や他のディスクはパーティションを含んでおり、 - パーティションは a から h - までの文字で表現されます。 - b はスワップパーティション用に予約されており、 - c - はスライスもしくはドライブの全体を表わす未使用パーティションです。 - このあたりのことは で解説します。 -
+ + + + David + O'Brien + 原作: + + + + + ディスクの追加 - オリジナルは &a.obrien; によって 1998 年 4 月 26 日に寄贈されました。 + + ディスク + 追加 + 現在一つしかドライブがない計算機に新しく SCSI ディスクを追加したいとしましょう。まずコンピュータの電源を切り、 コンピュータやコントローラ、 - ドライブの製造元の指示に従ってドライブを取り付けます。 - このあたりの手順は非常にバラエティに富んでいるため、 - 細かいことはこのドキュメントの範囲外です。 + ドライブの製造元の説明書に従ってドライブを取り付けます。 + このあたりの手順は非常に多岐にわたるため、 + 詳細はこの文書の範囲外です。 root ユーザでログインします。 ドライブの取り付け後は /var/run/dmesg.boot を調べて新しいディスクが見つかっていることを確認しておきます。 この例では、新しく付けたドライブは da1 で、 我々はそれを /1 にマウントしたいとしましょう - (もし IDE ドライブを付けようとしているのなら、4.0 以前のシステムでは - wd1、ほとんどの 4.x システムでは - ad1 になるでしょう)。 + (もし IDE ドライブを付けようとしているのなら、デバイス名は + 4.0 以前のシステムでは wd1, ほとんどの 4.x + システムでは ad1 になるでしょう)。 + + パーティション + スライス + fdisk FreeBSD は IBM-PC 互換のコンピュータで動くため、 PC BIOS のパーティションを考慮に入れる必要があります。 @@ -257,73 +182,97 @@ スライスの場合、ドライブは /dev/da1s1e として加えられるでしょう。これは、SCSI ディスクでユニット番号は 1 - (二つめの SCSI ディスク)、スライスは 1 (PC BIOS のパーティションが 1) で - BSD パーティション e、と読みます。 + (二つめの SCSI ディスク), スライスは 1 (PC BIOS のパーティションが 1) で + BSD パーティション e, と読みます。 専用ディスクの場合だと単純に /dev/da1e として加えられるでしょう。 - sysinstall を利用 + &man.sysinstall.8; の利用 - /stand/sysinstall - の使い易いメニューを利用して新しいディスクのパーティション分けやラベル付けを行なうことができます。 - root ユーザでログインするか su - コマンドを用いるかして root 権限を取得します。 - /stand/sysinstall を実行し、 - Configure メニューに入ります。 - FreeBSD Configuration Menu - の中でスクロールダウンして Partition - の項目を選びます。 - するとシステムに付けられているハードディスクのリストが表示されるはずです。 - もし da1 - がリストされていない場合には物理的な取り付け及び、 - /var/run/dmesg.boot ファイルへの - dmesg 出力をチェックし直してください。 + + sysinstall + ディスクの追加 + + su - da1 を選んで - FDISK Partition Editor に入ります。ディスク全体を - FreeBSD で使うために A を選びます。 - remain cooperative with any future possible operating systems - と聞かれたら YES と答えます。 - W で変更をディスクに書き込みます。ここで - q と入力して FDISK エディタを抜けます。 - マスターブートレコードについて聞かれますが、 - ここでは既に動いているシステムにディスクを追加しようとしているのですから - None を選びます。 + + + <application>sysinstall</application> の操作 - 次に Disk Label Editor に入ります。 - ここでは従来の BSD パーティションを作成します。一つのディスクは a から - h までのラベルがついた最大 8 つのパーティションを持つことができます。 - いくつかのパーティションラベルは特殊な用途に用いられます。 - a パーティションはルートパーティション - (/) です。 - 従って、システムディスク (つまり起動ディスク) のみが - a を持ちます。b - パーティションはスワップパーティションに用いられ、 - 複数のディスクにスワップパーティションを作ることができます。 - c は専用モードにおけるディスク全体、 - もしくはスライスモードにおけるスライス全体を指します。 - 他のパーティションは汎用的に用いられます。 + sysinstall の使い易いメニューを利用して、 + 新しいディスクのパーティション分けやラベル付けを行なうことができます。 + root ユーザでログインするか + su コマンドを用いるかして root 権限を取得します。 + /stand/sysinstall を実行して Configure + メニューに入ります。FreeBSD Configuration Menu + の中でスクロールダウンして Fdisk + の項目を選びます。 + - sysinstall の Label Editor - は非ルートで非スワップなパーティションには e - を好んで付けます。ラベルエディタでは C - を用いて一つのファイルシステムを作成します。 - FS (ファイルシステム) かスワップかを聞かれたら FS - を選びマウントポイント (例えば /mnt) を入力します。 - インストール後のモードでディスクを追加する場合、sysinstall は - /etc/fstab にエントリを追加しないため、 - ここで指定するマウントポイントはそれほど重要ではありません。 + + <application>fdisk</application> パーティションエディタ + fdisk では、ディスク全体を + FreeBSD で使うために A を入力します。 + remain cooperative with any future possible operating systems + と聞かれたら YES と答えます。 + W で変更をディスクに書き込みます。ここで + q と入力して FDISK エディタを抜けます。 + 次にマスタブートレコードについて聞かれます。 + ここでは既に動いているシステムにディスクを追加しようとしているので + None を選びます。 + - さて、ディスクに新しいラベルを書き込み、 - そこにファイルシステムを作る準備が整いました。早速 W - を叩いて実行しましょう。 - sysinstall からの、新しいパーティションをマウントできない、 - というエラーは無視してください。Label Editor から抜け、 - sysinstall を終了します。 + + ディスクラベルエディタ + BSD パーティション - 最後に /etc/fstab を編集し、 - 新しいディスクを追加します。 + 次に sysinstall を終了し、 + もう一度起動する必要があります。同じ手順を踏んで今度は + Label オプションを選択し、 + Disk Label Editor に入ります。 + ここでは従来の BSD パーティションを作成します。 + 一つのディスクは a から h までのラベルがついた最大 + 8 つのパーティションを持つことができます。 + いくつかのパーティションラベルは特別な用途に用いられます。 + a パーティションはルートパーティション + (/) です。したがって、システムディスク + (つまり起動ディスク) のみに a + パーティションがあるべきです。b + パーティションはスワップパーティションに用いられ、 + 複数のディスクにスワップパーティションを作ることができます。 + c は専用モードにおけるディスク全体、 + もしくはスライスモードにおけるスライス全体を指します。 + 他のパーティションは汎用的に用いられます。 + + sysinstall のラベルエディタ + は、ルートパーティションでもスワップパーティションでもないパーティションには、e + パーティションを採用しようとします。ラベルエディタでファイルシステムを作成するには + C を入力してください。 + FS (ファイルシステム) かスワップかを聞かれたら + FS を選びマウントポイント + (たとえば /mnt) を入力します。 + インストール後のモードでディスクを追加する場合、 + sysinstall は + /etc/fstab にエントリを追加しないため、 + ここで指定するマウントポイントはそれほど重要ではありません。 + + さて、ディスクに新しいラベルを書き込み、 + そこにファイルシステムを作る準備が整いました。早速 + W を叩いて実行しましょう。 + sysinstall からの、 + 新しいパーティションをマウントできない、 + というエラーは無視してください。Label Editor から抜け、 + sysinstall を終了します。 + + + + 終了 + + 最後に /etc/fstab を編集し、 + 新しいディスクのエントリを追加します。 + + @@ -335,357 +284,490 @@ このセットアップ方法では、 すでにコンピュータに他のオペレーティングシステムがインストールされていても 正しく協調動作することが可能で、他のオペレーティングシステムの - fdisk ユーティリティを混乱させることもありません。 + fdisk ユーティリティを混乱させることもありません。 新しいディスクにインストールする場合は、 この方法を用いることが推奨されています。 後述する 専用モード は、 そうしなければならない理由がある時にのみ、 利用するようにしてください。 - &prompt.root; dd if=/dev/zero of=/dev/rda1 bs=1k count=1 + &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; fdisk -BI da1 # 新しいディスクの初期化 &prompt.root; disklabel -B -w -r da1s1 auto # ディスクにラベルを付ける &prompt.root; disklabel -e da1s1 # 作成したディスクラベルを編集し、パーティションを追加する &prompt.root; mkdir -p /1 &prompt.root; newfs /dev/da1s1e # 作成したすべてのパーティションに対してこれを繰り返す -&prompt.root; mount -t ufs /dev/da1s1e /1 # パーティションをマウントする -&prompt.root; vi /etc/fstab # マウントに成功したら、/etc/fstab に適切なエントリを追加する +&prompt.root; mount /dev/da1s1e /1 # パーティションをマウントする +&prompt.root; vi /etc/fstab # /etc/fstab に適切なエントリを追加する IDE ディスクを使う場合は da の部分を - ad とします。4.x より前のシステムでは、 + ad とします。4.X より前のシステムでは、 (訳注: ad ではなく) wd としてください。 専用モード + OS/2 新しいドライブを他の OS と共有しない場合には 専用 モードを用いることもできます。 このモードはマイクロソフトの OS を混乱させることを憶えておいてください - (しかし、それらによって壊されることはありません)。 一方、IBM の OS/2 + (しかし、それらによって壊されることはありません)。 一方、IBM の &os2; はどんなパーティションでも見つけたら理解できなくても 専有 します。 - - &prompt.root; dd if=/dev/zero of=/dev/rda1 bs=1k count=1 + + &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; disklabel -Brw da1 auto -&prompt.root; disklabel -e da1 # create the `e' partition -&prompt.root; newfs -d0 /dev/rda1e +&prompt.root; disklabel -e da1 # `e' パーティションの作成 +&prompt.root; newfs -d0 /dev/da1e &prompt.root; mkdir -p /1 -&prompt.root; vi /etc/fstab # add an entry for /dev/da1e +&prompt.root; vi /etc/fstab # /dev/da1e エントリの追加 &prompt.root; mount /1 もう一つの方法は次の通り。 - &prompt.root; dd if=/dev/zero of=/dev/rda1 count=2 -&prompt.root; disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin -&prompt.root; newfs /dev/rda1e + &prompt.root; dd if=/dev/zero of=/dev/da1 count=2 +&prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin +&prompt.root; newfs /dev/da1e &prompt.root; mkdir -p /1 -&prompt.root; vi /etc/fstab # add an entry for /dev/da1e +&prompt.root; vi /etc/fstab # /dev/da1e エントリの追加 &prompt.root; mount /1 + + &os; 5.1-RELEASE から、従来の &man.disklabel.8; + プログラムは &man.bsdlabel.8; + ユーティリティに置き換えられました。&man.bsdlabel.8; では、 + 使用されていない数多くのオプションやパラメタが削除されました。 + たとえば オプションは &man.bsdlabel.8; + では取り除かれました。詳細については &man.bsdlabel.8; + のマニュアルページを参照してください。 - - 仮想ディスク: ネットワーク、メモリ、そしてファイルベースのファイルシステム + + RAID - FreeBSD にはフロッピーや CD、 - ハードディスクなどの手元の計算機に取り付けたディスクの他に、 - 別の形態のディスク、仮想ディスク、もあります。 + + ソフトウェア RAID - これには、Network Filesystem - のようなネットワークファイルシステムや - Coda, md - のようなメモリベースのファイルシステム、 - vnconfig - によって作られるようなファイル中に構築されるファイルシステムがあります。 + + + + + Christopher + Shumway + 原作: + + + + + Jim + Brown + 改訂: + + + - - vnconfig: ファイル中に構築されるファイルシステム + + RAID + ソフトウェア + + + RAID + CCD + - &man.vnconfig.8; を使えば擬似ディスクデバイスを設定し、 - 有効にすることができます。 - vnode とはファイルの内部的な表現方法であり、 - ファイルに関する操作の中心となるものです。つまり、&man.vnconfig.8; - はファイルシステムを生成したり操作したりするためにファイルを用いるのです。 - 一つ例を挙げると、 - ファイルに収められたフロッピーや CD-ROM のイメージをマウントするために用いることができます。 + Concatenated Disk Driver (CCD) の設定 + 大容量記録に関する解決法を選択する際にもっとも重視すべき要素は、 + 速度、信頼性、そして費用です。 + 三つを同時にバランスよく実現することは稀です。 + 通常、速くて信頼性のある大容量記録装置は高価であり、 + 費用を抑えようとすると速度または信頼性のどちらかが犠牲になります。 - 既にあるファイルシステムイメージのマウント + ここで例にあげるシステムの設計においては、 + 費用が最も重要な要素として、次に速度、最後に信頼性が選択されています。 + このシステムでのデータ転送速度は結局のところネットワークによって制限されます。 + 信頼性は大変重要です。ただし、以下で説明する CCD ドライブは、 + データ自体はすでに CD-R に完全にバックアップしてあるもの + (したがって交換は簡単にできます) + の、オンラインデータの役割をさせています。 - - vnconfig を用いた既存のファイルシステムイメージのマウント + あなた自身の要求事項を決定することは、 + 大容量記録に関する解決法を選択することの最初の段階です。 + もしあなたの要求事項が費用より速度または信頼性を優先するなら、 + 解決法はこのシステムとは違うものになるでしょう。 - &prompt.root; vnconfig vn0 diskimage -&prompt.root; mount /dev/vn0c /mnt - + + ハードウェアのインストール - vnconfig を用いたファイルシステムイメージの新規作成 + IDE システムディスクに加えて、Western Digital 製の + 30GB, 5400RPM の IDE ディスク三台を使って、 + 以下に説明されているような約 90GB のオンラインストレージとなる + CCD ディスクを作成しました。各 IDE ディスクがそれぞれの + IDE コントローラとケーブルをもっていることが理想的ですが、 + 費用を最低限にするために、 + IDE コントローラを追加していません。その代わり、それぞれの IDE + コントローラがマスタデバイスを一つ、 + スレーブデバイスを一つ持つように、 + ディスクはジャンパを使って設定されています。 - - vnconfig を用いたファイルベースディスクの新規作成 - - &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -&prompt.root; vnconfig -s labels -c vn0 newimage -&prompt.root; disklabel -r -w vn0 auto -&prompt.root; newfs vn0c -Warning: 2048 sector(s) in last cylinder unallocated -/dev/rvn0c: 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 -&prompt.root; mount /dev/vn0c /mnt -&prompt.root; df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/vn0c 4927 1 4532 0% /mnt - + 再起動の際に、システム BIOS + が接続されたディスクを自動的に検出するように設定されました。 + より重要なことは、FreeBSD が再起動の際にそれらを検出することです。 + + ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 +ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 +ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 +ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 + + FreeBSD がディスクをすべて検出しないときは、 + ジャンパを正しく設定してあるか確認してください。多くの IDE + ドライブは ケーブルセレクト + ジャンパを持っています。 + これはマスタ/スレーブの関係を設定するジャンパでは + ありません。ドライブの文書を参照して、 + 正しいジャンパ設定を見つけてください。 + + 次に、ファイルシステムの一部分として、 + それらをどのように接続するのかを考慮します。&man.vinum.8; + + および &man.ccd.4; + の両方を検討すべきでしょう。この設定では、&man.ccd.4; + を選択しました。 + + + + CCD の設定 + + &man.ccd.4; ドライバは、いくつかの同じディスクを使って、 + 一つの論理的ファイルシステムに連結することができます。 + &man.ccd.4; を使用するためには、カーネルが &man.ccd.4; + に対応している必要があります。 + 次の行をカーネルコンフィギュレーションファイルに追加して、 + カーネルを再構築し、再インストールしてください。 + + pseudo-device ccd 4 + + 5.X システムでは、 + 上記の代わりに次の行を追加しなければなりません。 + + device ccd + + FreeBSD 5.X では &man.ccd.4; + デバイスの数を指定する必要はありません。&man.ccd.4; + デバイスドライバは自己複製するようになりました — + 新しいデバイスインスタンスは、 + 必要に応じてその都度自動的に作成されます。 + + FreeBSD 3.0 以降では、 + カーネルモジュールを読み込んで + &man.ccd.4; に対応することもできます。 + + &man.ccd.4; を設定するために、まず &man.disklabel.8; + を使用してディスクにラベルを書き込まなくてはなりません。 + + disklabel -r -w ad1 auto +disklabel -r -w ad2 auto +disklabel -r -w ad3 auto + + このコマンドはディスク全体を示す + ad1c, + ad2c および + ad3c に対するディスクラベルを作成します。 + + &os; 5.1-RELEASE から、従来の &man.disklabel.8; + プログラムは &man.bsdlabel.8; + ユーティリティに置き換えられました。&man.bsdlabel.8; では、 + 使用されていない数多くのオプションやパラメタが削除されました。 + たとえば オプションは &man.bsdlabel.8; + では取り除かれました。詳細については &man.bsdlabel.8; + のマニュアルページを参照してください。 + + 次に、ディスクラベルのタイプを変更します。 + &man.disklabel.8; を使用してディスクラベルを編集してください。 + + disklabel -e ad1 +disklabel -e ad2 +disklabel -e ad3 + + このコマンドは EDITOR + 環境変数に設定されているエディタ (一般的には &man.vi.1;) + でそれぞれのディスクの現在のディスクラベルを開きます。 + + 変更されていないディスクラベルは以下のようになります。 + + 8 partitions: +# size offset fstype [fsize bsize bps/cpg] + c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) + + &man.ccd.4; で使用する e + パーティションを作成します。通常では c + パーティションの行をコピーすれば良いでしょう。しかし、 + 4.2BSD + でなければ なりません。 + ディスクラベルは以下のようになるでしょう。 + + 8 partitions: +# size offset fstype [fsize bsize bps/cpg] + c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) + e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) + + + + ファイルシステムの構築 + + ccd0c + デバイスノードはまだ存在していないかも知れません。 + そのときは、次のコマンドを実行して作成してください。 + + cd /dev +sh MAKEDEV ccd0 + + FreeBSD 5.0 では &man.devfs.5; が + /dev 以下のデバイスノードを自動的に管理するので、 + MAKEDEVを使用する必要はありません。 + + すべてのディスクにラベルを書き込んだので、 + &man.ccd.4; を構築してください。 + これを行うためには、以下のようなオプションで + &man.ccdconfig.8; を使います。 + + ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e + + 各オプションの使用法と意味は以下の通りです。 + + + + 一番目の引数は設定するデバイスです。この例の場合は + /dev/ccd0c です。 + /dev/ の部分はオプションです。 + + + + ファイルシステムに対するインタリーブです。インタリーブは、 + ディスクブロック内のストライプサイズを定義します。 + ディスクブロックは通常 512 バイトです。したがって 32 + インタリーブは 16,384 バイトとなります。 + + + + これは &man.ccdconfig.8; に対するフラグです。 + ドライブミラーリングを有効にしたい場合、 + ここにフラグを指定します。 + この設定では &man.ccd.4; に対するミラーリングは提供しませんので、 + 0 (ゼロ) を指定しています。 + + + + この &man.ccdconfig.8; に対する最後の引数は、 + アレイ内に置くデバイスです。 + それぞれのデバイスに対する完全なパス名を使用します。 + + + + &man.ccdconfig.8; を実行すると &man.ccd.4; が設定されます。 + これでファイルシステムをインストールすることが可能です。 + オプションについて &man.newfs.8; を参照するか、 + 次のように実行してください。 + + newfs /dev/ccd0c + + + + 自動的に設定する + + 一般的に、再起動するたびに &man.ccd.4; + をマウントしたいと思うでしょう。これを行うために、 + まず設定をしなければなりません。次のコマンドを用いて、 + 現在の設定を /etc/ccd.conf に書き出します。 + + ccdconfig -g > /etc/ccd.conf + + /etc/ccd.conf が存在すると、 + 再起動の際に /etc/rc スクリプトが + ccdconfig -C を実行します。これにより、 + &man.ccd.4; は自動的に設定された後、マウントされます。 + + シングルユーザモードで起動している場合には、 + &man.ccd.4; を &man.mount.8; する前に、 + アレイを設定するために次のコマンドを実行する必要があります。 + + ccdconfig -C + + + 自動的に &man.ccd.4; をマウントするには、 + /etc/fstab に &man.ccd.4; + のエントリ追加します。このように設定すると起動時にマウントされます。 + + /dev/ccd0c /media ufs rw 2 2 + + + + + Vinum ボリュームマネージャ + + RAID + ソフトウェア + + + RAID + Vinum + + + Vinum ボリュームマネージャは、 + 仮想ディスクドライブを実装したブロックデバイスドライバです。 + Vinum は、ディスクハードウェアをブロックデバイスインタフェースから + 分離し、データを配置します。 + その結果、ディスク記憶装置を従来のスライスで扱うのと比較して、 + 柔軟性、性能および信頼性が向上しています。 + &man.vinum.8; は RAID-0, RAID-1 および RAID-5 モデル、 + そしてそれぞれの組合せを実装しています。 + + &man.vinum.8; の詳細については Vinum ボリュームマネジャ + + を参照してください。 + - - md: メモリファイルシステム + + ハードウェア RAID + + RAID + ハードウェア + - md はメモリファイルシステムを実現するためにシンプルで効率的な手段です。 + FreeBSD は、さまざまなハードウェア RAID + コントローラにも対応しています。これらのデバイスはアレイを制御するための + 特別なソフトウェアを FreeBSD で必要することなく、 + RAID サブシステムを制御します。 - 単に、例えば &man.vnconfig.8; を用いて作成したファイルシステムを取り、以下のようにします。 - - - md メモリディスク - - &prompt.root; dd if=newimage of=/dev/md0 -5120+0 records in -5120+0 records out -&prompt.root; mount /dev/md0c /mnt -&prompt.root; df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0c 4927 1 4532 0% /mnt - - - - - - ディスククォータ - - クォータは OS の持っているオプショナルな機能であり、 - ファイルシステム毎にユーザやグループのメンバが使用するディスク容量やファイルの数を制限することができます。 - この機能は、あるユーザやグループに割り当てられるリソースの量を制限することが望ましいようなタイムシェアリングシステムにおいてよく用いられます。 - この機能を用いることによって使用可能なディスク容量の全てを一人のユーザが使ってしまうことを防ぐことができます。 - - - ディスククォータを使うためのシステム設定 - - ディスククォータの設定を始める前に、 - まずはカーネルにクォータが組み込まれていることを確認しましょう。 - カーネルのコンフィグレーションファイルに次の行を入れます。 - - options QUOTA - - 標準の GENERIC カーネルでは、 - この機能は有効になっていませんので、 - ディスククォータを利用するためには上記を設定後カーネルを構築しなおし、 - 作成されたカスタムカーネルをインストールしなければいけません。 - カーネルのコンフィグレーションに関しては - FreeBSD カーネルのコンフィグレーション のセクションをご覧ください。 - - 次に /etc/rc.conf - でディスククォータを有効にする必要があります。 - 次の行を加えましょう。 - - enable_quotas=YES - - 起動時の動作をさらに細かくコントロールするためにもう一つ設定用の変数があります。 - 通常、起動時には quotacheck - によりそれぞれのファイルシステムのクォータの整合性がチェックされます。 - quotacheck の役割は、 - クォータデータベースのデータが正しくファイルシステム上のデータを反映しているか確認することです。 - これはかなり時間を食う処理であり、起動にかかる時間に大きな影響を及ぼします。 - このステップをとばしたい人のために次の変数が用意されています。 - - check_quotas=NO - - もし 3.2-RELEASE よりも前の FreeBSD - を使っているならば設定はもっと単純で、一つの変数のみです。 - 次の行を /etc/rc.conf で設定してください。 - - check_quotas=YES - - 最後に、ファイルシステム毎にディスククォータを有効にするために - /etc/fstab を編集する必要があります。 - ここでユーザもしくはグループ、 - あるいはその両方にクォータを設定することができるのです。 - - あるファイルシステム上にユーザ毎のクォータを有効にする場合には、 - /etc/fstab - 中でクォータを有効にしたいファイルシステムエントリのオプション部に - userquota を加えます。 - 例えば次のようになります。 - - /dev/da1s2g /home ufs rw,userquota 1 2 - - 同様に、グループクォータを有効にするには - userquota キーワードの代わりに - groupquota を用います。 - ユーザとグループの両方のクォータを有効にするには次のようにします。 - - /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 - - デフォルトでは、 - クォータファイルはそのファイルシステムのルートディレクトリに - ユーザ用、グループ用それぞれ - quota.user, quota.group - という名前で置かれます。さらに詳しい情報は man fstab - をご覧ください。 - マニュアルには別の場所を指定することができると書いてはありますが、 - あまり勧められません。なぜなら、 - 様々なクォータ関係のユーティリティがそれにうまく対処できるようにないためです。 - - この時点で、 - 一度システムを再起動して新しいカーネルで立ち上げましょう。 - /etc/rc が自動的に適当なコマンドを実行し、 - /etc/fstab - で有効にした全てのクォータ用に初期ファイルを作ってくれます。 - 従って、空のクォータファイルを手で作る必要は一切ありません。 - - 通常の運用では quotacheck や - quotaon, quotaoff - といったコマンドを手で動かす必要はないのですが、 - 慣れるためにもこれらのマニュアルは読んでおきましょう。 + カード上の BIOS を使用して、 + カードはそれ自身でディスク操作のほとんどを制御します。以下は + Promise IDE RAID + コントローラを使用した設定の簡単な説明です。 + このカードがインストールされ、システムが起動したときには、 + 情報の入力を促すプロンプトを表示します。 + 指示にしたがってカードの設定画面に進んでください。 + 接続されたドライブを組み合わせるように設定することができます。 + 設定後、ディスクは FreeBSD に対して単一のドライブのように見えます。 + 他の RAID レベルは適宜設定できます。 - クォータリミットの設定 + ATA RAID1 アレイの再構築 - 一旦クォータを有効にしたら本当に有効になっているのか確認しておきましょう。簡単な方法は次のコマンドを実行することです。 + FreeBSD はアレイ内の障害ディスクを動作中に交換できます。 + ただし、再起動前にそれを検知していることが必要です。 - &prompt.root; quota -v - - ディスクの使用状況と、クォータが有効になっているファイルシステムのクォータリミットが一行にまとめて出力されるでしょう。 + /var/log/messages, または &man.dmesg.8; + の出力に次のような行があるでしょう。 - さあ、edquota でクォータリミットを設定する準備ができました。 + ad6 on monster1 suffered a hard error. +ad6: READ command timeout tag=0 serv=0 - resetting +ad6: trying fallback to PIO mode +ata3: resetting devices .. done +ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11) status=59 error=40 +ar0: WARNING - mirror lost - ユーザやグループが使用できるディスク容量や作成できるファイルの数に制限をかけるにはいくつかのオプションがあります。割り当てディスク容量を制限 - (ブロッククォータ) することもファイル数を制限 (inode クォータ) - することも、両者を組み合わせることもできるのです。 - これらの制限はそれぞれさらに二つのカテゴリ、 - ハードリミットとソフトリミット、に分けることができます。 + &man.atacontrol.8; を使用して詳細を調べてください。 - ハードリミットを越えることはできません。 - あるユーザが一旦ハードリミットにたっした場合、 - そのファイルシステムではそれ以上の割り当ては望めません。 - 例えばあるファイルシステム上に - 500 ブロックのハードリミットが設定されており現在 - 490 ブロックを使用している場合、さらに 10 ブロックしか使えないのです。 - 11 ブロックを使おうとすると失敗します。 + &prompt.root; atacontrol list +ATA channel 0: + Master: no device present + Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 - 一方、 - ソフトリミットはある限られた時間内であれば越えることができます。 - この時間は猶予期間として知られており、デフォルトでは 1 週間です。 - あるユーザが自分のソフトリミットを猶予期間よりも長い間越えているとソフトリミットはハードリミットに変わり、それ以上使用することはできなくなります。 - ユーザがソフトリミットよりも減らせば猶予期間はリセットされます。 +ATA channel 1: + Master: no device present + Slave: no device present - 以下は edquota - コマンドを実行した時に見ることになるであろう例です。 - edquota コマンドが起動されると環境変数 - EDITOR で指定されるエディタに入ります。 - EDITOR が設定されていない場合には - vi が起動されます。 - ここでクォータリミットを編集します。 +ATA channel 2: + Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 + Slave: no device present - &prompt.root; edquota -u test +ATA channel 3: + Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 + Slave: no device present - Quotas for user test: -/usr: blocks in use: 65、limits (soft = 50、hard = 75) - inodes in use: 7、limits (soft = 50、hard = 60) -/usr/var: blocks in use: 0、limits (soft = 50、hard = 75) - inodes in use: 0、limits (soft = 50、hard = 60) +&prompt.root; atacontrol status ar0 +ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED - 通常、クォータが有効になっているファイルシステム毎に 2 行あります。 - 一つはブロックリミット用でもう一つは inode リミット用です。 - クォータリミットを変更したいところを書き変えるだけでかまいません。 - 例えばこのユーザのブロックリミットを、 - 「ソフトリミットは 50 で ハードリミットは 75」から「ソフトリミットは - 500 で ハードリミットは 600」に変更する場合、 + + + ディスクを安全に取り外すために、 + まずアレイから切り離します。 - /usr: blocks in use: 65、limits (soft = 50、hard = 75) + &prompt.root; atacontrol detach 3 + - から + + ディスクを取り外します。 + - /usr: blocks in use: 65、limits (soft = 500、hard = 600) + + スペアのディスクを取り付けます。 - へ書き換えます。新しいクォータリミットはエディタを終了すれば設定されます。 + &prompt.root; atacontrol attach 3 +Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 +Slave: no device present + - ある範囲の uid - に対してクォータリミットを設定したい場合がありますが、このような時には - edquota コマンドの - オプションを使うといいでしょう。まず、 - あるユーザに割り当てたいクォータリミットを設定し、次に - edquota -p protouser startuid-enduid - を実行するのです。例えばユーザ test - にお望みのクォータリミットが付いているとしましょう。 - 次のコマンドにより 10,000 から 19,999 の間の uid - に対して同じクォータリミットを付けることができるのです。 + + アレイを再構築します。 - &prompt.root; edquota -p test 10000-19999 - - さらに詳しいことは man edquota をご覧ください。 - + &prompt.root; atacontrol rebuild ar0 + - - クォータリミットとディスク使用状況のチェック + + 再構築コマンドは完了するまで他の操作を受け付けません。しかし、 + もう一つ別のターミナルを + (Alt + Fn + を押して) 開き、 + 次のコマンドを実行すると進行状態を確認することができます。 - quotarepquota - といったコマンドを使ってクォータリミットやディスクの利用状況をチェックすることができます。 - quota コマンドは個々のユーザやグループのクォータやディスク利用状況をチェックするのに使えます。 - スーパーユーザのみが他のユーザや所属していないグループのクォータと利用状況を見ることができます。 - repquota コマンドはクォータが有効になっているファイルシステム用の全てのクォータやディスク容量のサマリを得るのに使えます。 + &prompt.root; dmesg | tail -10 +[output removed] +ad6: removed from configuration +ad6: deleted from ar0 disk1 +ad6: inserted into ar0 disk1 as spare - 以下は二つのファイルシステムにクォータ制限がかけられているユーザに対するquota -v コマンドの出力例です。 +&prompt.root; atacontrol status ar0 +ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed + - Disk quotas for user test (uid 1002): - Filesystem blocks quota limit grace files quota limit grace - /usr 65* 50 75 5days 7 50 60 - /usr/var 0 50 75 0 50 60 - - 上の例で、/usr - ファイルシステム上ではこのユーザは現在 - 50 ブロックというソフトリミットを 15 ブロックオーバーし - 5 日間の猶予期間が残っています。アスタリスク * - はクォータリミットを越えているユーザを示していることに注意してください。 - - 通常、そのユーザが全く使っていないファイルシステムは、 - クォータリミットが付けられているとしても - quota コマンドの出力には現われません。 - オプションを用いればそのようなファイルシステム、 - 上の例では /usr/var、 - を表示することができます。 - - - - NFS 上の クォータ - - クォータは NFS サーバ上のクォータサブシステムにより実行されます。 - &man.rpc.rquotad.8; デーモンにより、NFS クライアント上の &man.quota.1; - コマンドは情報を得ることができ、クライアントマシン上のユーザが自分のクォータの統計を見ることができます。 - - /etc/inetd.conf において以下のように - rpc.rquotad を有効にしましょう。 - - rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad - - そして以下のように inetd を再起動します。 - - &prompt.root; kill -HUP `cat /var/run/inetd.pid` + + 操作が完了するまでお待ちください。 + + - CD の作成 + + + + Mike + Meyer + 寄稿: + + + + + - 寄稿: Mike Meyer - mwm@mired.org、2001 年 4 月 + 光メディア (CD & DVD) の作成と使用 + + CDROM + 作成 + はじめに @@ -694,109 +776,172 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on そもそもユーザが書き込むことができません。 また遅延なしで連続的に読み出せるように、 トラック間をヘッドが移動しないですむようにデザインされています。 - さらにこのサイズのメディアの中では最もシステム間での転送が簡単なものです。 + さらにこのサイズのメディアの中ではシステムをまたぐデータの + 移動が比較的簡単でもあります。 CD はトラックの概念を持っていますが、 - これはデータを連続的に読み出すためのものであってディスクの物理属性ではありません。 - FreeBSD に CD を提供するにあたっては、 - まず CD 上のトラックとなるデータファイルを処理し、 + これはデータを連続的に読み出すためのものであってディスクの物理特性ではありません。 + FreeBSD で CD を作成するには、まず CD + のトラックとなるデータファイルを用意し、 そのトラックを CD に書き込みます。 + ISO 9660 + + ファイルシステム + ISO 9660 + ISO 9660 ファイルシステムはこの様な差異を扱うべく設計されました。 - 残念ながらファイルシステムは標準的なものに制限されるような明文化がされてしまいましたが、 - 適切に書かれた CD がその拡張をサポートしないシステムでも動作する範囲でこの制限を越えられるようにこれを拡張する機構が提供されています。 - - mkisofs - プログラムは ISO 9660 ファイルシステムを持つデータファイルを作成するのに使われます。 + その結果、ファイルシステムは一般的に使用するのに差しつかえない程度に + 制限されて標準化されています。幸いなことに、ISO 9660 + ファイルシステムには拡張機構が提供されています。適切に書かれた CD は、 + 拡張機構に対応したシステムでは拡張を利用して、そうでないシステムでは + 拡張機構を使用しない範囲で動作するようになっています。 + + sysutils/mkisofs + + sysutils/mkisofs プログラムは + ISO 9660 ファイルシステムを含むデータファイルを作成するのに使われます。 これには様々な拡張をサポートするオプションがあり、 - それは以下に書かれています。 あなたはそれを ports の - /usr/ports/sysutils/mkisofs + 以下で説明します。 このソフトウェアは、ports の + sysutils/mkisofs からインストールすることができます。 - CD を焼くためのツールはあなたの CD ライタが ATAPI - か否かにも依存します。ATAPI CD ライタはベースシステムの一部である + + CD ライタ + ATAPI + + + CD に書き込むためのツールは、お使いの CD ライタが ATAPI + 接続か否かにも依存します。ATAPI CD ライタなら、ベースシステムの一部である burncd - プログラムを使います。SCSI や USB の CD ライタは ports の - /usr/ports/sysutils/cdrecord から + プログラムを使います。SCSI や USB の CD ライタなら、ports の + sysutils/cdrecord + をインストールして cdrecord - を使わなければなりません。 + プログラムを使うべきでしょう。 + + burncd + が対応しているドライブは限定されています。 + ドライブが対応されているかどうかを確認するには、 + CD-R/RW supported + drives にある一覧を見てください。 + + + + CD ライタ + ATAPI/CAM ドライバ + + &os; 5.X または &os; 4.8-RELEASE + 以降のバージョンを使用している場合、 + ATAPI/CAM モジュール を使用すると + ATAPI ハードウェア上で SCSI ドライブ用の + cdrecord + および他のツールを使用できるようになります。 + mkisofs - mkisofs は Unix - ファイルシステムの名前空間でのディレクトリツリーのイメージである + sysutils/mkisofs は &unix; + ファイルシステムの名前空間におけるディレクトリツリーのイメージとして ISO 9660 ファイルシステムを作成します。 最も簡単な使い方は以下の通りです。 - &prompt.root; mkisofs imagefile.iso /path/to/tree + &prompt.root; mkisofs -o imagefile.iso /path/to/tree + + + ファイルシステム + ISO 9660 + このコマンドは /path/to/tree 以下のディレクトリツリーのコピーである ISO 9660 - ファイルシステムを含む imagefile - を作成します。 プロセスにおいて、ファイル名は標準的な ISO 9660 + ファイルシステムを含んだ imagefile.iso + ファイルを作成します。この過程において、ファイル名は標準的な ISO 9660 ファイルシステムの制限に適合するようなファイル名に対応づけられ、 - ISO ファイルシステムの特徴を持たないファイル名のファイルを含めることができます。 - この過程の詳細とオプションについては - &man.mkisofs.8; を読んでください。 + ISO ファイルシステムでファイル名を文字化できないファイルは除外されます。 - 制限を回避するオプションはいくつもあります。 - は Unix システムで標準的な Rock Ridge - 拡張を可能にします。 は Microsoft - のシステムで標準的な Joliet 拡張を可能にし、 - は Mac で使われている HFS ファイルシステムを作るために使われます。 - 後の二つについてのこれ以上の情報は &man.mkisofs.8; - を読んでください。 + + ファイルシステム + HFS + + + ファイルシステム + Joliet + - FreeBSD でしか使わないのであれば - があらゆるファイル名制限を無効にするのに使えます。 - さらに とともに使うことで + この制限を回避するために利用できるオプションはいくつもあります。 + 特に オプションは &unix; システムで標準的な Rock Ridge + 拡張を有効にします。 オプションは Microsoft + のシステムで標準的な Joliet 拡張を有効にし、 + オプションは &macos; で使用されている + HFS ファイルシステムを作成するために使われます。 + + FreeBSD でしか使わないのであれば、 + オプションを使用するとあらゆるファイル名制限を無効にできます。 + さらに オプションとともに使うことで FreeBSD と同一のファイルシステムイメージを作成できますが、 - これは ISO 9660 標準の多数を無視しています。 + これは ISO 9660 標準の多くを無視しています。 - 一般的に使われるオプションの最後のものは です。 - これは El Torito - ブータブル CD を作成するのに使うブートイメージのありかを指示します。 - このオプションは引数としてブートイメージへのパスを、 - CD に書き込まれるディレクトリツリーのトップからの相対位置で取ります。 - よって /tmp/myboot がブート可能な + + CDROM + ブータブル (起動可能な) CDROM の作成 + + 一般的に使われる最後のオプションは オプションです。 + これは El Torito ブータブル CD + を作成するのに使う起動イメージのありかを指定します。 + このオプションは引数として起動イメージへのパスを、 + CD に書き込まれるディレクトリツリーの頂点からの相対位置で取ります。 + したがって /tmp/myboot がブート可能な FreeBSD システムで /tmp/myboot/boot/cdboot にブートイメージがあるならば、以下のようにすることで ISO 9660 - ファイルシステムのイメージを - /tmp/bootable.iso に作成することができます。 + ファイルシステムのイメージを /tmp/bootable.iso + に作成することができます。 - &prompt.root; mkisofs boot/cdboot /tmp/bootable.iso /tmp/myboot + &prompt.root; mkisofs -U -R -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot - この後、カーネルで vn が設定されていれば、 + この後、カーネルで vn (FreeBSD 4.X) + または md (FreeBSD 5.X) + が設定されていれば、 ファイルシステムを以下のようにしてマウントすることができます。 - &prompt.root; vnconfig vn0c /tmp/bootable.iso -&prompt.root; mount cd9660 /dev/vn0c /mnt + &prompt.root; vnconfig -e vn0c /tmp/bootable.iso +&prompt.root; mount -t cd9660 /dev/vn0c /mnt - あなたが確認すべきは /mnt - と /tmp/myboot が同一かどうかです + FreeBSD 4.X および FreeBSD 5.X に対しては以下の通りです。 - mkisofs - には挙動を細かく制御するためにたくさんのオプションがあります。 - 詳細は &man.mkisofs.8; を見てください。 + &prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 +&prompt.root; mount -t cd9660 /dev/md0 /mnt + + /mnt と + /tmp/myboot が同一かどうか確認してください。 + + sysutils/mkisofs + には挙動を細かく制御するために他にもたくさんのオプションがあります。 + 特に、ISO 9660 + レイアウトの変更や Joliet および HFS ディスク作成などの + 詳細は &man.mkisofs.8; のマニュアルページをご覧ください。 burncd - - あなたが持っているのが ATAPI CD ライタならば CD 上に ISO - イメージを焼くのために burncd コマンドが使えます。 + + CDROM + 書き込み + + あなたが持っているのが ATAPI CD ライタなら、CD に ISO + イメージを書き込むために burncd コマンドが使えます。 burncd はベースシステムの一部で /usr/sbin/burncd としてインストールされています。 使い方はとても単純でオプションも少ししかありません。 - &prompt.root; burncd cddevice data imagefile.iso fixate + &prompt.root; burncd -f cddevice data imagefile.iso fixate 以上のコマンドは imagefile.iso - のコピーを cddevice 上に焼付けます。 - デフォルトのデバイスは /dev/acd0 です。 - 書きこみ速度やフロッピーのイジェクト、 + のコピーを cddevice に書き込みます。 + デフォルトのデバイスは /dev/acd0c です。 + 書き込み速度や操作完了後に CD を自動的に取り出す方法、 オーディオデータの書き込みなどのオプションについては &man.burncd.8; を見てください。 @@ -804,32 +949,36 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on cdrecord - あなたが持っている CD ライタが ATAPI ではないのでしたら - CD を書き込むのに cdrecord を使わねばなりません。 + あなたが持っている CD ライタが ATAPI ではなければ、 + CD を書き込むのに cdrecord を使う必要があります。 cdrecord はベースシステムの一部ではなく、 - /usr/ports/sysutils/cdrecord から ports - としてかそのパッケージをインストールするしなければなりません。 - ベースシステムへの変更はこのプログラムのバージョンを途切れさせ、 - コースターを作ることになるでしょう。 - それゆえシステムをアップグレードするつど ports もアップグレードし、 - あるいはあなたがFreeBSD の安定版を追い掛けているのならば、 + sysutils/cdrtools の port または + 適切な package を利用してインストールしなければなりません。 + なお、ベースシステムを変更するとバイナリに矛盾が発生し、 + コースター を作ってしまうおそれがあります。 + したがって、システムをアップグレードする度にこの port も作り直すか、 + あるいはFreeBSD の安定版を追いかけているのならば、 新しいバージョンが利用できるようになった時に ports をアップグレードする必要があります。 cdrecord にはたくさんのオプションがありますが、 - 基本的な使い方は burncd と同様です。 + 基本的な使い方は burncd よりもさらに簡単です。 ISO 9660 イメージを書き込むには以下のようにします。 - &prompt.root; cdrecord device imagefile.iso + &prompt.root; cdrecord dev=device imagefile.iso - cdrecord のトリッキーな部分は使う + cdrecord のトリッキーな部分は、使用する を見つけるところにあります。 適切な設定を見つけるためには cdrecord フラグを使います。 - それは以下のような結果を出力するはずです。 + たとえば、以下のような結果が出力されるでしょう。 - &prompt.root; cdrecord + + CDROM + 書き込み + + &prompt.root; cdrecord -scanbus Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: @@ -849,20 +998,2296 @@ scsibus1: 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner - 1,7,0 107) * - + 1,7,0 107) * リストにあるデバイスに対する適切な - の値がここに示されています。 - あなたの CD ライタをこのリストから見つけ、 + の値がここに示されています。あなたの CD ライタをこのリストから見つけ、 カンマで区切られた 3 つの数値を - の値として使ってください。 - この例では CRW デバイスは 1,5,0 なので適切な入力は - =1,5,0 となります。 - 値を明示するもっと簡単な方法もあります。 - 詳細は &man.cdrecord.1; を見てください。 - そこにはオーディオトラックを書き込む方法や書きこみ速度その他を操作する方法も書かれています - + の値として使ってください。この例では CRW デバイスは 1,5,0 + なので、適切な入力は となります。 + 値を明示するもっと簡単な方法もあります。詳細は &man.cdrecord.1; + を見てください。そこにはオーディオトラックを書き込む方法や、 + 書き込み速度その他を操作する方法も書かれています。 + + + + オーディオ CD の複製 + + CD からオーディオデータを連続したファイルに展開し、ブランク CD + にこれらのファイルを書き込むことで、オーディオ CD + を複製することができます。 + この手順は ATAPI および SCSI ドライブの間で少し異なります。 + + + SCSI ドライブ + + + cdda2wav を使用してオーディオを展開します。 + + &prompt.user; cdda2wav -v255 -D2,0 -B -Owav + + + + cdrecord を使用して + .wav ファイルに書き出します。 + + &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav + + に説明されているように + 2.0 + が適切に指定されていることを確かめてください。 + + + + + ATAPI ドライブ + + + ATAPI CD ドライバでは、それぞれのトラックを + /dev/acddtnn のように利用できます。 + ここで d はドライブ番号であり、 + nn は二桁十進のトラック番号です。 + 一桁の場合 0 を前に付加する必要があります。 + したがって、一番目のディスクの一番目のトラックは + /dev/acd0t01、二番目のトラックは + /dev/acd0t02、三番目のトラックは + /dev/acd0t03 などとなります。 + + 適切なデバイスファイルが /dev + に存在することを確かめてください。 + 存在しなければ、たとえば次のようにして作成します。 + + &prompt.root; cd /dev +&prompt.root; sh MAKEDEV acd0t99 + + FreeBSD 5.0 では &man.devfs.5; が + /dev にエントリを自動的に作成、 + 管理するので、MAKEDEV + を使用する必要はありません。 + + + + &man.dd.1; を使用して各トラックを展開します。 + ファイルを展開する際、ブロックサイズを指定しなければなりません。 + + &prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352 +&prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352 +... + + + + burncd を使用して、 + 展開したファイルをディスクに書き込みます。 + これらがオーディオファイルであること、 + そして書き込みが終了したときに burncd + がディスクを固定 (fixate) することを明示しなければなりません。 + + &prompt.root; burncd -f /dev/acd0c audio track1.cdr track2.cdr ... fixate + + + + + + データ CD の複製 + + データ CD を、sysutils/mkisofs + を用いて作成されたイメージファイルと機能的に等価なイメージファイルにコピーできます。 + これを使用して、すべてのデータ CD を複製することができます。 + ここでの例は CDROM デバイスが acd0 + であるとしています。あなたの CDROM デバイスに読み替えてください。 + CDROM の場合には、パーティション全体またはディスク全体 + を指定するために c + をデバイス名の後に追加しなければなりません。 + + &prompt.root; dd if=/dev/acd0c of=file.iso bs=2048 + + これでディスクイメージを取り出すことができました。 + すでに説明した方法を用いて CD に書き込むことができます。 + + + + データ CD の使用 + + さて、標準的なデータ CDROM を作成したので、 + おそらく次はそれをマウントしてデータを読み出したいと思うでしょう。 + デフォルトでは &man.mount.8; は、ファイルシステムタイプを + ufs としています。 + 次のように実行しようとすると、 + + &prompt.root; mount /dev/cd0c /mnt + + Incorrect super block + というエラーが返されてマウントできないでしょう。 + CDROM は UFS ファイルシステムではないために、 + このような手順でマウントしようすると失敗します。 + ファイルシステムのタイプが ISO9660 であると + &man.mount.8; に教えさえすれば、すべてはうまく動作します。 + &man.mount.8; に + オプションを指定することでこれを行います。 + たとえば /dev/cd0c の CDROM デバイスを + /mnt にマウントしたい場合は、 + 以下のように実行します。 + + &prompt.root; mount -t cd9660 /dev/cd0c /mnt + + 使用している CDROM インタフェースによっては、 + デバイス名 + (この例では /dev/cd0c) + が異なるかもしれないことに注意してください。 + また、 オプションは、単に + &man.mount.cd9660.8; を実行します。 + この例を以下のように短縮することもできます。 + + &prompt.root; mount_cd9660 /dev/cd0c /mnt + + 一般的にこの方法では、すべてのメーカの データ CDROM + を使用することができます。しかしながら、特定の ISO 9660 + 拡張が施されたディスクでは奇妙な動作をするかもしれません。 + たとえば Joliet ディスクは、 + すべてのファイル名を 2 バイトの Unicode 文字で格納します。 + FreeBSD カーネルは (まだ) Unicode を理解できないので、 + 非英語文字はクエスチョンマークで表示されます + (FreeBSD 4.3 以降を使用している場合、CD9660 ドライバには適切な Unicode + 変換表を読み込むための急ごしらえのフックが含まれています。 + いくつかの共通のエンコードに対するモジュールは + sysutils/cd9660_unicode port + から利用可能です)。 + + CDROM をマウントしようとする時に、 + Device not configured + と表示されるかもしれません。これは、ディスクがトレーにないと + CDROM ドライブが判断しているか、 + ドライブがバス上に認識できないことを通常意味します。 + ディスクが挿入されたことを CDROM ドライブが認識するには数秒かかりますので、 + 辛抱強く待ってください。 + + バスのリセットに返答するためのタイムアウトが短いために、時々 SCSI + CDROM は認識に失敗するかもしれません。SCSI CDROM を持っている場合は、 + 次のオプションをカーネルコンフィギュレーションファイルに追加して、 + カーネルを再構築してください。 + + options SCSI_DELAY=15000 + + これより、SCSI バスを起動時に 15 秒間停止させて、 + CDROM ドライブがバスリセットに応答する機会を与えます。 + + + + Raw データ CD の書き込み + + ISO 9660 ファイルシステムを作成すること無く、 + ファイルを直接 CD に書き込むこともできます。 + この方法をバックアップ目的に使用している人もいます。 + これは、標準 CD を書き込むよりもさらに速く実行することができます。 + + &prompt.root; burncd -f /dev/acd1c -s 12 data archive.tar.gz fixate + + このように CD に書き込まれたデータを取得するには、 + raw デバイスノードからデータを読み込まなくてはなりません。 + + &prompt.root; tar xzvf /dev/acd1c + + このディスクを通常の CDROM としてマウントすることはできません。 + このような CDROM は FreeBSD を除いて、 + 他のすべてのオペレーティングシステムでは読み込むことはできません。 + CD をマウントしたいか、 + その他のオペレーティングシステムとデータを共有したい場合は、 + 上記に説明したように + sysutils/mkisofs + を使用しなくてはなりません。 + + + + + CD ライタ + ATAPI/CAM ドライバ + + ATAPI/CAM ドライバの使用 + + このドライバは、ATAPI デバイス (CD-ROM, CD-RW, DVD ドライブなど) + へ SCSI サブシステムを通じてアクセスすることを可能にします。 + これにより、sysutils/cdrdao または + &man.cdrecord.1; のようなアプリケーションが使用できるようになります。 + + このドライバを使用するためには、 + カーネルコンフィギュレーションファイルに次の行を追加する必要があります。 + + device atapicam +device scbus +device cd +device pass + + 次の行もカーネルコンフィギュレーションファイルに必要です。 + + device ata +device atapicd + + 両方がすでに存在しなければなりません。 + + それから再構築し、新しいカーネルをインストールし、 + コンピュータを再起動します。 + 起動プロセス中にディスクライタは以下のように表示されるでしょう。 + + acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 +cd0 at ata1 bus 0 target 0 lun 0 +cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device +cd0: 16.000MB/s transfers +cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed + + ドライブは /dev/cd0 + デバイスを通じてアクセスすることが可能となります。 + たとえば、次のようにして CD-ROM を /mnt + にマウントします。 + + &prompt.root; mount -t cd9660 /dev/cd0c /mnt + + root 権限で次のコマンドを実行して、 + ライタの SCSI アドレスを得ることができます。 + + &prompt.root; camcontrol devlist +<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) + + したがって、1,0,0 が &man.cdrecord.1; + およびその他の SCSI アプリケーションで使用する SCSI アドレスです。 + + ATAPI/CAM および SCSI システムの詳細は &man.atapicam.4; および + &man.cam.4; マニュアルページを参照してください。 + + + + + + + + Julio + Merino + 原作: + + + + + + Martin + Karlsson + 改訂: + + + + + + フロッピーディスクの作成と使用 + + フロッピーディスクにデータを格納することはしばしば役にたちます。 + たとえば、ある人が他のリムーバブル記録メディアを何も持っていないときや、 + 小さなデータを他のコンピュータに移動させる必要があるときです。 + + この節では、FreeBSD におけるフロッピーディスクの使用方法を説明します。 + 主に 3.5 インチの DOS フロッピーのフォーマットと操作方法を扱いますが、 + 他のフロッピーディスクの形式についても概念は似ています。 + + + フロッピーのフォーマット + + + デバイス + + 他のデバイスと同様に、フロッピーディスクは + /dev にあるエントリを通じてアクセスされます。4.X + およびそれ以前のリリースにおいて raw + フロッピーディスクにアクセスするには + /dev/fdN + または /dev/fdNX + を使用します。N はドライブ番号を表し、 + 大抵は 0 です。X は文字を表します。 + + 5.0 およびそれ以降のリリースでは、単に + /dev/fdN を使用します。/para> + + + 4.X およびそれ以前のリリースでのディスクサイズ + + /dev/fdN.size というデバイスもあります。 + size + はフロッピーディスクのサイズをキロバイトで示したものです。 + これらのエントリは低レベルフォーマットの際に、 + ディスクサイズを決定するのに使用されます。 + 1440kB は以下の例で使用されるサイズです。 + + 時々 /dev 下のエントリは (再) + 作成されなければなりません。次のコマンドでこれを行います。 + + &prompt.root; cd /dev && ./MAKEDEV "fd*" + + + + 5.X およびそれ以降のリリースでのディスクサイズ + + FreeBSD 5.0 では &man.devfs.5; が + /dev 内のエントリを自動的に管理するので、 + MAKEDEVを使用する必要はありません。 + + 所望のディスクサイズは &man.fdformat.1; に + フラグを通して渡されます。対応しているサイズは &man.fdcontrol.8; + のマニュアルページに掲載されていますが、最良に動作するは 1440kB だと助言しておきます。 + + + + + フォーマット + + フロッピーディスクは、 + 使用前に低レベルフォーマットをする必要があります。 + 通常、ベンダは低レベルフォーマット済みのディスクを出荷していますが、 + フォーマットはメディアの品質を確認するよい方法です。 + より大きな (または小さな) ディスクサイズにすることも可能ですが、 + ほとんどのフロッピーディスクのサイズは 1440kB で動作するように設計されています。 + + フロッピーディスクを低レベルフォーマットするには + &man.fdformat.1; を使用する必要があります。 + このユーティリティは引数としてデバイス名を指定します。 + + ディスクが良好かあるいは不良であるかを決定するのに役立つので、 + エラーメッセージをすべてメモに取っておいてください。 + + + 4.X 以前のリリースでのフォーマット + + /dev/fdN.size デバイスを使ってフロッピーをフォーマットします。 + 新しい 3.5 インチフロッピーディスクをドライブに挿入し、 + 以下のコマンドを実行してください。 + + &prompt.root; /usr/sbin/fdformat /dev/fd0.1440 + + + + 5.0 以降のリリースでのフォーマット + + /dev/fdN + デバイスを使用してフロッピーをフォーマットします。 + 新しい 3.5 インチフロッピーディスクをドライブに挿入し、 + 以下のコマンドを実行してください。 + + &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 + + + + + + ディスクラベル + + ディスクを低レベルフォーマットしたら、 + 次にディスクラベルを作成する必要があります。 + ディスクラベルは後で破棄されますが、 + システムがディスクのサイズとジオメトリを決定するのに必要になります。 + + 新しいディスクラベルはディスク全体を引き継ぎ、 + フロッピーのジオメトリに関する適切な情報のすべてが含まれます。 + ディスクラベルに対するジオメトリの値は + /etc/disktab に掲載されています。 + + 次のように &man.disklabel.8; を実行できます。 + + &prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440 + + &os; 5.1-RELEASE から、従来の &man.disklabel.8; + プログラムは &man.bsdlabel.8; + ユーティリティに置き換えられました。&man.bsdlabel.8; では、 + 使用されていないオプションおよびパラメタの数多くが削除されました。 + たとえば オプションは &man.bsdlabel.8; + では取り除かれました。詳細については &man.bsdlabel.8; + マニュアルページを参照してください。 + + + + ファイルシステム + + これでフロッピーを高レベルフォーマットする準備ができました。これは + FreeBSD がディスクを読み書きする新しいファイルシステムを作成します。 + 新しいファイルシステムを作成するとディスクラベルは破棄されます。 + したがって、ディスクを再フォーマットするときには、 + ディスクラベルを再作成しなくてはなりません。 + + フロッピーのファイルシステムには UFS または FAT を使用できます。 + フロッピーに対しては FAT が一般的によりよい選択です。 + + フロッピー上に新しいファイルシステムを作成するには次のようにします。 + + &prompt.root; /sbin/newfs_msdos /dev/fd0 + + これでディスクが使用できるようになりました。 + + + + フロッピーの使用 + + フロッピーを使用するために、&man.mount.msdos.8; + (4.X 以前のリリース) または &man.mount.msdosfs.8; + (5.0 以後のリリース) を用いてマウントします。 + Ports Collection から + emulators/mtools + を使用することもできます。 + + + + + データテープの作成と使用 + + テープメディア + 主要なテープメディアは 4mm, 8mm, QIC, ミニカートリッジ および DLT です。 + + + 4mm (DDS: Digital Data Storage) + + + テープメディア + DDS (4mm) テープ + + + テープメディア + QIC テープ + + 4mm テープはワークステーションのバックアップメディアの選択として + QIC に取って代わりつつあります。Conner が QIC + ドライブの主要なメーカである Archive を買収し、 + QIC ドライブの製造を中止した時にこの傾向は非常に強まりました。4mm + ドライブは小さくて静かですが、8mm + ドライブが持っている信頼性ほど、その評判は良くありません。 + また、4mm カートリッジは 8mm カートリッジに比べて安価でより小さくなっています + (3 x 2 x 0.5 インチ、76 x 51 x 12 mm)。 + ただし、8mm と同様に、4mm のヘッドはヘリカルスキャン方式 + (訳注: VTR と同様の回転ヘッドの方式) + を採用しているため、比較的短寿命です。 + + ドライブのデータスループットは、150 kB/s から + 最大で 500 kB/s 程度です。 データ容量は 1.3 GB から 2.0  + GB です。ドライブのほとんどで利用可能なハードウェア圧縮を使用すると、 + 容量が約二倍になります。 + 複数ドライブのテープライブラリユニットは単一のキャビネットに 6 つのドライブを収容可能で、自動的にテープの交換ができます。ライブラリの容量は + 240 GB に達します。 + + DDS-3 標準は現在では 12 GB (圧縮により 24 GB) + までの容量に対応しています。 + + 8mm ドライブと同様に 4mm ドライブはヘリカルスキャンを使用します。 + ヘリカルスキャン方式の利点および欠点はすべて 4mm および 8mm + ドライブの両方に当てはまります。 + + テープは 2,000 回のパスあるいは 100 + 回のフルバックアップした後には交換するべきです。 + + + + 8mm (Exabyte) + + テープメディア + Exabyte (8mm) テープ + + + 8mm テープはもっとも一般的な SCSI テープドライブです。 + これらは交換型テープの最良の選択です。ほとんどすべてのサイトが Exabyte + 2 GB 8mm テープドライブを所有しています。8mm + ドライブは信頼性があり、便利で静かです。カートリッジは安価で小型です + (4.8 x 3.3 x 0.6 インチ、122 x 84 x 15 mm)。8mm + テープの欠点の一つは、ヘッドを横切るテープの高い相対動作率により、 + ヘッドとテープは比較的短寿命ということです。 + + データのスループットは 250 kB/s から 500 kB/s 程度です。 + データサイズは 300 MB から 7 GB までです。 + ほとんどのドライブで利用可能なハードウェア圧縮を利用すると、 + 容量が約二倍になります。 + これらのドライブは単一のユニット、または 6 つのドライブと 120 のテープを一つのキャビネットに収容可能な複数のドライブのテープライブラリとして利用可能です。 + テープはユニットによって自動的に取り換えられます。 + ライブラリの容量は 840 GB 強に達します。 + + Exabyte の Mammoth モデルは + 一つのテープで 12 GB (圧縮により 24 GB) に対応し、 + 従来のテープドライブと比べ費用は約二倍になります。 + + データはヘリカルスキャンを用いてテープに記録されます。 + ヘッダはメディアに対してある角度 (約 6 度) で配置されます。 + テープはヘッドのある円筒の周の 270 度に渡って接触します。 + テープが円筒面を走行する間、円筒は回転しています。 + この結果、高密度のデータのつまったトラックは、 + 狭い間隔でテープの上端と下端の間を斜めに横切ります。 + + + + QIC + + テープメディア + QIC-150 + + + QIC-150 テープとドライブは、 + おそらく最も一般的に使われているドライブとメディアでしょう。 + QIC テープドライブは 現実的な バックアップ + ドライブとして少なくとも高価なものではありません。 + 欠点はメディアのコストです。QIC テープは 8mm や 4mm テープと比較して + GB あたりのデータの保存で 5 倍ほど高価です。 + しかし、あなたの必要とする量が半ダース程のテープで十分であれば、 + QIC は正しい選択となるかもしれません。QIC は + 最も 一般的なテープドライブです。 + すべてのサイトに QIC ドライブのどれかの容量のものがあります。問題は、 + QIC は同じようなテープ (まったく同じ場合もある) + に多様な記録密度があることです。QIC ドライブは静かではありません。 + これらのドライブはデータ記録を開始する前に音をたててシークしますし、 + リード、ライト、シークの時にはっきりと聞こえる音を出します。 + QIC テープの大きさは (6 x 4 x 0.7 インチ、152 x 102 x 17 mm) です。 + 1/4 インチ幅のテープも使用している + ミニカートリッジ + は別に議論します。テープライブラリやチェンジャは利用できません。 + + データスループットは 150kB/s から 500kB/s の範囲です。 + データ容量の範囲は 40MB から 15GB です。 + ハードウェア圧縮が最近のドライブの多くで使用できます。 + QIC ドライブは DATドライブに置き換えられつつあり、 + あまり頻繁には利用されなくなっています。 + + データは複数のトラックに分かれてテープに記録されます。 + トラックはテープメディアの長さ方向の一端からもう一方の端までです + (訳注: 1 トラックの read/write が終わるとテープの走行方向を反転させ + 次のトラックの read/write を行います)。トラックの数と、 + それに対応するトラックの幅はテープの容量によって変わります。 + すべてではありませんが、 + ほとんどの最近のドライブは少なくとも読み出しについては + (場合によっては書き込みも) 下位互換性があります。 + QIC はデータの安全性についてはよいといわれています + (ヘリカルスキャンドライブに比べて機構は単純でより丈夫です)。 + + テープは 5000 回のバックアップで寿命となるでしょう。 + + + + XXX* ミニカートリッジ + + + + + + DLT + + テープメディア + DLT + + + DLT はここに示したドライブのタイプの中で最高速のデータ転送レートを発揮します。 + 1/2 インチ (12.5mm) テープが単リールのカートリッジ + (4 x 4 x 1 インチ、100 x 100 x 25 mm) に入っています。 + カートリッジのひとつの側面全体がスイングゲートになっています。 + ドライブの機構がこのゲートを開け、テープリーダを引き出します。 + テープリーダには楕円形の穴があり、 + ドライブがテープを 引っ掛ける のに使います。 + 巻き取りのためのリールはドライブの中にあります。 + ここに挙げた他のカートリッジはすべて + (9 トラックテープはただ 1 つの例外です) + 送りだしリールと巻き取りリールの両方がカートリッジの中にあります。 + + データスループットは約 1.5 MB/s で、4mm, 8mm, QIC + テープドライブの 3 倍です。データ容量は単一のドライブで 10 GB + から 20 GB の範囲です。マルチテープチェンジャ、 + マルチテープドライブ、5 から 900 巻のテープを 1 から + 20 ドライブで扱うマルチドライブテープライブラリがあり、 + 50 GB から 9 TB の容量が得られます。 + + 圧縮によって、DLT タイプ 4 フォーマットは + 70 GB の容量まで対応しています。 + + データは (QICテープのように) テープの走行方向と平行に複数ある + トラックへ記録されます。2 つのトラックに同時書き込みを行います。 + read/write ヘッドの寿命は比較的長いと言えます。 + テープの走行が止まればヘッドとテープの間の相対運動は無いからです。 + + + + AIT + + テープメディア + AIT + + + AIT は、テープ一巻あたり (圧縮を用いて) 50 GB まで格納できる + Sony が開発した新しい形式です。 + テープにはメモリチップが搭載されており、 + テープの内容のインデックスを保持しています。 + 他のテープではテープ上のファイルの位置を把握するのに数分必要とするのですが、 + このテープドライブではインデックスを読んで直ちに決定することができます。 + SAMS:Alexandria + のようなソフトウェアは、テープのメモリチップと直接通信して、 + スクリーンに内容を表示し、 + どのファイルがどのテープにバックアップされたかを判断し、 + 正しいテープを見つけ、読み込み、 + テープからデータを復元することができます。このソフトウェアを使うと、 + 40 以上の AIT テープライブラリを制御できます。 + + このようなライブラリは大体 $20,000 くらいするので、 + 愛好家が購入できる価格帯からは外れてしまいますが。 + + + + 新品のテープを初めて使う場合 + + 全く新品の空テープを読もうとしたり書き込もうとすると、 + 処理は失敗するでしょう。次のようなメッセージがコンソールに出力されるでしょう。 + + sa0(ncr1:4:0): NOT READY asc:4,1 +sa0(ncr1:4:0): Logical unit is in process of becoming ready + + テープに識別ブロック (Identifier Block:block number 0) + がありません。QIC-525 標準を採用したすべての QIC + テープドライブは識別ブロックをテープに書き込みます。 + 2 つの解決方法があります。 + + + + mt fsf 1 + によりテープドライブはテープに識別ブロックを書き込みます。 + + + + フロントパネルのボタンを押してテープを取り出します。 + + 再びテープを挿入し、データをテープに dump + します。 + + dump は + DUMP: End of tape detected と報告し、 + コンソールには + HARDWARE FAILURE info:280 asc:80,96 + と表示されるでしょう。 + + mt rewind を使ってテープを巻戻します。 + + 次からはテープの操作はうまくいくでしょう。 + + + + + + + フロッピーへのバックアップ + + + データをバックアップするのにフロッピーは使えますか? + バックアップフロッピー + フロッピーディスク + + フロッピーディスクは以下の理由によって、 + 実際にバックアップをつくるための適切なメディアではありません。 + + + + メディアの信頼性が (特に長期間の場合) 低い。 + + + + バックアップとリストアがとても遅い。 + + + + 容量に非常に小さい + (ハードディスク全体の日々のバックアップに 1 ダース、 + 長期間なら本当にたくさん)。 + + + + しかしながら、データをバックアップするのに他の方法がないのなら、 + バックアップを取らないよりもフロッピーディスクを使う方がよいでしょう。 + + フロッピーディスクを使用せざるを得ないときは、 + 品質のよいディスクを使用してください。 + 事務所のその辺に数年転がっていたフロッピーは使わない方が良いでしょう。 + 評判のよいメーカからの新しいディスクを使用することが理想です。 + + + + それではどうやってデータをフロッピーにバックアップするのですか? + + フロッピーにバックアップする一番の方法は + (マルチボリューム) オプション付きで &man.tar.1; + コマンドを使用することです。これにより、 + 複数のフロッピーにわたってバックアップすることが可能になります。 + + カレントディレクトリとサブディレクトリのすべてのファイルをバックアップするには以下のコマンドを (root 権限で) 使用します。 + + &prompt.root; tar Mcvf /dev/fd0 * + + 始めのフロッピーが一杯になったときには、 + &man.tar.1; は次のボリュームを挿入するように要求します + (&man.tar.1; はさまざまなメディアを扱えるので、 + ボリューム (この場合フロッピーディスク) と表記します)。 + + Prepare volume #2 for /dev/fd0 and hit return: + + 指定したファイルがすべて保存されるまで + (ボリューム番号を増やしながら) 繰り返されます。 + + + + バックアップを圧縮できますか? + + tar + + + gzip + + 圧縮 + + 残念なことに &man.tar.1; はマルチボリュームアーカイブに対して、 + オプションを使うことができません。 + もちろん、すべてのファイルを &man.gzip.1; で圧縮し、 + それらを &man.tar.1; を用いてフロッピーに保存して、 + それから再び &man.gunzip.1; を用いることは可能です。 + + + + どのようにしてバックアップをリストアしたらいいのでしょうか? + + すべてのアーカイブをリストアするには以下のようにします。 + + &prompt.root; tar Mxvf /dev/fd0 + + 特定のファイルだけをリストアするには二つの方法があります。 + まず始めに、一番目のフロッピーを用いて以下のようにします。 + + &prompt.root; tar Mxvf /dev/fd0 filename + + &man.tar.1; ユーティリティは、必要なファイルを見つけるまで次のディスクを挿入するように要求します。 + + 二つ目の方法は、 + 必要なファイルがどのフロッピーに保存されているか分かっている場合、 + 単純にそのフロッピーを挿入して上記と同じコマンドを使用します。 + あるフロッピー上にある一番目のファイルが、 + その前のフロッピーから続いている場合は、 + そのファイルのリストアを要求していなくても &man.tar.1; + はそれをリストアできないと警告することに注意してください! + + + + + バックアップの基本 + + 主要なバックアッププログラムは + &man.dump.8;, &man.tar.1;, &man.cpio.1; の三つです。 + + + ダンプとリストア + + バックアップソフトウェア + ダンプ / リストア + + dump + restore + + 伝統的な &unix; のバックアッププログラムは + dump および restore です。 + これらはファイルシステムによって作成されたファイル、リンク、 + ディレクトリの下位の抽象的概念であるディスクブロックの集合としてドライブを操作します。dump + はデバイス上のすべてのファイルシステムをバックアップします。 + ファイルシステムの一部分だけ、または二つ以上のファイルシステムにわたるディレクトリツリーをバックアップすることはできません。dump + はファイルおよびディレクトリをテープに書き込みませんが、 + ファイルおよびディレクトリを含んだ raw データブロックを書き込みます。 + + ルートディレクトリで dump を使用した場合、 + /home, /usr + や他のディレクトリの多くをバックアップしなくてもよいでしょう。 + 通常これらは他のファイルシステムへのマウントポイントであるか、 + シンボリックリンクであるからです。 + + dump には AT&T UNIX のバージョン 6 + (およそ 1975 年) の初期から残る奇癖があります。 + デフォルトのパラメタは、現在利用可能な高密度メディア (最大 62,182 ftpi) + ではなく、9 トラックテープ (6250 bpi) に最適な値となっています。 + 現在のテープドライブの容量を利用するために、 + これらのデフォルトはコマンドライン上でオーバライドしなくてはいけません。 + + .rhosts + rdump および rrestore + を用いて他のコンピュータに接続されているテープドライブにネットワーク経由でデータをバックアップすることも可能です。 + どちらのプログラムもリモートのテープドライブにアクセスするために + rcmd および ruserok + に依存しています。 + したがって、バックアップを実行するユーザがリモートコンピュータの + .rhosts ファイルに書かれていなければなりません。 + rdump および rrestore + の引数はリモートコンピュータに適切なものを用いなければなりません。 + FreeBSD コンピュータから komodo と呼ばれる Sun + に接続されている Exabyte テープへ rdump + するには以下のようにします。 + + &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 + + 注意: + ここではセキュリティが確保されており、 + .rhosts + ファイルによる認証が許可されているものと暗黙的に仮定しています。 + あなたの状況がこれにあてはまるか注意深く調べてください。 + + さらなる安全のために ssh 上で + dump および restore + を使用することも可能です。 + + + <application>ssh</application> 上で <command>dump</command> を使用する + + &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh1 -c blowfish \ + targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz + + + + + <command>tar</command> + + バックアップソフトウェア + tar + + + &man.tar.1; は AT&T UNIX の バージョン 6 (1975 年ごろ) + にまでさかのぼることができます。tar + はファイルシステムと協調して動作し、 + ファイルとディレクトリをテープに書き込みます。tar + は &man.cpio.1; + で使用可能なフルレンジのオプションには対応していませんが、 + tarcpio + が使用するような奇妙なコマンドパイプラインを必要ありません。 + + tar + tar + の多くの版はネットワーク経由のバックアップには対応してません。 + FreeBSD が使用している GNU 版の tar は、 + rdump + と同様の構文でリモートデバイスに対応しています。 + komodo と呼ばれる Sun に接続された Exabyte + テープドライブに tar + を実行するには以下のようにします。 + + &prompt.root; /usr/bin/tar cf komodo:/dev/nsa8 . 2>&1 + + リモートデバイスに対応していない版に対しては、パイプラインと + rsh + を使用してリモートテープドライブにデータを送ることができます。 + + &prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20b + + ネットワークを越えたバックアップのセキュリティを懸念しているなら、 + rsh の代わりに ssh + を使用するべきです。 + + + + <command>cpio</command> + + バックアップソフトウェア + cpio + + + &man.cpio.1; は本来 &unix; + ファイルを磁気メディアで交換するためのプログラムです。 + cpio はバイトスワッピング、 + 多くの異なるアーカイブフォーマットの書き込みオプション + (他にも多数のオプションがあります) があり、 + パイプで他のプログラムにデータを渡すこともできます。 + この最後にあげた特徴により、cpio + はインストールメディアとしては優れた選択です。cpio + はディレクトリツリーの探索の機能はなく、ファイルリストは + stdin からの入力でなくてはなりません。 + cpio + + cpio + はネットワーク経由のバックアップには対応していません。 + 以下のようにパイプラインと rsh + を用いてリモートテープドライブにデータを送ることができます。 + + &prompt.root; for f in directory_list; do +find $f >> backup.list +done +&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" + + directory_list + はバックアップしたいディレクトリのリストで、 + user@host + はバックアップを実行したいユーザとホスト名の組であり、 + backup_device + はバックアップを書き込みたいデバイスです + (たとえば /dev/nsa0)。 + + + + <command>pax</command> + + バックアップソフトウェア + pax + + pax + POSIX + IEEE + + &man.pax.1; は tarcpio + に対する IEEE/&posix; の答えです。長年の間、さまざまな版の + tar および cpio + は互いにわずかながら非互換性を有していました。 + それらをしらみ潰しに標準化する代わりに、&posix; + は新しいアーカイブユーティリティを作りました。 + pax は専用に開発された新しいフォーマットに加えて、 + いくつもの cpiotar + のフォーマットの読み書きに対応しようと試みています。コマンド群は + tar よりも cpio + の方にいくぶん似ています。 + + + + <application>Amanda</application> + + バックアップソフトウェア + Amanda + + Amanda + + + Amanda (Advanced Maryland + Network Disk Archiver) は単一のプログラムではなく、 + クライアント/サーバ型のバックアップシステムです。 + Amanda サーバは、 + Amanda クライアントを有する + ネットワークに接続されたコンピュータからデータを受け取り、 + 備え付けられたテープドライブにバックアップします。 + いくつもの大容量ディスクを備えたサイトでの共通の問題は、 + データディレクトリをテープにバックアップするのに時間がかかりすぎることです。 + Amanda はこの問題を解決します。 + Amanda は + ホールディングディスク を使用して、 + 同時に複数のファイルシステムのバックアップを行うことができます。 + Amanda の設定ファイルにかかれたすべてのファイルシステムのフルバックアップを特定の間隔でとるために + アーカイブセット と呼ばれるテープグループを作成します。 + アーカイブセット には + 夜間に作成されるすべてのファイルシステムの増分 (または差分) + のバックアップも含まれます。 + 障害が起きたファイルシステムのリストアには、 + 最も新しいフルバックアップと増分のバックアップが必要です。 + + 設定ファイルでバックアップの制御と + Amanda + によるネットワークトラフィック量を設定します。 + Amanda は上記のバックアッププログラムのいずれかを使用してデータをテープに書き込みます。 + Amanda は port または package + として利用可能です。デフォルトではインストールされていません。 + + + + 何もしない + + 何もしない + というのはコンピュータのプログラムではありませんが、 + バックアップの戦略として最も広く採用されています。 + これには初期投資が必要ありません。 + 従わなければならないバックアップスケジュールもありません。 + ただ何もしないだけです。データに何か起きたら苦笑いして耐えてください! + + あなたにとって時間やデータの価値が少ないか、 + あるいはまったくないのであれば 何もしない + のはあなたのコンピュータに最も適したバックアッププログラムでしょう。 + しかし注意してください。&unix; は便利なツールです。6 + ヵ月も使用していれば価値のあるファイルの山が出来上がっているでしょう。 + + 何もしない + のはコンピュータによって正確に再作成される + /usr/obj + やその他のディレクトリツリーについては適切なバックアップ方法です。 + HTML または &postscript; 版のこのハンドブックが一つの例です。 + これらの文書形式は SGML ファイルから作成されたものです。 + HTML または &postscript; ファイルのバックアップは必要ありません。 + SGML ファイルは定期的にバックアップされます。 + + + + どのバックアッププログラムが最適ですか? + + LISA + + + 定期的に &man.dump.8; しましょう。 + Elizabeth D. Zwicky + はここで検討したプログラムすべてについて拷問的なテストを行いました。 + すべてのデータと &unix; + ファイルシステムの状態すべてを保存するのに最適なのは、明らかに + dump でしょう。 + Elizabeth は大きく変化に富んだ異常な状態 + (いくつかはあまり異常でない状態のものもあります) + のファイルシステムを作成し、それぞれのプログラムを用いてそれらのファイルシステムのバックアップとリストアのテストを行いました。特色のある状態には、 + ホールを持つファイル、ホールとヌルブロックを持つファイル、 + 奇妙な文字をファイル名に持つファイル、読み込み不可、 + 書き込み不可のファイル、デバイスファイル、 + バックアップ中のファイルのサイズ変更、 + バックアップ中のファイルの作成および削除、などがあります。 + 彼女は 1991 年 10 月の LISA V で結果の発表をしています。 + torture-testing Backup and Archive Programs を参照してください。 + + + + 緊急時のリストア手順 + + + 惨事の起きる前に + + 起き得るどのような惨事に対しても、 + 必要な手順は以下の 4 ステップだけです。 + + disklabel + + + まず始めに、 + 各ディスクのディスクラベルとファイルシステムテーブル + (/etc/fstab)、 + すべてのブートメッセージをそれぞれ 2 枚ずつ印刷します + (たとえば disklabel da0 | lpr)。 + + fix-it フロッピー + 次に、ブートフロッピーと fix-it フロッピー + (boot.flp および fixit.flp) + にそのシステムのデバイスがすべて含まれているか確認します。 + 最も簡単に確認する方法は、フロッピーをドライブに入れてマシンをリブートしてブートメッセージを確認することです。 + あなたのシステムのデバイスのすべてが含まれ、 + 機能していれば次のステップに進んでください。 + + そうでないなら、あなたのディスクのすべてをマウントでき、 + テープドライブにもアクセスできるカスタムブートフロッピーを二つ作成する必要があります。 + これらのフロッピーは fdisk, + disklabel, newfs, + mount + および利用したいバックアッププログラムを含んでいなければなりません。 + これらのプログラムをスタティックリンクされていなければなりません。 + dump を使用するのなら、このフロッピーに + restore も含まれていなければなりません。 + + 続いて、定期的にバックアップテープを作成します。 + 最後のバックアップの後で行われた変更は回復することができないかもしれません。 + バックアップテープにライトプロテクトをしてください。 + + 最後に、フロッピー (boot.flp と + fixit.flp + または上記で作成した二枚のカスタムブートフロッピーディスク) + およびバックアップテープのテストをします。手順のメモを作りましょう。 + このメモはブートフロッピーとバックアップテープにいれておき、 + 印刷しておきます。 + リストアを行うときはおそらく取り乱しているでしょうから、 + このメモはバックアップテープを壊すようなことを防ぐのに役立つでしょう + (どのように破壊してしまうのでしょう? + tar xvf /dev/sa0 とする代わりに、偶然 + tar cvf /dev/sa0 + と入力してバックアップテープを上書きしてしまうかもしれません)。 + + + 訳注 + 上書きはライトプロテクトをしておけば防げますが、 + 何らかの原因でプロテクトがはずれているかもしれません。 + ちなみに訳者の経験から言えば、 + 上のようなミスタイプは結構起きます。 + + + 安全性を増すために、 + ブートフロッピーと二巻のバックアップテープを毎回とります。 + 一方を離れた場所に保管します。 + 離れた場所は同じ事務所の建物の地下室ではいけません。 + 世界貿易センタービルにあった数多くの会社は、 + 苦い経験によりこの教訓を得ました。 + 離れた場所とは、コンピュータやディスクドライブからかなり離れて、 + 物理的に分離されされていなければなりません。 + + + ブートフロッピーを作成するスクリプト + + /mnt/sbin/init +gzip -c -best /sbin/fsck > /mnt/sbin/fsck +gzip -c -best /sbin/mount > /mnt/sbin/mount +gzip -c -best /sbin/halt > /mnt/sbin/halt +gzip -c -best /sbin/restore > /mnt/sbin/restore + +gzip -c -best /bin/sh > /mnt/bin/sh +gzip -c -best /bin/sync > /mnt/bin/sync + +cp /root/.profile /mnt/root + +cp -f /dev/MAKEDEV /mnt/dev +chmod 755 /mnt/dev/MAKEDEV + +chmod 500 /mnt/sbin/init +chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt +chmod 555 /mnt/bin/sh /mnt/bin/sync +chmod 6555 /mnt/sbin/restore + +# +# create the devices nodes +# +cd /mnt/dev +./MAKEDEV std +./MAKEDEV da0 +./MAKEDEV da1 +./MAKEDEV da2 +./MAKEDEV sa0 +./MAKEDEV pty0 +cd / + +# +# create minimum file system table +# +cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < + + + + + 惨事の後は + + 重要な問題は、ハードウェアが生き残ったかどうかです。 + 定期的にバックアップを取っていれば、 + ソフトウェアについて心配する必要はありません。 + + ハードウェアに障害があれば、 + コンピュータを使用する前にその部品を交換してください。 + + ハードウェアに問題が無ければ、フロッピーを確認してください。 + カスタムブートフロッピーディスクを使用しているのであれば、 + シングルユーザモードでブートしてください (boot: + プロンプトで -s を入力します)。 + それから次の項に進んでください。 + + boot.flpfixit.flp + を使用しているのであればこのまま読み進めてください。 + boot.flp + フロッピーをフロッピードライブに入れて、 + コンピュータを起動してください。 + 本来のインストールメニューが画面に表示されます。 + Fixit--Repair mode with CDROM or floppy. + オプションを選択します。指示された通り + fixit.flp をいれてください。 + restore と必要となるその他のプログラムは + /mnt2/stand にあります。 + + そして、ファイルシステムを一つずつ回復します。 + + + mount + + root パーティション + + disklabel + + + newfs + + 最初のディスクのルートパーティションを mount + してみてください (たとえば mount /dev/da0a /mnt)。 + ディスクラベルが破壊されている場合は、disklabel + を用いてあらかじめ印刷して保存しておいた通りにパーティションを作り直し、ディスクラベルを作成してください。 + newfs を使用してファイルシステムを作り直します。 + ルートパーティションを読み書き可能にマウントし直します + (mount -u -o rw /mnt)。 + バックアッププログラムとバックアップテープを使用して、 + このファイルシステムのデータを回復します + (たとえば restore vrf /dev/sa0)。 + ファイルシステムをアンマウントします + (たとえば umount /mnt)。 + 障害を受けたファイルシステムそれぞれについて繰り返してください。 + + システムが動き出したら、 + 新しいテープにデータをバックアップしてください。 + どのような理由で再び事故が起きたり、データが失われるかわかりません。 + これに数時間を費すことで、後々の災難から救われます。 + + + + * I Did Not Prepare for the Disaster, What Now? + + +]]> + + + + + + + + Marc + Fonvieille + 再構成および追記: + + + + ネットワーク、メモリ、そしてファイルベースのファイルシステム + 仮想ディスク + + ディスク + 仮想 + + + FreeBSD にはフロッピーや CD, + ハードディスクなどの手元の計算機に取り付けたディスクの他に、 + 別の形態のディスク、仮想ディスク、もあります。 + + NFS + Coda + + ディスク + メモリ + + + これには、Network File System + のようなネットワークファイルシステムや Coda, + メモリベースのファイルシステムおよびファイルベースのファイルシステムがあります。 + + 稼働させている FreeBSD のバージョンによって、 + ファイルベースおよびメモリベースのファイルシステムを作成したり操作するために、異なるツールを使用しなければならないでしょう。 + + + FreeBSD 4.X の使用者は必要なデバイスを作成するために + &man.MAKEDEV.8; を使用しなければならないでしょう。FreeBSD 5.0 + 以降では、&man.devfs.5; がデバイスノードを自動的に割り当ててくれるので、 + 使用者が意識する必要はありません。 + + + + FreeBSD 4.X でファイル中に構築されるファイルシステム + + ディスク + ファイルベース (4.X) + + + &man.vnconfig.8; + ユーティリティを使えば擬似ディスクデバイスを設定し、 + 有効にすることができます。 + vnode とはファイルの内部的な表現方法であり、 + ファイルに関する操作の中心となるものです。つまり、&man.vnconfig.8; + はファイルシステムを生成したり操作したりするためにファイルを用いるのです。 + 一つ例を挙げると、 + ファイルに収められたフロッピーや CD-ROM のイメージをマウントするために用いることができます。 + + &man.vnconfig.8; を使用するためには、 + カーネルが &man.vn.4; デバイスに対応している必要があります。 + そうでなければ、カーネルコンフィギュレーションファイルに + 次の行を追加してカーネルを再構築し、システムを再起動してください。 + + pseudo-device vn + + 既にあるファイルシステムイメージのマウント + + + FreeBSD 4.X での vnconfig を用いた既存のファイルシステムイメージのマウント + + &prompt.root; vnconfig vn0 diskimage +&prompt.root; mount /dev/vn0c /mnt + + + &man.vnconfig.8; を用いたファイルシステムイメージの新規作成 + + + <command>vnconfig</command> を用いたファイルベースディスクの新規作成 + + &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k +5120+0 records in +5120+0 records out +&prompt.root; vnconfig -s labels -c vn0 newimage +&prompt.root; disklabel -r -w vn0 auto +&prompt.root; newfs vn0c +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 +&prompt.root; mount /dev/vn0c /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/vn0c 4927 1 4532 0% /mnt + + + + + FreeBSD 5.X でファイル中に構築されるファイルシステム + + ディスク + ファイルベース (5.X) + + + &man.mdconfig.8; ユーティリティは FreeBSD 5.X において + メモリディスク (&man.md.4;) を設定し、有効にするために使用されます。 + &man.mdconfig.8; を使用するためには &man.md.4; モジュールを読み込むか、 + カーネルコンフィギュレーションファイルに &man.md.4; + デバイスを追加してカーネルを再構築し、システムを再起動してください。 + + device md + + &man.mdconfig.8; コマンドは、 + 三つのタイプのメモリベース仮想ディスクに対応しています。 + &man.malloc.9; を用いて割り当てられたメモリディスク、 + ファイルをベースにしたメモリディスク、 + およびスワップ領域をベースにしたメモリディスクです。 + 想定される使用法は、ファイル内に保持されたフロッピーイメージまたは + CD イメージをマウントすることです。 + + 既にあるファイルシステムイメージのマウント + + + FreeBSD 5.X での <command>mdconfig</command> を用いた既存のファイルシステムイメージのマウント + + &prompt.root; mdconfig -a -t vnode -f diskimage -u 0 +&prompt.root; mount /dev/md0c /mnt + + + &man.mdconfig.8; を用いたファイルシステムイメージの新規作成 + + + <command>mdconfig</command> を用いたファイルシステムイメージの新規作成 + + &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k +5120+0 records in +5120+0 records out +&prompt.root; mdconfig -a -t vnode -f newimage -u 0 +&prompt.root; disklabel -r -w md0 auto +&prompt.root; newfs md0c +/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 +&prompt.root; mount /dev/md0c /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md0c 4846 2 4458 0% /mnt + + + オプションを用いて + ユニット番号を指定しない場合、&man.mdconfig.8; + は未使用のデバイスを自動的に選択するために + &man.md.4; デバイスの auto-unit 機能を使用します。 + 割り当てられたユニットの名前は md4 + のように標準出力に出力されます。&man.mdconfig.8; + の詳細についてはマニュアルページを参照してください。 + + &os; 5.1-RELEASE から、従来の &man.disklabel.8; + プログラムは &man.bsdlabel.8; + ユーティリティに置き換えられました。&man.bsdlabel.8; では、 + 使用されていないオプションおよびパラメタの数多くが削除されました。 + たとえば オプションは &man.bsdlabel.8; + では取り除かれました。詳細については &man.bsdlabel.8; + マニュアルページを参照してください。 + + &man.mdconfig.8; ユーティリティは大変役に立ちますが、 + ファイルベースのファイルシステムを作成するために、 + 多くのコマンドの入力が必要となります。FreeBSD 5.0 では + &man.mdmfs.8; と呼ばれるツールも用意されています。このプログラムは + &man.mdconfig.8; を用いて &man.md.4; ディスクを設定し、&man.newfs.8; + を用いて UFS ファイルシステムを作成し、&man.mount.8; + を用いてマウントします。たとえば、上記と同じファイルシステムを作成し、 + マウントしたい場合は、下記のように入力するだけです。 + + &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k +5120+0 records in +5120+0 records in +5120+0 records out +&prompt.root; mdmfs -F newimage -s 5m md0 /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md0 4846 2 4458 0% /mnt + + ユニット番号を指定せずに + オプションを使用した場合、&man.mdmfs.8; + は未使用のデバイスを自動的に選択するために &man.md.4; デバイスの + auto-unit 機能を使用します。&man.mdmfs.8; + についての詳細はマニュアルページを参照してください。 + + + + FreeBSD 4.X でのメモリベースのファイルシステム + + ディスク + メモリファイルシステム (4.X) + + + &man.md.4; ドライバは FreeBSD 4.X + においてメモリファイルシステムを作成するために単純で効果的な手段です。 + メモリを割り当てるために &man.malloc.9; 関数が使用されます。 + + &man.vnconfig.8; を用いて作成したファイルシステムを例に取ると、 + 以下のようにします。 + + + FreeBSD 4.X での md メモリディスク + + &prompt.root; dd if=newimage of=/dev/md0 +5120+0 records in +5120+0 records out +&prompt.root; mount /dev/md0c /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md0c 4927 1 4532 0% /mnt + + + 詳細については &man.md.4; マニュアルページを参照してください。 + + + + FreeBSD 5.X でのメモリベースのファイルシステム + + ディスク + メモリファイルシステム (5.X) + + + メモリベースおよびファイルベースのファイルシステムに対しても + 同じツール (&man.mdconfig.8; または &man.mdmfs.8;) を使用できます。 + メモリベースのファイルシステムに対する記憶領域は + &man.malloc.9; 関数を用いて割り当てられます。 + + + <command>mdconfig</command> を用いたメモリベースディスクの新規作成 + + &prompt.root; mdconfig -a -t malloc -s 5m -u 1 +&prompt.root; newfs -U md1 +/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 +&prompt.root; mount /dev/md1 /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md1 4846 2 4458 0% /mnt + + + + <command>mdmfs</command> を用いたメモリベースディスクの新規作成 + &prompt.root; mdmfs -M -s 5m md2 /mnt +&prompt.root; df /mnt +Filesystem 1K-blocks Used Avail Capacity Mounted on +/dev/md2 4846 2 4458 0% /mnt + + + &man.mdconfig.8; のコマンドラインの を + に置き換えることで、&man.malloc.9; + 関数によるファイルシステムを使用する代わりに + スワップ領域を使用することが可能です。デフォルトでは &man.mdmfs.8; + ユーティリティはスワップベースのディスクを作成します + ( なし)。詳細は &man.mdconfig.8; および + &man.mdmfs.8; マニュアルページを参照してください。 + + + + システムからメモリディスクを切り離す + + ディスク + メモリディスクの切り離し + + + メモリベースまたはファイルベースのファイルシステムが使用されていない場合、 + すべてのリソースをシステムに開放するべきです。 + はじめにファイルシステムをアンマウントします。 + 次にシステムからディスクを切り離し、リソースを開放するために + &man.mdconfig.8; を使用します。 + + たとえば /dev/md4 によって使用されたすべてのリソースを切り離し、開放するには以下のようにします。 + + &prompt.root; mdconfig -d -u 4 + + mdconfig -l コマンドを使用することによって、 + 設定された &man.md.4; デバイスについての情報を表示することが可能です。 + + FreeBSD 4.X では &man.vnconfig.8; はデバイスを切り離すのに使用されます。たとえば /dev/vn4 によって使用されたすべてのリソースを切り離し、開放するには以下のようにします。 + + &prompt.root; vnconfig -u vn4 + + + + + + + + Tom + Rhodes + 寄稿: + + + + + + ファイルシステムのスナップショット + + + ファイルシステム + スナップショット + + + FreeBSD 5.0 は + Soft Updates + + と協調するファイルシステムスナップショットという新しい機能を提供します。 + + スナップショットは指定したファイルシステムのイメージを作成し、 + また、ファイルとして扱うことができるようになります。 + スナップショットファイルはアクションが実行されるファイルシステム内で作成されなければなりません。 + また、ユーザは一つのファイルシステムあたり 20 + までスナップショットを作成することができます。 + 有効なスナップショットはスーパーブロック内に記録されるので、 + リブートしてから永続的にアンマウントおよびリマウントを記録します。 + スナップショットが必要無くなったときは、 + 標準の &man.rm.1; コマンドを用いて削除することができます。 + スナップショットはどんな順番で削除してもよいのですが、 + その他のスナップショットが開放されたブロックのうちいくらかをおそらく必要とするので、 + 使用されていたすべてのスペースを得られるとは限りません。 + + 初めてスナップショットを作成すると、root + でさえも書き込めないように + フラグ (&man.chflags.1; のマニュアルページを参照) が設定されます。 + &man.unlink.1; コマンドは、スナップショットに + フラグが設定されていてもそれらを削除することのできる例外です。 + したがって、スナップショットファイルを削除する前に、 + フラグをクリアする必要はありません。 + + スナップショットは &man.mount.8; コマンドを用いて作成されます。 + /var のスナップショットを + /var/snapshot/snap に作成したいときは、 + 以下のコマンドを使用します。 + + &prompt.root; mount -u -o snapshot /var/snapshot/snap /var + + スナップショットにはいくつかの利用法があります。 + + + + スナップショットをバックアップ目的に使用する管理者もいます。 + なぜならスナップショットは CD やテープに転送できるからです。 + + + + ファイルの完全性を検証するために、 + &man.fsck.8; をスナップショットに実行してもよいでしょう。 + スナップショットをマウントしたときにそのファイルシステムがクリーンであったとすると、 + そのスナップショットをマウントするときはいつでもクリーンな + (そして変更のない) 結果を得るでしょう。 + これは本質的には バックグラウンド &man.fsck.8; が行うことです。 + + + + スナップショット上で &man.dump.8; ユーティリティを実行すると、 + スナップショットのファイルシステムとタイムスタンプが一致するダンプが返されるでしょう。 + &man.dump.8; は オプションを使用することで、 + 一つのコマンドでスナップショットをとり、ダンプイメージを作成して、スナップショットを削除することが可能です。 + + + + ファイルシステムの 凍結された イメージとしてスナップショットを + &man.mount.8; します。 + /var/snapshot/snap のスナップショットを + &man.mount.8; するには以下のようにします。 + + &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 +&prompt.root; mount -r /dev/md4 /mnt + + + + + これで /mnt にマウントした + 凍結状態の /var ファイルシステム構造を探索できます。 + すべてがスナップショットが作成された時と同じ状態になるはずです。ただし、 + 以前に作成されたスナップショットがサイズ 0 のファイルとして現れることが唯一の例外です。 + スナップショットの使用を終えた場合、以下のようにアンマウントできます。 + + &prompt.root; umount /mnt +&prompt.root; mdconfig -d -u 4 + + + およびファイルシステムスナップショットに関する詳細については、 + http://www.mckusick.com/ + にある Marshall Kirk McKusick のウェブサイトを参照してください。 + ここには技術的な論文もあります。 + + + + ファイルシステムクォータ + + アカウンティング + ディスク領域 + + ディスククォータ + + クォータは OS の持っているオプショナルな機能であり、 + ファイルシステム毎にユーザやグループのメンバが使用するディスク容量やファイルの数を制限することができます。 + この機能は、あるユーザやグループに割り当てられるリソースの量を制限することが望ましいようなタイムシェアリングシステムにおいてよく用いられます。 + この機能を用いることによって使用可能なディスク容量の全てを一人のユーザやユーザのグループが使ってしまうことを防ぐことができます。 + + + ディスククォータを使うためのシステム設定 + + ディスククォータの設定を始める前に、 + まずはカーネルにクォータが組み込まれていることを確認しましょう。 + カーネルのコンフィグレーションファイルに次の行を入れます。 + + options QUOTA + + 標準の GENERIC カーネルでは、 + この機能は有効になっていませんので、 + ディスククォータを利用するためには上記を設定後カーネルを構築しなおし、 + 作成されたカスタムカーネルをインストールしなければいけません。 + カーネルのコンフィグレーションに関しては + をご覧ください。 + + 次に /etc/rc.conf + でディスククォータを有効にする必要があります。 + 次の行を加えましょう。 + + enable_quotas="YES" + + ディスククォータ + チェック + + + 起動時の動作をさらに細かくコントロールするためにもう一つ設定用の変数があります。 + 通常、起動時には &man.quotacheck.8; + によりそれぞれのファイルシステムのクォータの整合性がチェックされます。 + &man.quotacheck.8; の役割は、 + クォータデータベースのデータが正しくファイルシステム上のデータを反映しているか確認することです。 + これはかなり時間を食う処理であり、 + 起動にかかる時間に大きな影響を及ぼします。 + このステップをとばしたい人のために + /etc/rc.conf に次の変数が用意されています。 + + check_quotas="NO" + + もし 3.2-RELEASE よりも前の FreeBSD + を使っているならば設定はもっと単純で、一つの変数のみです。 + 次の行を /etc/rc.conf で設定してください。 + + check_quotas="YES" + + 最後に、ファイルシステム毎にディスククォータを有効にするために + /etc/fstab を編集する必要があります。 + ここでユーザもしくはグループ、 + あるいはその両方にクォータを設定することができるのです。 + + あるファイルシステム上にユーザ毎のクォータを有効にする場合には、 + /etc/fstab + 中でクォータを有効にしたいファイルシステムエントリのオプション部に + を加えます。 + 例えば次のようになります。 + + /dev/da1s2g /home ufs rw,userquota 1 2 + + 同様に、グループクォータを有効にするには + キーワードの代わりに + を用います。 + ユーザとグループの両方のクォータを有効にするには次のようにします。 + + /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 + + デフォルトでは、 + クォータファイルはそのファイルシステムのルートディレクトリに + ユーザ用、グループ用それぞれ + quota.user, quota.group + という名前で置かれます。さらに詳しい情報は &man.fstab.5; + をご覧ください。&man.fstab.5; + マニュアルには別の場所を指定することができると書いてはありますが、 + あまり勧められません。なぜなら、 + 様々なクォータ関係のユーティリティがそれにうまく対処できるようにないためです。 + + この時点で、 + 一度システムを再起動して新しいカーネルで立ち上げましょう。 + /etc/rc が自動的に適当なコマンドを実行し、 + /etc/fstab + で有効にした全てのクォータ用に初期ファイルを作ってくれます。 + 従って、空のクォータファイルを手で作る必要は一切ありません。 + + 通常の運用では &man.quotacheck.8; や + &man.quotaon.8;, &man.quotaoff.8; + といったコマンドを手で動かす必要はないのですが、 + 慣れるためにもこれらのマニュアルは読んでおきましょう。 + + + + クォータリミットの設定 + + ディスククォータ + 制限 + + + 一旦クォータを有効にしたら本当に有効になっているのか確認しておきましょう。簡単な方法は次のコマンドを実行することです。 + + &prompt.root; quota -v + + ディスクの使用状況と、クォータが有効になっているファイルシステムのクォータリミットが一行にまとめて出力されるでしょう。 + + さあ、&man.edquota.8; でクォータリミットを設定する準備ができました。 + + ユーザやグループが使用できるディスク容量や作成できるファイルの数に制限をかけるにはいくつかのオプションがあります。割り当てディスク容量を制限 + (ブロッククォータ) することもファイル数を制限 (inode クォータ) + することも、両者を組み合わせることもできるのです。 + これらの制限はそれぞれさらに二つのカテゴリ、 + ハードリミットとソフトリミット、に分けることができます。 + + ハードリミット + ハードリミットを越えることはできません。 + あるユーザが一旦ハードリミットにたっした場合、 + そのファイルシステムではそれ以上の割り当ては望めません。 + 例えばあるファイルシステム上に + 500 ブロックのハードリミットが設定されており現在 + 490 ブロックを使用している場合、さらに 10 ブロックしか使えないのです。 + 11 ブロックを使おうとすると失敗します。 + + ソフトリミット + 一方、 + ソフトリミットはある限られた時間内であれば越えることができます。 + この時間は猶予期間として知られており、デフォルトでは 1 週間です。 + あるユーザが自分のソフトリミットを猶予期間よりも長い間越えているとソフトリミットはハードリミットに変わり、それ以上使用することはできなくなります。 + ユーザがソフトリミットよりも減らせば猶予期間はリセットされます。 + + 以下は &man.edquota.8; + コマンドを実行した時に見ることになるであろう例です。 + &man.edquota.8; コマンドが起動されると環境変数 + EDITOR で指定されるエディタに入ります。 + EDITOR が設定されていない場合には + vi が起動されます。 + ここでクォータリミットを編集します。 + + &prompt.root; edquota -u test + + Quotas for user test: +/usr: blocks in use: 65, limits (soft = 50, hard = 75) + inodes in use: 7, limits (soft = 50, hard = 60) +/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) + inodes in use: 0, limits (soft = 50, hard = 60) + + 通常、クォータが有効になっているファイルシステム毎に 2 行あります。 + 一つはブロックリミット用でもう一つは inode リミット用です。 + クォータリミットを変更したいところを書き変えるだけでかまいません。 + たとえばこのユーザのブロックリミットを、ソフトリミットは 50 から 500 + へ、ハードリミットは 75 から 600 に変更する場合、 + + /usr: blocks in use: 65, limits (soft = 50, hard = 75) + + から + + /usr: blocks in use: 65, limits (soft = 500, hard = 600) + + へ書き換えます。新しいクォータリミットはエディタを終了すれば設定されます。 + + ある範囲の UID + に対してクォータリミットを設定したい場合がありますが、このような時には + &man.edquota.8; コマンドの + オプションを使うといいでしょう。まず、 + あるユーザに割り当てたいクォータリミットを設定し、次に + edquota -p protouser startuid-enduid + を実行するのです。例えばユーザ test + にお望みのクォータリミットが付いているとしましょう。 + 次のコマンドにより 10,000 から 19,999 の間の UID + に対して同じクォータリミットを付けることができるのです。 + + &prompt.root; edquota -p test 10000-19999 + + さらに詳しいことは &man.edquota.8; のマニュアルページをご覧ください。 + + + + クォータリミットとディスク使用状況のチェック + + ディスククォータ + チェック + + + &man.quota.1; または &man.repquota.8; + といったコマンドを使ってクォータリミットやディスクの利用状況を確認することができます。 + &man.quota.1; コマンドは個々のユーザやグループのクォータやディスク利用状況を確認するのに使えます。 + ユーザは自身のクォータ、そして所属するグループのグループのみ確認することができます。 + スーパーユーザのみが他のユーザや所属していないグループのクォータと利用状況を見ることができます。 + &man.repquota.8; コマンドを使うと、クォータが有効になっているファイルシステム用の全てのクォータやディスク容量のサマリを得ることができます。 + + 以下は二つのファイルシステムにクォータ制限がかけられているユーザに対するquota -v コマンドの出力例です。 + + Disk quotas for user test (uid 1002): + Filesystem blocks quota limit grace files quota limit grace + /usr 65* 50 75 5days 7 50 60 + /usr/var 0 50 75 0 50 60 + + 猶予期間 + 上の例で、/usr + ファイルシステム上ではこのユーザは現在 + 50 ブロックというソフトリミットを 15 ブロックオーバーし + 5 日間の猶予期間が残っています。アスタリスク * + はクォータリミットを越えているユーザを示していることに注意してください。 + + 通常、そのユーザが全く使っていないファイルシステムは、 + クォータリミットが付けられているとしても + &man.quota.1; コマンドの出力には現われません。 + オプションを用いればそのようなファイルシステム、 + 上の例では /usr/var、 + を表示することができます。 + + + + NFS 上の クォータ + NFS + + クォータは NFS サーバ上のクォータサブシステムにより実行されます。 + &man.rpc.rquotad.8; デーモンにより、NFS クライアント上の &man.quota.1; + コマンドは情報を得ることができ、クライアントマシン上のユーザが自分のクォータの統計を見ることができます。 + + /etc/inetd.conf において以下のように + rpc.rquotad を有効にしましょう。 + + rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad + + そして以下のように inetd を再起動します。 + + &prompt.root; kill -HUP `cat /var/run/inetd.pid` + + + + + + + + Lucky + Green + 寄稿: + +
shamrock@cypherpunks.to
+
+
+
+ +
+ + ディスクパーティションの暗号化 + + ディスク + 暗号化 + + FreeBSD + は無許可のデータアクセスに対する優れたオンライン保護機能を提供します。 + ファイルのパーミッションおよび強制的アクセスコントロール + (MAC: Mandatory Access Control) + (Mandatory Access Control (MAC) を参照) + + は、コンピュータが動作中で、OS が実行中であるときに、 + 無許可の第三者がデータにアクセスするのを防ぐことに役立ちます。 + しかしながら、攻撃者がコンピュータに物理的にアクセスし、 + 機密データをコピーし分析するためにコンピュータのハードドライブを別のシステムに移動させることができれば、 + OS によって強化された許可属性は意味をなさなくなります。 + + 攻撃者が電源の落ちたコンピュータや + ハードドライブを手にいれる手段にかかわらず、 + GEOM ベースのディスク暗号化 (gbde: GEOM Based Disk Encryption) + は、著しい資源を持ち本気で攻撃を仕掛けるつもりでやってきた攻撃者からさえもコンピュータのファイルシステム上にあるデータを保護することができます。 + 個々のファイルだけを暗号化する煩わしい方法と異なり、 + gbde + は全ファイルシステムを透過的に暗号化します。 + 平文テキストは決してハードドライブのプラッタに関係しません。 + + + カーネルで gbde を有効にする + + + + <username>root</username> になる + + gbde + の設定をするにはスーパユーザの権限が必要になります。 + 以下のコマンドを実行して、 + root になってください。 + + &prompt.user; su - +Password: + + + + オペレーティングシステムのバージョンを確かめる + + &man.gbde.4; が動作するには FreeBSD 5.0 以降が必要です。 + 以下のコマンドを実行して、 + オペレーティングシステムのバージョンを確認してください。 + + &prompt.root; uname -r +5.0-RELEASE + + + + カーネルコンフィギュレーションファイルに &man.gbde.4; + 対応を追加する + + お好みのテキストエディタを使用して、 + 以下の行をカーネルコンフィギュレーションファイルに加えます。 + + options GEOM_BDE + + FreeBSD カーネルを設定、再コンパイル、インストールします。 + この手順は で説明されています。 + + 新しいカーネルで再起動します。 + + + + + + 暗号化されたハードドライブの準備 + + 以下の例では、システムに新しいハードディスクを追加しようとしています。このシステムは単一の暗号化されたパーティションを保持することになります。 + このパーティションは /private + としてマウントされます。gbde は + /home および /var/mail + を暗号化するのにも使用できますが、 + より複雑な指示を必要となるのでこの解説の範疇を越えています。 + + + + 新しいハードドライブを追加する + + で説明されている通りに新しいドライブをシステムに設置します。 + この例では、新しいハードドライブは + /dev/ad4s1c パーティションに + 加えられたものとします。 + /dev/ad0s1* + デバイスは、この例のシステム上に存在する標準的な + FreeBSD パーティションを表します。 + + &prompt.root; ls /dev/ad* +/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 +/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c +/dev/ad0s1a /dev/ad0s1d /dev/ad4 + + + + gbde ロックファイルを保持するディレクトリを作成する + + &prompt.root; mkdir /etc/gbde + + gbde ロックファイルには、 + 暗号化されたパーティションにアクセスするのに必要となる情報が格納されています。 + ロックファイルにアクセスしない場合、 + gbde は + 膨大な手動による介在なしには (ソフトウェアは対応していません)、暗号化されたパーティションに含まれるデータを解読することはできないでしょう。 + それぞれの暗号化されたパーティションは別々のロックファイルを使用します。 + + + + gbde パーティションを初期化する + + gbde + パーティションは使用する前に初期化されなければなりません。 + この初期化は一度だけ実行される必要があります。 + + &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c + + エディタが開くので、 + テンプレートをもとにさまざまなオプションを設定してください。 + UFS1 または UFS2 で使用するには、sector_size を + 2048 に設定してください。 + + $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ +# +# Sector size is the smallest unit of data which can be read or written. +# Making it too small decreases performance and decreases available space. +# Making it too large may prevent filesystems from working. 512 is the +# minimum and always safe. For UFS, use the fragment size +# +sector_size = 2048 +[...] + + + &man.gbde.8; + はデータを保護するのに使用するパスフレーズを二度尋ます。 + パスフレーズはそれぞれ同じでなければなりません。 + データを保護する gbde の能力は、 + あなたが選択したパスフレーズの品質にまったく依存します。 + + 記憶するのが簡単で、 + 安全なパスフレーズを選択する方法については、 + + Diceware Passphrase + ウェブサイトを参照してください。 + + gbde init コマンドは + gbde + パーティションに対するロックファイルを作成します。この例では + /etc/gbde/ad4s1c に格納されます。 + + + gbde ロックファイルは、 + すべての暗号化されたパーティションの内容とともにバックアップされなければ なりません。 + ロックファイルだけを削除している間、 + ロックファイルなしでは信念の固い攻撃者が + gbde + パーティションを解読することを防ぐことができない一方で、 + 正当な所有者は、&man.gbde.8; およびこの設計者にまったく支持されない膨大な量の作業なしには、 + 暗号化されたパーティション上のデータにアクセスすることができないでしょう。 + + + + + カーネルに暗号化されたパーティションを接続する + + &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c + + 暗号化されたパーティションを初期化する際に選択したパスフレーズを入力するように求められます。 + 新しい暗号化デバイスは /dev に + /dev/device_name.bde + として現れます。 + + &prompt.root; ls /dev/ad* +/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 +/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c +/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde + + + + 暗号化デバイス上にファイルシステムを作成する + + カーネルに暗号化デバイスが接続されると、 + デバイス上にファイルシステムを作成できます。 + 暗号化デバイス上にファイルシステムを作成するには &man.newfs.8; + を使用します。従来の UFS1 ファイルシステムで初期化するより、 + 新しい UFS2 ファイルシステムで初期化した方が高速なので、 + オプションとともに &man.newfs.8; + を使用することが推奨されています。 + + &os; 5.1-RELEASE 以降では、 + オプションはデフォルトです。 + + &prompt.root; newfs -U -O2 /dev/ad4s1c.bde + + + &man.newfs.8; は、デバイス名に + *.bde + 拡張子によって認識される、 + 接続された gbde + パーティションに対して実行されなければなりません。 + + + + + 暗号化パーティションをマウントする + + 暗号化ファイルシステムに対するマウントポイントを作成します。 + + &prompt.root; mkdir /private + + 暗号化ファイルシステムをマウントします。 + + &prompt.root; mount /dev/ad4s1c.bde /private + + + + 暗号化ファイルシステムが利用可能か確かめる + + これで暗号化ファイルシステムは &man.df.1; で見ることができ、 + 利用する準備ができました。 + + &prompt.user; df -H +Filesystem Size Used Avail Capacity Mounted on +/dev/ad0s1a 1037M 72M 883M 8% / +/devfs 1.0K 1.0K 0B 100% /dev +/dev/ad0s1f 8.1G 55K 7.5G 0% /home +/dev/ad0s1e 1037M 1.1M 953M 0% /tmp +/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr +/dev/ad4s1c.bde 150G 4.1K 138G 0% /private + + + + + + 存在する暗号化ファイルシステムをマウントする + + システムを起動する度に、すべての暗号化ファイルシステムは + 使用前にカーネルに接続し、 + エラーの有無をチェックし、マウントする必要があります。 + 必要なコマンドは root + ユーザとして実行されなければなりません。 + + + + カーネルに gbde パーティションを接続する + + &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c + + パーティションの暗号化を初期化する際に選択したパスフレーズを入力するように求められるでしょう。 + + + + ファイルシステムのエラーをチェックする + + 暗号化ファイルシステムを自動的にマウントするために + /etc/fstab に設定を掲載することはまだできないため、 + マウントする前に &man.fsck.8; を実行して、 + ファイルシステムのエラーをチェックしなければなりません。 + + &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde + + + + 暗号化ファイルをマウントする + + &prompt.root; mount /dev/ad4s1c.bde /private + + これで暗号化ファイルシステムが利用できるようになりました。 + + + + + 暗号化パーティションを自動的にマウントする + + スクリプトを作成して、暗号化パーティションを自動的に接続、 + チェック、マウントすることは可能です。しかしながら、 + 安全上の理由によりスクリプトに &man.gbde.8; + パスワードを含めるべきではありません。その代わりに、コンソールまたは + &man.ssh.1; による接続からパスワードを入力するようなスクリプトが手動で実行されることが推奨されます。 + + + + + gbde が採用した暗号の保護 + + &man.gbde.8; は 128bit AES の + CBC モードを使用してセクタペイロードを暗号化します。 + ディスク上のそれぞれのセクタは異なる AES 鍵で暗号化されます。 + セクタ鍵がユーザが入力したパスフレーズからどのように導き出されるかを含め、 + gbde の暗号手法の設計についての詳細は、 + &man.gbde.4; を参照してください。 + + + + 互換性に関する問題 + + &man.sysinstall.8; は + gbde 暗号化デバイスと互換性がありません。 + &man.sysinstall.8; を実行する前に + *.bde + デバイスはすべてカーネルから切断されなければなりません。 + そうしないと、&man.sysinstall.8; が初めにデバイスを走査する際にクラッシュしてしまうでしょう。 + 暗号化デバイスを切断するには、以下のコマンドを使用します。 + + &prompt.root; gbde detach /dev/ad4s1c + + &man.vinum.4; は &man.geom.4; サブシステムを使用しないので、 + vinum ボリュームと + gbde + を併用できないことにも注意してください。 +