<!--
     The FreeBSD Documentation Project
     The FreeBSD Japanese Documentation Project

     Original revision: 1.26
     $FreeBSD: doc/ja_JP.eucJP/books/handbook/backups/chapter.sgml,v 1.13 2000/07/20 12:22:29 hrs Exp $
-->

<chapter id="backups">
  <title>バックアップ</title>


  <sect1>
    <title>この章では</title>

    <para>この章ではデータのバックアップ方法とバックアップの作成に
      使われるプログラムの説明をします.  もしあなたがこの章に何かを
      付け加えたいのなら, それを &a.doc; へ送ってください.</para>
  </sect1>

  <sect1 id="backups-tapebackups">
    <title>テープメディア</title>

    <para>一般的なテープメディアには 4mm, 8mm, QIC, ミニカートリッジ,
      DLT があります.</para>

    <sect2 id="backups-tapebackups-4mm">
      <title>4mm (DDS: Digital Data Storage)</title>

      <para>4mm テープはワークステーションのバックアップメディアとして
	QIC から置き換えられつつあります. この傾向は
	QICドライブの製造のリーダであった Archiveを Connerが買収し
	QICドライブの製造を中止したことで加速しました.
	4mmドライブは小型で静かですが 8mm
	ドライブの持っているような信頼性の評判はありません.
	カートリッジは 8mmカートリッジよりも安価で小型 (3 x 2 x 0.5
	インチ; 76 x 51 x 12 mm) です. 4mmドライブ は
	8mm同様にヘリカルスキャン (訳注:
	VTRと同様の回転ヘッドを使う方式)
	を使用しているという理由でヘッドの寿命は短いです.</para>

      <para>これらのドライブのデータスループットは
	150kB/s程度から最大で500kB/s程度の範囲です. データ容量は
	1.3GBから 2.0GBです. ハードウェア圧縮が多くのドライブで可能で,
	およそ 2倍の容量になります.
	マルチドライブテープライブラリユニットは1つの筐体に
	6ドライブを持つことができ自動的にテープを交換します.
	ライブラリの容量は 240GBに達します. </para>

      <para>現在の DDS-3 規格では, 12GB (圧縮時 24GB)
        までのテープ容量をサポートしています.
      </para>

      <para>4mmドライブは 8mmドライブ同様にヘリカルスキャンを使います.
	ヘリカルスキャンの利点と欠点は 4mm ドライブ と 8mm
	ドライブ共通です.</para>

      <para>テープの寿命は 2000 回のパスあるいは 100
	回のフルバックアップです.</para>
    </sect2>

    <sect2 id="backups-tapebackups-8mm">
      <title>8mm (Exabyte)</title>

      <para>8mm テープは SCSI
	テープドライブとして最もよく使われているもので,
	データ交換用として最良の選択です. ほとんどのサイトには Exabyte
	の 2GB 8mm テープドライブがあるでしょう (訳注: Unix
	ワークステーションを何台も置いているようなサイトには 1
	台くらいはあるというような意味です). 8mm
	ドライブは信頼性が高く, 使いやすく, 静かです.
	カートリッジは安価で小型です (4.8 x3.3 x 0.6 インチ; 122 x 84
	x 15 mm). 欠点は, テープとヘッドの相対的な速度が高速なために
	比較的ヘッドとテープの寿命が短いことです.</para>

      <para>データスループットは 250kB/s 程度から 500kB/s
	程度の範囲です. データ容量は 300MB から 7GB です.
	ハードウェア圧縮が多くのドライブで可能で,およそ 2
	倍の容量になります.  単一のユニットのドライブから, 1
	つの筐体に 6 台のドライブと 120
	巻のテープを持ったマルチドライブテープライブラリまで
	利用することができます. ライブラリではテープはユニットにより
	自動的に交換されます. ライブラリの容量は 840GB
	以上に達します.</para>

      <para>Exabyte 社製の <quote>Mammoth</quote> というモデルは,
        テープ一本あたり 12GB (圧縮時 24GB) をサポートしています.
        このドライブの価格は, 通常のテープドライブの約 2 倍です.
      </para>

      <para>データはヘリカルスキャンを使ってテープに記録されます.
	ヘリカルスキャン方式ではヘッドはメディアに対してある傾き
	(約6度) に配置されます. テープはヘッドのある円筒の周の
	270度にわたって接触します. テープが円筒面を走行する間,
	円筒は回転しています. この結果,
	高密度のデータのつまったトラックは,
	狭い間隔でテープの上端と下端の間を斜めに横切ります. </para>
    </sect2>

    <sect2 id="backups-tapebackups-qic">
      <title>QIC</title>

      <para>QIC-150 テープとドライブはたぶん最も一般的に使われている
	ドライブとメディアでしょう. QIC
	テープドライブは現実的なバックアップドライブとして
	少なくとも高価なものではありません.
	欠点はメディアのコストです. QIC テープは 8mm や 4mm
	テープに比較して GB あたりのデータの保存で 5 倍ほど高価です.
	しかしあなたの必要とする量が半ダース程のテープで十分であれば,
	QICは正しい選択となるかもしれません. QIC は
	<emphasis>最も</emphasis>一般的なテープドライブです.
	すべてのサイトに QICドライブのどれかの容量のものがあります.
	問題は, QIC は同じようなテープ (まったく同じ場合もある)
	に多様な記録密度があることです. QIC
	ドライブは静かではありません. これらのドライブはデータ記録を
	開始する前に音をたててシークしますし, リード, ライト,
	シークの時にはっきりと聞こえる音を出します. QIC
	テープの大きさは (6 x 4 x 0.7 インチ; 152 x 102 x 17 mm).
	<link
	  linkend="backups-tapebackups-mini">ミニカートリッジ</link>
	で使われている 1/4 インチ幅のテープについては別に議論します.
	テープライブラリやチェンジャはありません.</para>

      <para>データスループットは 150kB/s から 500kB/s の範囲です.
	データ容量の範囲は 40MB から 15GB です. ハードウェア圧縮が
	最近の多くのドライブで使えるようになっています. QIC ドライブは
	DAT ドライブに置き換えられつつあり,
	あまり頻繁には利用されなくなっています.</para>

      <para>データは複数のトラックにわかれてテープに記録されます.
	トラックはテープメディアの
	長さ方向の一端からもう一方の端までです. (訳注: 1トラックの
	read/write が終わるとテープの走行方向を反転させ次のトラックの
	read/write を行います) トラックの数と,
	それに対応するトラックの幅はテープの容量によって変わります.
	すべてではありませんがほとんどの最近のドライブは
	少なくとも読み出しについては (場合によっては書き込みも)
	下位互換性があります. QIC
	はデータの安全性についてはよいといわれています
	(ヘリカルスキャンドライブに比べて機構は単純でより丈夫です).
      </para>

      <para>テープは 5000回のバックアップで寿命となるでしょう.</para>
    </sect2>

<![ %not.published; [

    <sect2 id="backups-tapebackups-mini">
      <title>* ミニカートリッジ</title>

      <para></para>
    </sect2>

]]>
    
    <sect2 id="backups-tapebackups-dlt">
      <title>DLT</title>

      <para>DLTはここに示したドライブのタイプの中で
	最高速のデータ転送レートです. 1/2 インチ (12.5mm)
	テープが単リールのカートリッジ (4 x 4 x 1 インチ; 100 x 100 x
	25 mm) に入っています.
	カートリッジのひとつの側面全体がスイングゲートになっています.
	ドライブの機構がこのゲートを開け, テープリーダを引き出します.
	テープリーダには楕円形の穴があり,
	ドライブがテープを引っ掛けるのに使います.
	巻き取りのためのリールはドライブの中にあります.
	ここに挙げた他のカートリッジはすべて  ( 9
	トラックテープはただ1つの例外です)
	送りだしリールと巻き取りリールの両方がカートリッジの中に
	あります.</para>

      <para>データスループットは約1.5MB/sで, 4mm, 8mm, QIC
	テープドライブの3倍です. データ容量は単一のドライブで 10GBから
	20GBの範囲です.
	マルチテープチェンジャ,マルチテープドライブ,5から
	900巻のテープを1から20ドライブで扱う
	マルチドライブテープライブラリがあり, 50GB から 9TB
	の容量が得られます.</para>

      <para>圧縮機能により, DLT Type IV フォーマットは
         70GB までの容量をサポートします.</para>

      <para>データは ( QIC テープのように)
	テープの走行方向と並行に複数あるトラックへ記録されます. 2
	つのトラックに同時書き込みを行います. Read/Write
	ヘッドの寿命は比較的長いと言えます.
	テープの走行が止まればヘッドと
	テープの間の相対運動はありません.</para>
    </sect2>

    <sect2>
      <title id="backups-tapebackups-ait">AIT</title>

      <para>AIT は, Sony が発表した新しいフォーマットで,
        テープ一本あたり 50GB(圧縮時) の容量を持っています.
        テープには, 記録データ内容の索引情報が記録可能な
        メモリチップが内蔵されています. ドライブがこの索引情報を読みとることで,
        テープのどの部分にどのファイルが存在するかを
        高速に調べることができるようになっています.
        従来のドライブは, この処理に数分の時間を必要としていました.
        直接テープのメモリチップと通信することでテープ内容を画面表示する
        SAMS:Alexandria のようなソフトウェアを使うことで, 40 を超える
        ATI テープライブラリを操作できるのはもちろんのこと,
        どのテープのどこに, どのファイルがバックアップされているのか調べたり,
        正しいテープをセットしたり,
        テープ上のデータをリストアしたりすることが可能です.
        </para>

      <para>このようなテープライブラリにかかる費用は $20,000 台です.
        業務用でないものはもう少し安価でしょう.
        </para>
    </sect2>

    <sect2>
      <title>新品のテープを最初に使う場合</title>

      <para>新品の完全な空テープを読もうとしたり書き込もうとすると処理
	は失敗するでしょう.
	次のようなコンソールメッセージが出るでしょう.</para>

      <screen>sa0(ncr1:4:0): NOT READY asc:4,1
st0(ncr1:4:0):  Logical unit is in process of becoming ready</screen>

      <para>テープに識別ブロック (Identifire Block:block number 0)
	がありません.QIC-525標準の採用されている
	QICテープドライブのすべてで識別ブロックをテープに書きます.
	2つの解決方法があります.</para>

      <para>(訳注: 方法1)<command>mt fsf 1</command>
	によってテープドライブは識別ブロックをテープに書きます.</para>

      <para>(訳注:
	方法2)フロントパネルのボタンを押してテープをとりだします.
      </para>

      <para>再びテープを入れ,データをテープに &man.dump.8; します.</para>

      <para>&man.dump.8; はそのうちに <literal>DUMP: End of tape
	  detected</literal> と表示し, コンソールには
	<literal>HARDWARE FAILURE info:280
	  asc:80,96</literal>と表示されるでしょう.</para>

      <para><command>mt
	  rewind</command>を使ってテープを巻戻します.</para>

      <para>この次からはテープの操作は成功するでしょう.</para>
    </sect2>
  </sect1>

  <sect1 id="backup-programs">
    <title>バックアッププログラム</title>

    <para>よく使われる3つのプログラムは &man.dump.8;, &man.tar.1;,
	&man.cpio.1; です.</para>

    <sect2>
      <title>ダンプとリストア</title>

      <para>&man.dump.8; と &man.restore.8; は伝統的な
	Unixのバックアッププログラムです.
	これらはドライブのファイルシステム上のファイル, リンク,
	ディレクトリをディスクブロックの集まりとして処理します.
	  &man.dump.8;
	はデバイスやファイルシステム全体をバックアップし,
	一部分のバックアップや, &man.ln.1; によるソフトリンクや
	他のファイルシステムをマウントを行った, 1
	つ以上のファイルシステムにまたがる
	ディレクトリツリーのバックアップはできません. &man.dump.8;
	はファイルやディレクトリを構成する
	データブロックをテープに書くだけで,
	ファイルやディレクトリをテープに書くことはありません.
	  &man.dump.8; には初期の ATT UNIX のバージョン 6 (1975
	年ごろ) に由来する癖が残っています. デフォルトのパラメタは 9
	トラックテープ (6250 bpi)
	に適したものになっていて現在の高密度メディア (最大 62,182
	ftpi) に適していません.
	現在のテープドライブの容量を有効に利用するため,
	デフォルト値をコマンドラインで置き換えなければなりません.
      </para>

      <para>&man.rdump.8; と &man.rrestore.8;
	は他のコンピュータに接続されているテープドライブに
	ネットワーク経由でバックアップをします.
	どちらのプログラムもリモートテープドライブにアクセスするために
	  &man.rcmd.3; と &man.ruserok.3; に依存しています.
	このためユーザがバックアップを実行するためには
	<literal>rhosts</literal> によるリモートアクセスが必要です.
	  &man.rdump.8; と &man.rrestore.8;
	の引数はリモートコンピュータに適切なものを用います.
	  &man.rrestore.8;
	はリモートコンピュータから使うのに適しています. (例えば
	FreeBSD コンピュータより <hostid>komodo</hostid> という名前の
	Sun に接続されている Exabyte テープドライブへ
	<command>/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nrsa8
	  /dev/rda0a 2>&amp;1</command> として
	<command>rdump</command>したような場合の restoreに使います)
	警告: セキュリティは
	<literal>rhosts</literal>の管理にかかっています.
	あなたの状況を注意深く調べてください.</para>
    </sect2>

    <sect2>
      <title>Tar</title>

      <para>&man.tar.1; ATT Unix のバージョン 6 (1975ごろ)
	にさかのぼる事ができます. &man.tar.1;
	はファイルシステムと協調して機能し,
	ファイルやディレクトリをテープに書きます. &man.tar.1; は
	  &man.cpio.1;
	で使えるようなフルレンジのオプションは持ちませんが
	  &man.cpio.1;
	で使うような奇妙なコマンドパイプラインは必要ありません.</para>

      <para>大部分の &man.tar.1;
	にはネットワーク経由のバックアップの機能はありませんが,
	FreeBSD で使用されている GNU の &man.tar.1; は,
	<command>rdump</command>
	とおなじ構文でリモートデバイスを扱うことができます.
	<hostid>komodo</hostid>
	というホスト名の Sun に繋いである Exabyte
	のテープデバイスに対して &man.tar.1; を実行するには,
	次のようにします.
	<command>/usr/bin/tar cf komodo:/dev/nrsa8 .
	  2>&amp;1</command> リモートデバイスをサポートしていない tar
	を使用している場合は, パイプラインと &man.rsh.1; を使うことで,
	リモートテープデバイスにデータを送る事ができます.
	</para>

      <screen>&prompt.root; <userinput>tar cf - . | rsh <replaceable>hostname</replaceable> dd of=<replaceable>tape-device</replaceable> obs=20b</userinput></screen>

      <para>もしあなたがネットワークを越えるバックアップのセキュリティに
	困っているなら &man.rsh.1; の代わりに &man.ssh.1; を使うべきです.</para>
    </sect2>

    <sect2>
      <title>Cpio</title>

      <para>&man.cpio.1; は本来, Unix
	ファイルを磁気メディアで交換するためのプログラムです.
	  &man.cpio.1; はバイトスワッピング,
	多くの異なるアーカイブフォーマットの書き込みのオプション
	(それ以外にも多数のオプションがあります)があり,
	パイプで他のプログラムにデータを渡す事もできます.
	この最後に挙げた特徴により, &man.cpio.1;
	はインストールメディアについては優れた選択です. &man.cpio.1;
	は <filename>stdin</filename> からの入力でなければならず,
	ディレクトリツリーの探索や
	ファイルリストについての機能はありません.</para>

      <para>&man.cpio.1;
	はネットワーク経由のバックアップの機能はありません.
	リモートテープドライブにはパイプラインと &man.rsh.1;
	を使って送る事ができます. (コマンド使用例はまだです)</para>
    </sect2>

    <sect2>
      <title>Pax</title>

      <para>&man.pax.1; は <command>tar</command> と
	<command>cpio</command> に対する IEEE/POSIX の回答です.
	長年の間, 様々なバージョンの <command>tar</command> や
	<command>cpio</command> は,
	互いにわずかながら非互換性を有していました.
	各々をしらみ潰しに標準化する代わりに, POSIX
	は新しいアーカイブユーティリティを作ることにしました.
	<command>pax</command>
	は専用に開発された新しいフォーマットに加えて, いくつもの cpio
	や tar のフォーマットの読み書きに対応しようと試みています.
	コマンド群は <command>tar</command> よりも
	<command>cpio</command> の方にいくぶん似ています.</para>
    </sect2>

    <sect2 id="backups-programs-amanda">
      <title>Amanda</title>

      <para><ulink
	  url="../ports/misc.html#amanda-2.4.0">Amanda</ulink>
	(Advanced Maryland Network Disk Archiver)
	は単一のプログラムではなくクライアント /
	サーバ型のバックアップシステムです. Amanda サーバは, Amanda
	クライアントであるネットワークで
	サーバに接続された複数のコンピュータから
	一つのテープドライブへバックアップをおこないます.
	このような場合の一般的な問題はいくつもの大容量の
	ディスクからデータディレクトリをテープにバックアップするには
	時間がかかりすぎてしまうという事です. Amanda
	はこの問題を解決します. Amanda
	は同時に複数のファイルシステムのバックアップをおこなう時に
	「ホールディングディスク」を使う事ができます.
	Amandaの設定ファイルに書いたすべてのファイルシステムの
	フルバックアップを特定の間隔でとるために「アーカイブセット」
	と呼ばれるテープグループを作ります.
	これには夜間に作られるすべてのファイルシステムの増分
	(あるいは差分として) のバックアップも含みます.
	障害の起きたファイルシステムの回復には最も新しい
	フルバックアップと増分のバックアップが必要です.	</para>

      <para>設定ファイルでバックアップのコントロールと Amanda
	によるネットワークトラフィック量を設定します. Amanda
	はデータをテープに書くのにバックアッププログラムの
	いずれかを使うでしょう. Amanda
	はその一部分でもパッケージでも利用可能ですが,
	デフォルトではインストールされません. </para>
    </sect2>

    <sect2>
      <title>何もしない</title>

      <para><quote>何もしない</quote>
	というのはコンピュータのプログラムではありませんが,
	バックアップの戦略として最も広く採用されている物です.
	これには初期投資が必要ありません.
	したがわなければならないバックアップスケジュールもありません.
	ただ何もしないだけです. もしデータに何かが起きたら,
	苦笑いして耐えてください.</para>

      <para>あなたにとって時間やデータの価値が少ないか
	あるいはまったくないのであれば <quote>何もしない</quote>
	のはあなたのコンピュータに最も適した
	バックアッププログラムでしょう. しかし注意してください. Unix
	は便利なツールです. 6 ヶ月も使っていれば価値のあるファイルの
	山ができ上がっているでしょう.</para>

      <para><quote>何もしない</quote> は
	<filename>/usr/obj</filename> やその他の,
	コンピュータによってつくり出された
	ディレクトリツリーについては適切な方法です.
	一つの例はこのハンドブックのファイルで, これらは
	<acronym>SGML</acronym> のファイルより生成された物です.
	<acronym>HTML</acronym>
	ファイルのバックアップを作る必要はありません.
	<acronym>SGML</acronym>
	のソースファイルは定期的にバックアップします. </para>
    </sect2>

    <sect2>
      <title>どのバックアッププログラムが最適でしょう?</title>

      <para><emphasis>定期的に</emphasis> &man.dump.8; しましょう.
	Elizabeth D. Zwicky はここで検討したプログラムすべてについて
	拷問的なテストをおこないました.  すべてのデータと
	Unixファイルシステムの状態すべてを保存するには明らかに
	  &man.dump.8; でしょう.  Elizabeth
	は大きく変化に富んだ異常な状態
	(いくつかはあまり異常でもない状態のものもあります)
	になっているファイルシステムで,
	それぞれのプログラムでファイルシステムの
	バックアップとリストアを行ってテストしました.
	特色のある状態には, ホールを持つファイル,
	ホールとヌルブロックを持つファイル,
	奇妙な文字をファイル名に持つファイル, 読み出し不可,
	書き込み不可のファイル, デバイスファイル,
	バックアップ中にファイルのサイズを変更する,
	バックアップ中にファイルの作成/削除をおこなうなどがあります.
	彼女は1991年10月の LISA Vで結果の発表をしています.<ulink
	  url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">torture-testing Backup and Archive Programs</ulink> を参照してください.</para>
    </sect2>

    <sect2>
      <title>緊急時のリストア手順</title>

      <sect3>
	<title>災難の起きる前に</title>

	<para>起き得るどのような災難に対しても以下の
	  4ステップだけが必要な準備です.</para>

	<para>ステップ 1では,
	  ファイルシステムテーブル(<filename>/etc/fstab</filename>)
	  やブートメッセージで示されるすべてのディスクの
	  disklabelをそれぞれ2コピーづつプリント (例えば
	  <command>disklabel da0 | lpr</command> を実行します)
	  します.</para>

	<para>ステップ 2では, <filename>boot.flp</filename> と
	  <filename>fixit.flp</filename>
	  にそのシステムのすべてのデバイスドライバが
	  含まれているか確認します. 最も簡単な確認の方法は,
	  フロッピーをドライブに入れてリブートし,
	  ブートメッセージを確認することです.
	  あなたのシステムのデバイスがすべて含まれ, 機能していれば,
	  step 3へ飛んでください.</para>

	<para>そうでないなら,
	  そのシステムのすべてのディスクをマウントでき,
	  テープドライブにもアクセスできる
	  2種類のカスタムブートフロッピーディスクを作る必要があります.
	  これらのフロッピーには &man.fdisk.8;, &man.disklabel.8;,
	    &man.newfs.8;, &man.mount.8;,
	  と利用したいバックアッププログラムが
	  入っていなければなりません.
	  これらのプログラムはスタティックリンクされた
	  プログラムである必要があります. &man.dump.8;
	  を使うのであればフロッピーに &man.restore.8;
	  を入れる必要があります.</para>

	<para>ステップ 3では, 通常の方法でバックアップを作ります.
	  最新のバックアップの後でおこなわれた変更は
	  回復することはできません.
	  バックアップテープにライトプロテクトをしてください.</para>

	<para>ステップ 4では, フロッピー
	  (<filename>boot.flp</filename> と
	  <filename>fixit.flp</filename> あるいはステップ
	  2で作った2枚のカスタムブートフロッピーディスクです)
	  とバックアップテープのテストをします.
	  手順のノートを作りましょう.
	  このノートはブートフロッピーディスク,
	  バックアップテープに入れておきプリントアウトしておきます.
	  あなたがリストアをおこなうような時は
	  おそらく錯乱状態でしょうからこのノートはバックアップを
	  破壊してしまうようなことを防ぐのに役立つでしょう
	  (どのようにして破壊するって? <command>tar xvf
	    /dev/rsa0</command> とする替りに偶然 <command>tar cvf
	    /dev/rsa0</command>
	  とタイプしてバックアップテープに上書きしてしまうかも
	  しれません).</para>

	<para>訳注: 上書きはライトプロテクトをしておけば防げますが,
	  なんらかの原因でプロテクトがはずれているかもしれません.
	  ちなみに訳者の経験から言えば上のようなミスタイプは
	  結構起きます.</para>

	<para>安全性を増すために,
	  毎回ブートフロッピーディスクを作り, 2
	  巻のバックアップテープを取ります.
	  一方を離れた場所に保管します.
	  離れた場所は同じ建物の地下室ではいけません.
	  世界貿易センタービルにあった数多くの会社は
	  苦い経験よりこの教訓を得ました.
	  離れた場所とはコンピュータやディスクドライブから
	  かなり離れていて物理的に分離されていなければなりません.</para>

	<para>ブートフロッピーディスクを作るスクリプトの一例</para>

	<programlisting>
<![ CDATA [#!/bin/sh
#
# create a restore floppy	リストアフロッピーの作成
#
# format the floppy		フロッピーのフォーマット
#
PATH=/bin:/sbin:/usr/sbin:/usr/bin

fdformat -q fd0
if [ $? -ne 0 ]
then
	echo "Bad floppy, please use a new one"
	exit 1
fi

# place boot blocks on the floppy	フロッピーにブートブロックを書く
#
disklabel -w -B /dev/rfd0c fd1440

#
# newfs the one and only partition	ただ1つのパーティションを newfs
#
newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a

#
# mount the new floppy		新しいフロッピーをマウント
#
mount /dev/fd0a /mnt

#
# create required directories	必要なディレクトリの作成
#
mkdir /mnt/dev
mkdir /mnt/bin
mkdir /mnt/sbin
mkdir /mnt/etc
mkdir /mnt/root
mkdir /mnt/mnt			# for the root partition
mkdir /mnt/tmp
mkdir /mnt/var

#
# populate the directories
#
# MINIカーネルがない場合は作ります
if [ ! -x /sys/compile/MINI/kernel ]
then
	cat << EOM
The MINI kernel does not exist, please create one.
Here is an example config file:
#	MINIカーネルの config fileの例
# MINI -- A kernel to get FreeBSD on onto a disk.
#
machine		"i386"
cpu		"I486_CPU"
ident		MINI
maxusers	5
options		INET		# needed for _tcp _icmpstat _ipstat
				# _udpstat _tcpstat _udb
options		FFS		#Berkeley Fast File System
options		FAT_CURSOR	#block cursor in syscons or pccons
options		SCSI_DELAY=15	#Be pessimistic about Joe SCSI device
options		NCONS=2		#1 virtual consoles
options		USERCONFIG	#Allow user configuration with -c XXX

config		kernel	root on da0 swap on da0 and da1 dumps on da0

controller	isa0
controller	pci0

controller	fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk		fd0 at fdc0 drive 0

controller	ncr0

controller	scbus0

device		sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
device		npx0 at isa? port "IO_NPX" irq 13 vector npxintr

device		da0
device		da1
device		da2

device		sa0

pseudo-device	loop		# required by INET
pseudo-device	gzip		# Exec gzipped a.out's
EOM
	exit 1
fi

cp -f /sys/compile/MINI/kernel /mnt

gzip -c -best /sbin/init > /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 sd0
./MAKEDEV sd1
./MAKEDEV sd2
./MAKEDEV st0
./MAKEDEV pty0
cd /

#
# create minimum filesystem table	最小限のファイルシステムテーブル
#
cat > /mnt/etc/fstab <<EOM
/dev/fd0a	/	ufs	rw 1 1
EOM

#
# create minimum passwd file		最小限のパスワードファイル
#
cat > /mnt/etc/passwd <<EOM
root:*:0:0:Charlie &:/root:/bin/sh
EOM

cat > /mnt/etc/master.passwd <<EOM
root::0:0::0:0:Charlie &:/root:/bin/sh
EOM

chmod 600 /mnt/etc/master.passwd
chmod 644 /mnt/etc/passwd
/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd

#
# umount the floppy and inform the user	フロッピーを unmount
#
/sbin/umount /mnt
echo "The floppy has been unmounted and is now ready."]]></programlisting>
      </sect3>

      <sect3>
	<title>災難の後に</title>

	<para>重要な問題は, ハードウェアが生き残ったかどうかです.
	  定期的なバックアップを取っていれば
	  ソフトウェアについて心配する必要はありません.</para>

	<para>ハードウェアがダメージを受けていたら,
	  最初にそのダメージを受けた部品を交換してください.</para>

	<para>ハードウェアに問題がなければ,
	  フロッピーをチェックしてください.
	  カスタムブートフロッピーディスクを使っているのであれば
	  シングルユーザ(<prompt>boot:</prompt> プロンプトの出た時に
	  <literal>-s</literal> とタイプしてください)
	  でブートしてください. それから次の
	  「ファイルシステムを1つずつ回復する」
	  を読んでください.</para>

	<para><filename>boot.flp</filename> と
	  <filename>fixit.flp</filename>
	  を使っているのであればこのまま読み続けてください.
	  <filename>boot.flp</filename> を入れてブートしてください.
	  本来のインストールメニューが表示されるはずです. (ここで)
	  <literal>Fixit--Repair mode with CDROM or
	    floppy.</literal>オプションを選びます. 指示の通り
	  <filename>fixit.flp</filename> を入れてください.
	  <command>restore</command> とその他の必要なプログラムは
	  <filename>/mnt2/stand</filename>に置かれています.</para>

	<para>ファイルシステムを一つずつ回復する</para>

	<para>最初のディスクのrootパーティションを &man.mount.8;
	  (例えば <command>mount /dev/da0a /mnt</command> のように)
	  マウントして見てください.
	  ディスクラベルが破壊されている場合は &man.disklabel.8;
	  を使ってあらかじめプリントしておいた通りに
	  パーティションを作り直しラベルをつけてセーブしてください.
	    &man.newfs.8; を使いファイルシステムを作り直します.
	  ルートパーティションを読み書き可能にマウント (<command>mount
	    -u -o rw /mnt</command>) しなおします.
	  バックアッププログラムとバックアップテープを使って
	  このファイルシステムのデータを回復します (例えば
	  <command>restore vrf /dev/sa0</command>とします).
	  ファイルシステムをアンマウント (<command>umount
	    /mnt</command>など) して,
	  障害を受けたファイルシステムそれぞれについて
	  繰り返してください.</para>

	<para>システムが動き出したら,
	  新しいテープにデータをバックアップしてください.
	  どのような理由で再び事故が起きたりデータが
	  失われるかはわかりません. これに時間を費す事で,
	  後々の災難から救われる事になります.</para>
      </sect3>

<![ %not.published; [

      <sect3>
	<title>* 災難対策をしていませんでした.
	  どうしたらいいでしょう?</title>

	<para></para>
      </sect3>
]]>

    </sect2>
  </sect1>

  <sect1 id="backups-floppybackups">
    <title>フロッピーへのバックアップはどうですか?</title>

    <sect2 id="floppies-using">
      <title>データをフロッピーにバックアップすることはできますか?</title>

      <para>実はフロッピーはバックアップ向きのメディアとは言えません.
        というのは:</para>

      <itemizedlist>
	<listitem>
	  <para>特に長期間に渡って保存する場合, 信頼性が低い.</para>
	</listitem>

	<listitem>
	  <para>バックアップ, リストアがとても遅い.</para>
	</listitem>

	<listitem>
	  <para>容量が小さい(ハードディスク全体の日々のバックアップに
	    1ダース, 長期間なら本当にたくさん).</para>
	</listitem>
      </itemizedlist>

      <para>けれども, データをバックアップする他の手段がない場合には,
        まったくバックアップをしないよりもフロッピーを使うほうが良い
        でしょう.</para>

      <para>これを行う場合には, 高品質のものを使うようにしてください.
	まわりに何年も転がっていたフロッピーは使わない方よいでしょう.
	評判のよいメーカの新品を使うことが理想です.</para>
    </sect2>

    <sect2 id="floppies-creating">
      <title>どうやってデータをフロッピーにバックアップ
	するのですか?</title>

      <para>フロッピーへバックアップする最も良い方法は tar
        &man.tar.1; コマンドに <option>-M</option> (マルチ・ボリューム)
    オプションを付けて, 複数のフロッピーにまたがるバックアップも
	できるようにする方法です.</para>

      <para>カレントディレクトリの全てのファイルとサブディレクトリを
        バックアップするには, 以下のようにします (root で):</para>

      <screen>&prompt.root; <userinput>tar Mcvf /dev/rfd0 *</userinput></screen>

      <para>1枚目のフロッピーがいっぱいになると &man.tar.1; は
	次のボリュームを入れるようプロンプトを表示します.
        ( &man.tar.1; は, さまざまなメディアを扱えるので
	ボリュームと表示します. ここではフロッピーのことです)</para>

      <screen>Prepare volume #2 for /dev/rfd0 and hit return:</screen>

      <para>これは(ボリューム番号が増えながら) 指定された全てのファイルが
	保存されるまで繰り返されます.</para>
    </sect2>

    <sect2 id="floppies-compress">
      <title>バックアップを圧縮することはできませんか?</title>

      <para>残念ながら, &man.tar.1; はマルチ・ボリュームに保存する場合は
	<option>-z</option> オプションを使うことができません.
	もちろん, すべてのファイルを &man.gzip.1; してから, フロッピーに
	&man.tar.1; して, ファイルを &man.gunzip.1;
	することはできます!</para>
    </sect2>

    <sect2 id="floppies-restoring">
      <title>リストアはどうしますか?</title>

      <para>保存したファイル全てをリストアするには:</para>

      <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0</userinput></screen>

      <para>指定したファイルのみをリストアするには1枚目のフロッピーを
	セットして:</para>

      <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0 <replaceable>filename</replaceable></userinput></screen>

      <para>&man.tar.1; は, 必要なファイルを見つけるまで, 続きのフロッピーを
	セットするよう表示します.</para>

      <para>別の方法として, どのフロッピーにファイルが入っているのかが
	分かっているなら, そのフロッピーをセットして上記と同じコマンドを
	使うこともできます. 最初のファイルが前のフロッピーから続いて
	いる場合は, &man.tar.1; は, 頼みもしないのに, そのファイルはリストア
	できないと警告します!</para>
    </sect2>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->