Index: head/ja_JP.eucJP/books/handbook/bsdinstall/chapter.xml =================================================================== --- head/ja_JP.eucJP/books/handbook/bsdinstall/chapter.xml (revision 45698) +++ head/ja_JP.eucJP/books/handbook/bsdinstall/chapter.xml (revision 45699) @@ -1,2725 +1,2830 @@ &os; のインストール (9.<replaceable>X</replaceable> 以降の場合) Jim Mock 再構成、部分的に書き直し: Randy Pratt sysinstall のウォークスルー、スクリーンショット、 およびその他原稿: RandyPratt Gavin Atkinson bsdinstall に向けた改訂: Warren Block この章では installation &os; では、テキストベースの使いやすいインストールプログラムが用意されています。 &os; 9.0-RELEASE 以降では bsdinstall、 &os; 9.0-RELEASE より前のリリースでは sysinstall と呼ばれるインストールプログラムを使います。 この章では、bsdinstall の使い方について説明します。 sysinstall の利用については、 で説明しています。 この章を読むと、以下のことがわかります。 &os; インストールメディアの作り方。 &os; がハードディスクをどのように分割し、参照するか。 bsdinstall をどのように起動するか。 bsdinstall が聞いてくる質問がどのような意味であり、 またどのように答えれば良いか。 この章を読む前に、以下のことを確認して下さい。 インストールしようとしているバージョンに付属しているサポートハードウェア一覧を読み、 あなたの使っているハードウェアがサポートされているかどうかを確認して下さい。 このインストールの説明書は &i386; (PC 互換) アーキテクチャのコンピュータを対象にしています。 他のプラットフォームに特有の説明についてはそのつど明記しています。 インストーラとこの文書で記述している内容の間には、 いくらかズレがあることがあります。 この章を正確で忠実な手順書としてではなく、 一般的なガイドとしてご利用ください。 ハードウェア要件 最小構成 &os; をインストールする最小構成は、 &os; のバージョンやハードウェアのアーキテクチャによって異なります。 以下の節では、最小構成についての情報をまとめています。 また、&os; のインストール方法によって、 対応している CDROM ドライブや、 場合によってはネットワークアダプタが必要となります。 これに関しては で説明します。 &os;/&arch.i386; &os;/&arch.i386; アーキテクチャは、 486 以上のプロセッサと、 少なくとも 64 MB の RAM が必要です。 最小のインストールでは、 少なくとも 1.1 MB のハードディスクの空き容量が必要です。 古いコンピュータでは、 速いプロセッサを入手するより、より多くの RAM やより多くの容量のハードドライブを用意するほうが重要です。 &os;/&arch.amd64; &os;/&arch.amd64; を実行可能なプロセッサには 2 つのクラスがあります。 1 つ目のクラスは、&amd.athlon;64, &amd.athlon;64-FX, &amd.opteron; やそれより新しいプロセッサです。 もう 1 つのクラスは、 &intel; EM64T アーキテクチャを採用しているプロセッサです。 これらのプロセッサの例は、 &intel; &core; 2 Duo, Quad, Extreme プロセッサファミリ、 &intel; &xeon; 3000, 5000, 7000 系のプロセッサ、 および &intel; &core; i3, i5, i7 プロセッサです。 nVidia nForce3 Pro-150 ベースのコンピュータを使用するには、 BIOS のセットアップを使って、IO APIC を無効にする 必要があります。 もし、このようなオプションがなければ、 代わりに ACPI を無効にする必要があるでしょう。 Pro-150 チップセットには回避策が見つかっていないバグがあります。 &os;/&arch.powerpc; &apple; &macintosh; すべての USB 内蔵の New World &apple; &macintosh; システムに対応しています。 複数の CPU を持つコンピュータは SMP に対応しています。 32-bit カーネルは、RAM の最初の 2 GB だけを利用できます。 Blue & White PowerMac G3 では、&firewire; に対応していません。 &os;/&arch.sparc64; &os;/&arch.sparc64; が対応しているハードウェアの一覧については、 FreeBSD/sparc64 プロジェクトをご覧ください。 現時点では、 他のオペレーティングシステムとディスクの共有ができないので、 &os;/&arch.sparc64; 専用のディスクが必要です。 サポートされているハードウェア &os; がサポートしているハードウェアアーキテクチャやデバイスの一覧は、 各リリースのハードウェアノートとして提供されます。 このドキュメントは通常リリースメディアのルートディレクトリにある HARDWARE.TXT という名前のファイルで見ることができます。 ハードウェアリストは、&os; のウェブサイトの リリース情報 のページにもあります。 インストール前に行う作業 データのバックアップ &os; をインストールするコンピュータに残されている価値のあるデータをすべてバックアップしてください。 そして、インストール作業を進める前にバックアップが正しく取れていることを確認してください。 &os; のインストーラは、ハードディスクに変更を加える前に確認を求めますが、 一度実際に書き込む作業が始まってしまうと、 もう元に戻すことはできません。 &os; をインストールする場所の決定 インストールするオペレーティングシステムが &os; のみで、 ハードディスクすべてを使ってインストールする場合には、 この節の後半を飛ばすことができます。 しかし、ハードディスクに &os; と他のオペレーティングシステムを共存させる必要がある場合には、 ディスクレイアウトに関する基本的な部分を理解しておく必要があります。 &os;/&arch.i386; および &os;/&arch.amd64; アーキテクチャでのディスクレイアウト ハードディスクを複数の塊に分割することができます。 これらの塊は パーティション と呼ばれます。 ディスクをパーティションに分割する方法は 2 通りあります。 伝統的な Master Boot Record (MBR) では、 ディスク 1 台あたり最大 4 つの プライマリパーティション をパーティションテーブルに持つことができます (歴史的な理由により、&os; は、これらのパーティションのことを スライス と呼びます)。 大きなディスクにとって、作成できるパーティションの数が 4 つという制限は限定的なので、 プライマリパーティションの 1 つに 拡張パーティション を作成できます。 論理パーティション と呼ばれる特別のパーティションは、 この拡張パーティションの内部に作成できます。 これは、多少扱いにくいものです。 GUID Partition Table (GPT) は、 ディスクをパーティションに分ける簡単で新しい方法です。 伝統的な MBR パーティションテーブルと比べると、 GPT ははるかに万能です。一般的な GPT の実装では、 1 つのディスクに 128 個までのパーティションの作成が可能です。 扱いにくい論理パーティションのような回避策は必要ありません。 &windows; XP のような古いオペレーティングシステムは、 GPT パーティションと互換性がありません。 &os; をこのようなオペレーティングシステムとディスク上で共存させる場合には、 MBR パーティションテーブルを使う必要があります。 &os; の標準のブートローダは、プライマリまたは GPT パーティションに対応しています (&os; の起動プロセスのより詳しい情報については、 をご覧ください)。 ディスク上のすべてのプライマリ、もしくは GPT パーティションが使われているのであれば、 そのひとつを &os; のために開放してください。 &os; の最小のインストールでは、1 GB 程度のディスク容量が必要です。 しかし、これは 非常に 小さなインストールであり、 自分のファイルを作成するスペースはほとんど残らないでしょう。 現実的には、グラフィカルな環境が必要なければ 3 GB、 グラフィカルユーザインタフェースを使用するのであれば 5 GB 以上は必要でしょう。 サードパーティ製ソフトウェアをインストールするならば、 さらに多くのスペースが必要になります。 さまざまな パーティションサイズを変更するフリーや商用のツール を利用できます。GParted Live は、GParted パーティションエディタを含む完全なライブ CD です。 多くの Linux Live CD ディストリビューションでも GParted を利用できます。 ディスクパーティションのアプリケーションは、 ディスク上のデータを壊す可能性があります。 ディスクのパーティションを変更する前に、 必ず全体のバックアップをとり、完全性を検証してください。 µsoft; Vista のパーティションサイズの変更は、難しい可能性があります。 このような作業を行う際は、 Vista のインストール CDROM を手元に置いておくことをお勧めします。 既存のパーティションを使用 既に &windows; がインストールされている 40 GB のハードディスクが 1 台接続されており、そのハードディスクは、 20 GB の 2 つのパーティションに分割されていると仮定します。 &windows; では、それぞれ C: および D: と呼びます。 C: パーティションには 10 GB のデータ、 D: パーティションには 5 GB のデータがあるとします。 D: にあるデータをすべて C: にコピーすれば、 2 つ目のパーティションを解放し、&os; のために使うことができるようになります。 既存のパーティションを縮小する &windows; がインストールされている 40 GB のハードディスクが 1 台接続された PC を使用していると仮定します。 ディスクのすべてを 1 つの大きなパーティションとして使用しています。 &windows; では、この 40 GB のパーティションを 1 つの C: ドライブとして表示します。 15 GB のデータがあるとします。 &windows; が 20 GB パーティション、 残りの 20 GB パーティションを &os; で使いたいとします。 インストールを行うには、2 つの方法があります。 &windows; のデータをバックアップし、インストール時に 20 GB のパーティションを作成して再インストールする。 先に述べた GParted をはじめとするパーティションを縮小するツールを使って、 &windows; のパーティションを縮小し、フリーの空間上に、 &os; のためのパーティションを作成する。 異なるオペレーティングシステムを含むディスクパーティションでは、 どのオペレーティングシステムも同時に実行できるのは 1 つです。 複数のオペレーティングシステムを同時に実行する方法については、 Virtualization の章で説明します。 ネットワークの詳細をまとめる &os; のインストール方法によっては、ネットワークに接続し、 ファイルのダウンロードが必要です。 イーサネットに接続 (または、ケーブル / DSL モデム経由でイーサネットインタフェースを利用して接続) するためには、 インストール中にこれらの情報を入力する必要があります。 DHCP は、 自動的にネットワークの設定情報を得るのによく使われます。 DHCP を利用できない場合には、 システム管理者かプロバイダにネットワーク情報を問い合わせる必要があります。 ネットワーク情報 IP アドレス サブネットマスク デフォルトルータの IP アドレス ローカルネットワークのドメイン名 DNS サーバの IP アドレス &os; Errata の確認 &os; プロジェクトでは &os; の各リリースができる限り安定するよう努力していますが、 時々バグが発生してしまうことがあります。極まれに、 発生したバグがインストールプロセスに影響を与えることがあります。 これらの問題は発見され解決されるとともに、 &os; のウェブサイトの FreeBSD Errata に掲示されます。 インストールに関して注意すべき既知の問題が無いことを確かめるために、 インストールする前に Errata を確認してください。 すべてのリリースに関する情報や Errata は、 &os; のウェブサイト の リリース情報 の項で確認することができます。 インストールメディアの準備 &os; のインストールは、 インストール用の CD, DVD または USB メモリスティックとともに、コンピュータを起動するところから始まります。 インストーラは、オペレーティングシステムで実行できるようなプログラムではありません。 &os; のインストールファイルをすべて含んでいる通常のインストールメディアに加え、 bootonly を利用できます。 bootonly インストールメディアは、インストールファイルを含んでいません。 そのかわり、インストールの途中ですべてのファイルをネットワークからダウンロードします。 そのため、bootonly インストール CD は小さく、 また、インストール中に必要なファイルだけをダウンロードするので、 使用するバンド幅を減らすことが出来ます。 &os; のインストールメディアは &os; ウェブサイト から入手できます。 またイメージファイルと同じディレクトリから CHECKSUM.SHA256 をダウンロードし、 チェックサム を計算してイメージファイルの完全性を確認してください。 &os; では &man.sha256.1; を用いてチェックサムを計算できますが、 他のオペレーティングシステムも同様のプログラムを持っています。 計算したチェックサムと CHECKSUM.SHA256 に示されている値を比較してください。 チェックサムは完全に一致している必要があります。 もしチェックサムが一致していなければ、 ファイルは壊れているので削除してください。 &os; の入っている CDROM や DVD, USB メモリスティックを持っているのであれば、 この章を飛ばしてもかまいません。 &os; の CD および DVD イメージは、 起動可能な ISO ファイルです。 インストールには、一枚の CD または DVD があれば十分です。 現在使用しているオペレーティングシステムにインストールされている、 ISO イメージを CD に書き込むアプリケーションを用いて、 起動可能な CD または DVD を作成してください。 &os; では、Ports Collection の sysutils/cdrtools の &man.cdrecord.1; を使って書き込むことができます。 起動可能なメモリスティックを作成する場合には、 以下の手順にしたがってください。 メモリスティックのイメージの取得 &os; 9.0-RELEASE 以降のメモリスティックのイメージは、 ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/arch/ISO-IMAGES/version/&os;-version-RELEASE-arch-memstick.img. の ISO-IMAGES/ ディレクトリからダウンロードできます。 ここで、archversion の部分を、 それぞれインストールするアーキテクチャとバージョン番号に置き換えてください。 たとえば、&os;/&arch.i386; 9.0-RELEASE のメモリスティックのイメージは、ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/&arch.i386;/ISO-IMAGES/9.0/&os;-9.0-RELEASE-&arch.i386;-memstick.img から入手できます。 &os; 8.X 以前では、 これとは異なるディレクトリパスが使われています。 &os; 8.X 以前のバージョンのダウンロードとインストールの詳細については、 で説明しています。 メモリスティックイメージには、.img という拡張子がついています。ISO-IMAGES/ ディレクトリには複数の異なるイメージがあり、インストールする &os; のバージョンや、インストールするハードウェアによって、 必要なファイルが変わります。 以下の作業によってデータが 消去 されるので、 先に進む前に、使用する USB スティックにあるデータをバックアップしてください。 イメージファイルをメモリスティックに書き込む &os; を使ってイメージを書き込む 以下の例では、イメージを書き込むデバイスを /dev/da0 としています。 正しいデバイスを出力先に設定していることを十分確認してくだい。 さもなければ、現在あるデータを破壊してしまうことになります。 &man.dd.1; を使ってイメージを書き込む .img ファイルは、 通常のファイルではありません。 メモリスティックの完全な内容の イメージ です。 通常のファイルのようなコピーは できません。&man.dd.1; を使用して直接ターゲットディスクに書き込む必要があります。 &prompt.root; dd if=&os;-9.0-RELEASE-&arch.i386;-memstick.img of=/dev/da0 bs=64k &windows; を使ってイメージを書き込む 適切なドライブレターを出力先に設定していることを十分確認してくだい。 さもなければ、現在あるデータを破壊してしまうでしょう。 <application>Image Writer for &windows;</application> を入手する Image Writer for &windows; は、 イメージファイルをメモリスティックに正しく書き込むことのできるフリーのアプリケーションです。 https://launchpad.net/win32-image-writer/ からダウンロードして、フォルダに展開してください。 イメージライタを使ってイメージを書き込む Win32DiskImager アイコンをダブルクリックして、プログラムを起動します。 Device の下に表示されるデバイスレターが、 メモリスティックのドライブであることを確認してください。 フォルダのアイコンをクリックして、 メモリスティックに書き込むイメージファイルを選択します。 [ Save ] をクリックして、 イメージファイルの名前をアクセプトしてください。 すべてが正しく行われたかどうか、また、 他のウィンドウでメモリスティックのフォルダが開かれていないことを確認してください。 準備ができたら、[ Write ] を押して、 メモリスティックにイメージファイルを書き込みます。 フロッピーディスクからのインストールには、 もはや対応していません。 これで &os; をインストールする用意ができました。 インストールの開始 デフォルトでは、次のメッセージが表示されるまで インストーラはディスクに何の変更も加えません。 Your changes will now be written to disk. If you have chosen to overwrite existing data, it will be PERMANENTLY ERASED. Are you sure you want to commit your changes? この警告の前であれば、 いつでもハードディスクの内容を変更することなくインストールを中断できます。 もし、何かを間違って設定してしまったことが心配ならば、 最後の警告の前に単にコンピュータをオフにしてください。 被害を残さずに済みます。 起動 &i386; および &arch.amd64; アーキテクチャでの起動 で説明されている 起動 USB スティックを使用する場合には、コンピュータを立ち上げる前に、 USB スティックを挿入してください。 CDROM から起動する場合には、コンピュータを立ち上げ、 すぐに CDROM を挿入してください。 CDROM または USB から起動するようにコンピュータを設定してください。 この作業は、インストールに用いるメディアによって異なります。 起動するデバイスを BIOS で設定できます。 ほとんどのシステムでは、通常、起動時に F10, F11, F12 または Escape キーを押すことで、起動するデバイスを選択できます。 もし、コンピュータがすでに存在している OS を読み込み、 通常通り起動してしまったのであれば、 以下の原因が考えられます。 起動ディスクが起動プロセスにおいて十分早いタイミングで挿入されていません。 ディスクをそのままにしてコンピュータを再起動してください。 先程の BIOS の変更が適切に行われていません。 正しいオプションを設定してやり直してください。 使用している BIOS は、 希望しているメディアからの起動に対応していません。Plop Boot Manager を使うと、古いコンピュータを CD や USB メディアから起動できます。 &os; は起動を開始します。CDROM から起動している場合、 次のような画面が表示されるでしょう (バージョン情報は省略しています)。 Booting from CD-ROM... 645MB medium detected CD Loader 1.2 Building the boot loader arguments Looking up /BOOT/LOADER... Found Relocating the loader and the BTX Starting the BTX loader BTX loader 1.00 BTX version is 1.02 Consoles: internal video/keyboard BIOS CD is cd0 BIOS drive C: is disk0 BIOS drive D: is disk1 BIOS 636kB/261056kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 Loading /boot/defaults/loader.conf /boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d] \ &os; ブートローダにより、以下の画面が表示されます。
&os; ブートローダメニュー
10 秒間待つか、Enter を押してください。
&macintosh; &powerpc; での起動 ほとんどのコンピュータでは、 起動中にキーボードの C を押しておくと、CD から起動します。 別の方法では Command Option O F 、 または non-&apple; キーボードでは Windows Alt O F を押してください。 0 > プロンプトで boot cd:,\ppc\loader cd:0 と入力してください。 キーボードのない Xserves では、 Open Firmware に起動する方法について &apple;'s support web site を参照してください。 &sparc64; アーキテクチャでの起動 ほとんどの &sparc64; システムは、 ディスクから自動的に起動するように設定されています。 &os; をインストールするには、ネットワークまたは CDROM から起動する必要があり、そのためには PROM (OpenFirmware) に入る必要があります。 PROM に入るにはシステムを再起動し、 ブートメッセージが表示されるまで待ってください。 モデルによりますが、以下のような表示です。 Sun Blade 100 (UltraSPARC-IIe), Keyboard Present Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. OpenBoot 4.2, 128 MB memory installed, Serial #51090132. Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4. もしシステムがこの時点でディスクから起動するようでしたら、 キーボードから L1A または StopA を押すか、シリアルコンソールから BREAK (たとえば、&man.tip.1; または &man.cu.1; では ~#) を送信して、 PROM プロンプトを表示してください。 次のような表示です。 ok ok {0} 単一の CPU を持つシステムでのプロンプト SMP システムのプロンプト。数字はアクティブな CPU の数。 ここで、CDROM をドライブに挿入し、 PROM プロンプトで boot cdrom と入力してください。
デバイス検出結果を再表示する 画面に表示される数百行の文字列は (バッファに) 記憶されており、 再表示することが出来ます。 バッファを再表示するには、Scroll Lock キーを押します。 これで画面をスクロールできます。結果を見るためには、矢印キーもしくは PageUpPageDown を使います。 Scroll Lock をもう一度押すと、スクロールを停止します。 直ちにこの作業を行って、カーネルがデバイス検出を実行している時に 画面の外に流れた文字列を再表示してください。 によく似た画面が現われるでしょう。 ただし、あなたのコンピュータに搭載されているデバイスによって、 表示される文字列は異なります。
典型的なデバイス検出結果の例 Copyright (c) 1992-2011 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 9.0-RELEASE #0 r225473M: Sun Sep 11 16:07:30 BST 2011 root@psi:/usr/obj/usr/src/sys/GENERIC amd64 CPU: Intel(R) Core(TM)2 Duo CPU T9400 @ 2.53GHz (2527.05-MHz K8-class CPU) Origin = "GenuineIntel" Id = 0x10676 Family = 6 Model = 17 Stepping = 6 Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> Features2=0x8e3fd<SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1> AMD Features=0x20100800<SYSCALL,NX,LM> AMD Features2=0x1<LAHF> TSC: P-state invariant, performance statistics real memory = 3221225472 (3072 MB) avail memory = 2926649344 (2791 MB) Event timer "LAPIC" quality 400 ACPI APIC Table: <TOSHIB A0064 > FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs FreeBSD/SMP: 1 package(s) x 2 core(s) cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0: Changing APIC ID to 1 ioapic0 <Version 2.0> irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: <TOSHIB A0064> on motherboard acpi0: Power Button (fixed) acpi0: reservation of 0, a0000 (3) failed acpi0: reservation of 100000, b6690000 (3) failed Timecounter "ACPI-safe" frequency 3579545 Hz quality 850 acpi_timer0: <24-bit timer at 3.579545MHz> port 0xd808-0xd80b on acpi0 cpu0: <ACPI CPU> on acpi0 ACPI Warning: Incorrect checksum in table [ASF!] - 0xFE, should be 0x9A (20110527/tbutils-282) cpu1: <ACPI CPU> on acpi0 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 pci0: <ACPI PCI bus> on pcib0 vgapci0: <VGA-compatible display> port 0xcff8-0xcfff mem 0xff400000-0xff7fffff,0xe0000000-0xefffffff irq 16 at device 2.0 on pci0 agp0: <Intel GM45 SVGA controller> on vgapci0 agp0: aperture size is 256M, detected 131068k stolen memory vgapci1: <VGA-compatible display> mem 0xffc00000-0xffcfffff at device 2.1 on pci0 pci0: <simple comms> at device 3.0 (no driver attached) em0: <Intel(R) PRO/1000 Network Connection 7.2.3> port 0xcf80-0xcf9f mem 0xff9c0000-0xff9dffff,0xff9fe000-0xff9fefff irq 20 at device 25.0 on pci0 em0: Using an MSI interrupt em0: Ethernet address: 00:1c:7e:6a:ca:b0 uhci0: <Intel 82801I (ICH9) USB controller> port 0xcf60-0xcf7f irq 16 at device 26.0 on pci0 usbus0: <Intel 82801I (ICH9) USB controller> on uhci0 uhci1: <Intel 82801I (ICH9) USB controller> port 0xcf40-0xcf5f irq 21 at device 26.1 on pci0 usbus1: <Intel 82801I (ICH9) USB controller> on uhci1 uhci2: <Intel 82801I (ICH9) USB controller> port 0xcf20-0xcf3f irq 19 at device 26.2 on pci0 usbus2: <Intel 82801I (ICH9) USB controller> on uhci2 ehci0: <Intel 82801I (ICH9) USB 2.0 controller> mem 0xff9ff800-0xff9ffbff irq 19 at device 26.7 on pci0 usbus3: EHCI version 1.0 usbus3: <Intel 82801I (ICH9) USB 2.0 controller> on ehci0 hdac0: <Intel 82801I High Definition Audio Controller> mem 0xff9f8000-0xff9fbfff irq 22 at device 27.0 on pci0 pcib1: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0 pci1: <ACPI PCI bus> on pcib1 iwn0: <Intel(R) WiFi Link 5100> mem 0xff8fe000-0xff8fffff irq 16 at device 0.0 on pci1 pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.1 on pci0 pci2: <ACPI PCI bus> on pcib2 pcib3: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0 pci4: <ACPI PCI bus> on pcib3 pcib4: <ACPI PCI-PCI bridge> at device 30.0 on pci0 pci5: <ACPI PCI bus> on pcib4 cbb0: <RF5C476 PCI-CardBus Bridge> at device 11.0 on pci5 cardbus0: <CardBus bus> on cbb0 pccard0: <16-bit PCCard bus> on cbb0 isab0: <PCI-ISA bridge> at device 31.0 on pci0 isa0: <ISA bus> on isab0 ahci0: <Intel ICH9M AHCI SATA controller> port 0x8f58-0x8f5f,0x8f54-0x8f57,0x8f48-0x8f4f,0x8f44-0x8f47,0x8f20-0x8f3f mem 0xff9fd800-0xff9fdfff irq 19 at device 31.2 on pci0 ahci0: AHCI v1.20 with 4 3Gbps ports, Port Multiplier not supported ahcich0: <AHCI channel> at channel 0 on ahci0 ahcich1: <AHCI channel> at channel 1 on ahci0 ahcich2: <AHCI channel> at channel 4 on ahci0 acpi_lid0: <Control Method Lid Switch> on acpi0 battery0: <ACPI Control Method Battery> on acpi0 acpi_button0: <Power Button> on acpi0 acpi_acad0: <AC Adapter> on acpi0 acpi_toshiba0: <Toshiba HCI Extras> on acpi0 acpi_tz0: <Thermal Zone> on acpi0 attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0 Timecounter "i8254" frequency 1193182 Hz quality 0 Event timer "i8254" frequency 1193182 Hz quality 100 atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: model GlidePoint, device ID 0 atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0 Event timer "RTC" frequency 32768 Hz quality 0 hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0 Timecounter "HPET" frequency 14318180 Hz quality 950 Event timer "HPET" frequency 14318180 Hz quality 450 Event timer "HPET1" frequency 14318180 Hz quality 440 Event timer "HPET2" frequency 14318180 Hz quality 440 Event timer "HPET3" frequency 14318180 Hz quality 440 uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 ppc0: cannot reserve I/O port range est0: <Enhanced SpeedStep Frequency Control> on cpu0 p4tcc0: <CPU Frequency Thermal Control> on cpu0 est1: <Enhanced SpeedStep Frequency Control> on cpu1 p4tcc1: <CPU Frequency Thermal Control> on cpu1 Timecounters tick every 1.000 msec hdac0: HDA Codec #0: Realtek ALC268 hdac0: HDA Codec #1: Lucent/Agere Systems (Unknown) pcm0: <HDA Realtek ALC268 PCM #0 Analog> at cad 0 nid 1 on hdac0 pcm1: <HDA Realtek ALC268 PCM #1 Analog> at cad 0 nid 1 on hdac0 usbus0: 12Mbps Full Speed USB v1.0 usbus1: 12Mbps Full Speed USB v1.0 usbus2: 12Mbps Full Speed USB v1.0 usbus3: 480Mbps High Speed USB v2.0 ugen0.1: <Intel> at usbus0 uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0 ugen1.1: <Intel> at usbus1 uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1 ugen2.1: <Intel> at usbus2 uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2 ugen3.1: <Intel> at usbus3 uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3 uhub0: 2 ports with 2 removable, self powered uhub1: 2 ports with 2 removable, self powered uhub2: 2 ports with 2 removable, self powered uhub3: 6 ports with 6 removable, self powered ugen2.2: <vendor 0x0b97> at usbus2 uhub8: <vendor 0x0b97 product 0x7761, class 9/0, rev 1.10/1.10, addr 2> on usbus2 ugen1.2: <Microsoft> at usbus1 ada0 at ahcich0 bus 0 scbus1 target 0 lun 0 ada0: <Hitachi HTS543225L9SA00 FBEOC43C> ATA-8 SATA 1.x device ada0: 150.000MB/s transfers (SATA 1.x, UDMA6, PIO 8192bytes) ada0: Command Queueing enabled ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C) ada0: Previously was known as ad4 ums0: <Microsoft Microsoft 3-Button Mouse with IntelliEyeTM, class 0/0, rev 1.10/3.00, addr 2> on usbus1 SMP: AP CPU #1 Launched! cd0 at ahcich1 bus 0 scbus2 target 0 lun 0 cd0: <TEAC DV-W28S-RT 7.0C> Removable CD-ROM SCSI-0 device cd0: 150.000MB/s transfers (SATA 1.x, ums0: 3 buttons and [XYZ] coordinates ID=0 UDMA2, ATAPI 12bytes, PIO 8192bytes) cd0: cd present [1 x 2048 byte records] ugen0.2: <Microsoft> at usbus0 ukbd0: <Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2> on usbus0 kbd2 at ukbd0 uhid0: <Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2> on usbus0 Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...
丹念に検出結果をチェックして、あなたが予期したすべてのデバイスを &os; が検出できた事を確認してください。デバイスが見つからなかった場合、 検出結果へ表示されません。 カーネルモジュール を構築することで、GENERIC カーネルに含まれていないデバイスのサポートを追加できます。 デバイス検出後、 が表示されます。 インストールメディアは、&os; のインストール、 live CD、または &os; シェルへのアクセスの 3 つの目的に利用出来ます。 矢印キーを使ってオプションを選択し、 Enter を押してください。
インストールメディアの選択モード
ここで [ Install ] を選択すると、インストール作業が始まります。
<application>bsdinstall</application> の紹介 bsdinstall は、&a.nwhitehorn.email; により書かれた、テキストベースのインストールプログラムです。 2011 年の &os; 9.0 で導入されました。 &a.kmoore.email; の pc-sysinstall は、 PC-BSD に含まれており、 &os; のインストール にも使用できます。 bsdinstall と混同されることもありますが、 この 2 つのインストーラには関係はありません。 bsdinstall のメニューは、カーソルキー、 Enter, Tab, Space 等で操作します。 キー配列メニューの選択 使用しているシステムのコンソールにもよりますが、 bsdinstall は、 最初にデフォルト以外のキーボードレイアウト使うかどうかを尋ねてきます。
キーマップの選択
[ YES ] を選択すると、 以下のキーボード選択画面が表示されます。 そうでなければ、この選択メニューは表示されず、 デフォルトのキーボードマップが使われます。
キーボードメニューの選択
システムのキーボードに最も近いキーマップを上下のカーソルキーで選び、 Enter キーを押してください。 Esc を押すと、 デフォルトのキーボードマップを使うようになります。 どのキーボードマップを選べばよいかわからない場合には、 United States of America ISO-8859-1 キーマップを選ぶとよいでしょう。
ホスト名の設定 次に bsdinstall は、 新しくインストールするシステムに与えるホスト名の入力に移ります。
ホスト名の設定
入力するホスト名は、 machine3.example.com のように完全修飾のホスト名で入力してください。
インストールするコンポーネントの設定 次に、 bsdinstall は、インストールするオプションのコンポーネントの選択に移ります。
インストールするコンポーネントの設定
どのコンポーネントをインストールするかは、 システムの用途と用意されているディスク容量に依存します。 &os; カーネルとユーザランド (総称 は base system) は、 常にインストールされます。 インストールのタイプによっては表示されないコンポーネントもあります。 オプションのコンポーネント doc - 追加の文書。多くは歴史的な興味のものです。 &os; ドキュメンテーションプロジェクトが提供している文書は、 あとでインストールされます。 games - fortune, rot13 などの伝統的な BSD ゲームをインストールします。 lib32 - 32-bit のアプリケーションを 64-bit 版の &os; で実行する際に必要となる互換ライブラリ。 ports - &os; Ports Collection Ports Collection は、 ソフトウェアのインストールを簡単に行う方法を提供します。 Ports Collection は、 ソフトウェアをコンパイルするのに必要なソースコードを含んでいません。 サードパーティ製ソフトウェアパッケージのダウンロード、 コンパイル、インストールを自動化するように設計されたファイルの集まりです。 Ports Collection の使い方については、 で説明します。 インストールプログラムは、 システムのディスクに十分な空き容量があるかどうかを確認しないので、 このオプションを選択する際には、 ハードディスクの容量が十分あることを確認してください。 &os; 9.0 では、Ports Collection が必要とする容量は、 約 &ports.size; です。 より最新の &os; のバージョンでは、 安全のためにもう少し大きなサイズを想定してください。 src - システムのソースコード &os; には、 カーネルとユーザランド両方のソースコードが付属しています。 ほとんどのアプリケーションは必要としませんが、 ソースで提供されているソフトウェア (デバイスドライバやカーネルモジュールなど) によってはコンパイル時、 または &os; そのものを開発する場合に必要となります。 すべてのソースツリーをインストールするには 1 GB のディスク容量を必要とします。 また、&os; システム全体のコンパイルには、 さらに 5 GB の容量が必要です。
ネットワークからのインストール bootonly インストールメディアは、 インストールファイルを含んでいません。 bootonly インストールメディアを使う場合には、 ネットワーク経由でファイルをダウンロードする必要があります。
ネットワークからのインストール
に示されているように、 ネットワーク接続の設定が終わっていれば、ミラーサイトが選択されます。 ミラーサイトは、&os; ファイルのコピーをキャッシュしています。 &os; をインストールするコンピュータと同じ地域のミラーサイトを選んでください。 ターゲットコンピュータの近くにミラーがあると、 ファイルのダウンロードは早く終わるので、インストールの時間が短くなります。
ミラーサイトの選択
インストールファイルをローカルメディアに用意できたら、 インストールは先に進みます。
ディスク領域の割り当て &os; へディスク領域を割り当てるには 3 つの方法があります。 Guided によるパーティションの分割方法では、 ディスクパーティションを自動的に設定します。 一方 Manual によるパーティションの分割方法は、 高度な知識を持つユーザ向けで、 カスタマイズしたパーティションを作成できます。 3 つ目の方法として、シェルを利用し、&man.gpart.8;, &man.fdisk.8;, &man.bsdlabel.8; のようなコマンドラインのプログラムを実行する方法があります。
パーティションの分割に Guided と Manual のどちらを用いるかの選択
+ この章では、 + ディスクパーティションをレイアウトする際の検討事項を説明します。 + その後、Guided Partitioning および Manual Partitioning screens + の使用方法について説明します。 + + + パーティションレイアウトのデザイン + + partition layout + + /etc + + + /var + + + /usr + + + ファイルシステムのレイアウトを行う際には、 + ハードディスクの外周部は内周部よりもデータ転送が速いということを思い出してください。 + これに従えば、 + 小さくて激しくアクセスされるファイルシステムを外周付近に、 + /usr + のようなより大きなパーティションはディスクの内側に配置すべきでしょう。 + そのため、パーティションを作成する際には、/、 + スワップ、/var, /usr + のような順で作ってゆくのがよいでしょう。 + + /var パーティションのサイズは、 + あなたが計算機をどのように使おうとしているかを反映します。 + このパーティションには主としてメールボックスやログファイル、 + プリンタスプールが置かれます。 + メールボックスとログファイルは、 + システムのユーザ数やログの保持期間に依存して予期し得ぬサイズにまで成長する可能性があります。 + 概して、ほとんどのユーザは、/var + にギガバイト以上の空き容量を必要とはしないでしょう。 + + + 時には、たくさんのディスク容量が + /var/tmp に必要になるときがあります。 + 新しいソフトウェアをインストールする際、 + package のツールは、package の一時的なコピーを + /var/tmp 以下に展開します。 + /var/tmp + 以下に十分なディスク容量が用意されていないと、 + Firefox, + OpenOffice や + LibreOffice のような、 + 大きなソフトウェア package のインストールが、 + 困難になることがあります。 + + + /usr パーティションには、 + &os; Ports Collection およびシステムのソースコードを含む、 + システムをサポートするのに必要な多くのファイル群が置かれます。 + このパーティションには、少なくとも 2 ギガバイトを用意することをおすすめします。 + + パーティションのサイズを考える時、 + 必要量を念頭に置いてください。 + 別のパーティションには潤沢にスペースが余っているのに、 + あるパーティションでスペースが足らないままというのは、 + フラストレーションがたまるものです。 + + + swap sizing + + + swap partition + + + 経験からスワップパーティションのサイズは物理メモリ + (RAM) の 2 倍というのが一般的です。 + RAM の少ないシステムでは、 + もっとスワップを増した方が性能がよくなります。 + スワップが少なすぎる設定は、 + あなたが後にメモリを増設したときに問題を起すばかりではなく、 + VM ページスキャニングコードの能率を落します。 + + 複数の SCSI + ディスクや異なるコントローラで操作される複数の + IDE ディスクを持つ大規模なシステムでは、 + それぞれのドライブ (4 台まで) にスワップを設定することを推奨します。 + 各ドライブのスワップパーティションはほぼ同一サイズであるべきです。 + カーネルは任意のサイズを扱うことができますが、 + 内部のデータ構造は最大のスワップパーティションの 4 倍に調節されます。 + スワップパーティションをほぼ同一のサイズにしておくことで、 + カーネルはスワップスペースを最適なかたちでディスクをまたいでストライプさせることができます。 + あなたが通常スワップをたくさん使わないとしても、 + 多くのスワップサイズを用意しておくと良いでしょう。 + プログラムが暴走しても再起動させられる前に回復することが容易になります。 + + システムを適切にパーティション化することで、 + 小さいが書き込みの激しいパーティションによって引き起こされるフラグメント化を、 + 読み出し専門のパーティションにまで波及させずにすみます。 + また、書き込みの激しいパーティションをディスクの周辺部に配置することで、 + I/O パフォーマンスを増大させることができます。 + 大きなパーティション内の I/O + パフォーマンスもまた必要とされているでしょうが、 + ディスク周辺部へ移動させたとしても、 + /var + を周辺部に移動させることによって大きな効果が得られたのとは対照的に、 + 意味のあるパフォーマンスの増加は見込めないでしょう。 + + Guided によるパーティションの分割 複数のディスクが接続されている場合には、 &os; をインストールするディスクを選択してください。
複数のディスクから選択する
ディスクのすべて、または一部を &os; に割り当てます。 [ Entire Disk ] を選択すると、 一般的なパーティションレイアウトが作成されます。 [ Partition ] を選択すると、 ディスクの使用していない領域にパーティションレイアウトを作成します。
Entire Disk または Partition の選択
パーティションのレイアウトを作成したら、 正しく作成できているかどうか注意深く確認してください。 間違いを発見したら、 [ Revert ] を選択して、 直前に作成したパーティションをリセットしてください。 また、[ Auto ] を選択すると、 自動的にもう一度 &os; パーティションを作成します。 パーティションを手動で作成、変更、削除できます。 正しくパーティションを作成出来たら、 [ Finish ] を選択し、 インストールを進めてください。
作成されたパーティションの確認
Manual によるパーティションの分割 Manual によるパーティションの分割では、 直接パーティションエディタが起動します。
Manual によるパーティションの分割
ドライブ (この例では ada0) を選び、 [ Create ] を選択すると、 partitioning scheme を選択するメニューが表示されます。
手動でパーティションを作成する
PC 互換のコンピュータでは、通常 GPT によるパーティション分割が最も適切な選択となります。 GPT に対応していないような古い PC オペレーティングシステムでは、 MBR パーティションを使う必要があります。 他のパーティションスキームは、使うことがまれであったり、 古いコンピュータで用いられます。 パーティションスキーム 省略形 説明 APM Apple パーティションマップ。 &powerpc; &macintosh; で使われます。 BSD MBR を用いない BSD ラベル。しばしば dangerously dedicated mode と呼ばれます。 &man.bsdlabel.8; をご覧ください。 GPT GUID パーティションテーブル MBR Master Boot Record PC98 MBR の亜種。NEC PC-98 コンピュータで使われます。 VTOC8 Volume Table Of Contents。 Sun SPARC64 および UltraSPARC コンピュータで使われます。
パーティションスキームを選択して作成した後で、 もう一度 [ Create ] を選択すると、 新しいパーティションが作成されます。
手動でパーティションを作成する
標準の &os; GPT のインストールでは、 少なくとも 3 つのパーティションが使われます。 標準的な &os; <acronym>GPT</acronym> パーティション freebsd-boot - &os; ブートコード。 freebsd-ufs - &os; UFS ファイルシステム。 freebsd-swap - &os; スワップ空間。 他のパーティション形式に freebsd-zfs があります。 これは &os; ZFS ファイルシステムを含めるためのものです。 The Z File System (ZFS) をご覧ください。 利用可能な GPT パーティションタイプについては、&man.gpart.8; をご覧ください。 複数のファイルシステムのパーティションを使うことができます。 /, /var, /tmp そして /usr といった伝統的なパーティション分割のレイアウトを好む人もいます。 レイアウトの例が にあります。 サイズを入力する際に、 K (キロバイト)、M (メガバイト)、 G (ギガバイト) といった通常の省略形を使用出来ます。 セクタを適切に配置することで、 最良のパフォーマンスを得ることができます。 また、パーティションサイズを 4K バイトの偶数倍にすると、 512 バイトまたは 4K バイトのセクタでドライブが配置しやすくなります。 一般的に、 4K の偶数倍の場所からパーティションが開始するように設定する簡単な方法は、 1M または 1G の偶数倍のパーティションサイズを用いることです。 ただし、例外があり、現在のところ freebsd-boot パーティションは、 ブートコードの制限により 512K 以下である必要があります。 ファイルシステムを持つパーティションでは、 マウントポイントが必要となります。 1 つの UFS パーティションだけを作成するのであれば、 マウントポイントは / となります。 同様に label の作成も必要です。 ラベルは作成したパーティションを認識するための名前です。 ドライブ名や番号は、 ドライブが別のコントローラやポートに接続されると変わることがありますが、 パーティションラベルは変わりません。 /etc/fstab のようなファイルの中で、 ドライブ名やパーティション番号ではなく、ラベルを参照することにより、 システムがハードウェアの変更に対して、より寛容になります。 GPT のラベルは、ディスクが接続されると /dev/gpt/ に現れます。他のパーティションスキームでは別のラベルとなり、 /dev/ 以下の異なるディレクトリにラベルが現れます。 同じ名前による衝突を避けるため、 すべてのファイルシステムに対し、一意的な名前使ってください。 コンピュータ名、使用、位置情報を表す単語をラベルに追加できます。 たとえば、研究室のコンピュータの UFS のルートパーティションを labroot または rootfs-lab とします。 伝統的なファイルシステムのパーティションを作成する。 伝統的なパーティションレイアウト (/, /var, /tmp および /usr ディレクトリが各パーティションの別のファイルシステム) を作成するには、 GPT パーティションスキームを作成し、 その後、示されているようにパーティションを作成してください。 示されているパーティションサイズは 20G のディスク用です。 ディスクにより多くの容量があれば、swap または /var パーティションを大きく取ると良いでしょう。 ここで示されているラベルには、 example を意味する ex が付けられていますが、 実際には上で説明したように、 これとは別のユニークなラベルをつけてください。 &os; の gptboot は、 デフォルトでは最初に見つかった UFS パーティションが、 / パーティションであることを前頭としています。 パーティションタイプ サイズ マウントポイント ラベル freebsd-boot 512K freebsd-ufs 2G / exrootfs freebsd-swap 4G exswap freebsd-ufs 2G /var exvarfs freebsd-ufs 1G /tmp extmpfs freebsd-ufs デフォルト (ディスクの残りのすべての容量) /usr exusrfs カスタムパーティション を作成したら [ Finish ] を選択して、 インストールを先に進んでください。
インストール操作の確定 インストールによるハードディスクへの変更を中止するなら、 ここが最後のチャンスです。
最後の確認
[ Commit ] を選択して、 Enter キーを押すとインストールが開始します。 もし変更が必要であれば、 [ Back ] を選択してパーティションエディタまで戻ってください。 [ Revert & Exit ] を選択すると、 ハードドライブへの変更なしにインストールを終了できます。 インストールにかかる時間は、どのディストリビューションを選んだか、 どのインストールメディアを使ったか、 そしてコンピュータの速度にも依存します。 進行状況を表すメッセージが逐次表示されます。 まず最初に、インストーラは、ディスクにパーティション情報を書き込み、 newfs を実行してパーティションを初期化します。 ネットワーク経由でのインストールでは、 bsdinstall は、 インストールに必要な配布ファイルをダウンロードします。
配布ファイルのダウンロード
次に、ダウンロードの際にエラーが含まれなかったか、 インストールメディアからの読み取り中に読み間違いが起きなかったかどうか等、 配布ファイルの完全性の検証が行われます。
配布ファイルの検証
最後に、検証された配布ファイルがディスクへ取り出されます。
配布ファイルの取り出し
必要な配布ファイルがすべて取り出されたら、 bsdinstall は、 インストール後の作業 () に進みます。
インストール後の作業 &os; のインストールが完了したら、 さまざまなオプションの設定に移ります。 新しくインストールした &os; を起動する前に、 最後のメニューの configuration オプションの項目に入りなおすことでも、 オプションの設定を変更できます。 <systemitem class="username">root</systemitem> パスワードの設定 root のパスワードを設定する必要があります。 パスワードを入力している際に、入力している文字は画面に表示されません。 パスワードの入力後、もう一度入力する必要があります。 これは入力ミスを防ぐためです。
<systemitem class="username">root</systemitem> パスワードの設定
パスワードの入力に成功したら、インストールは次に進みます。
ネットワークインタフェースの設定 bootonly によるインストール作業の一部として、 すでにネットワークの設定を終えているのであれば、 この作業を飛ばすことができます。 次に、コンピュータが認識したすべてのネットワークインタフェースが表示されます。 設定するネットワークインタフェースを選んでください。
イーサネットインタフェースの選択
ワイヤレスネットワークインタフェースの設定 ワイヤレスネットワークインタフェースを選択したのであれば、 ネットワークに接続するようにワイヤレス認証およびセキュリティパラメータの入力が必要となります。 ワイヤレスネットワークは Service Set Identifier (SSID) によって識別されます。 SSID は、それぞれのネットワークに与えられる、短く、一意的な名前です。 ほとんどのワイヤレスネットワークは、 送信データを暗号化して、情報を盗聴から保護します。 WEP のような古い暗号の安全性は低いので、 WPA2 暗号を強く薦めます。 ワイヤレスネットワークへ接続する最初のステップは、 ワイヤレスアクセスポイントのスキャンです。
ワイヤレスアクセスポイントのスキャン
スキャンで見つかった SSID の一覧が、 そのネットワークで利用できる暗号化のタイプの説明とともに表示されます。 もし、期待した SSID が一覧に表示されないのであれば、 [ Rescan ] を選択してもう一度スキャンしてください。 もし、期待したネットワークが表示されないのであれば、 接続のためのアンテナやコンピュータをアクセスポイントの近くに移動させてみてください。 その後もう一度スキャンしてください。
ワイヤレスネットワークの選択
ネットワークの選択後、ワイヤレスネットワークに接続するための暗号情報を入力します。 WPA2 では、 パスワード (Pre-Shared Key または PSK とも呼ばれます) のみが必要です。 セキュリティ上の観点から、入力ボックスに入力した文字はアスタリスクで表示されます。
WPA2 のセットアップ
ワイヤレスネットワークを選択後、 ネットワークの設定は接続情報の入力に進みます。
IPv4 ネットワークの設定 IPv4 ネットワークを使うかどうかを選択してください。 これは、ネットワーク接続の最も一般的なタイプです。
IPv4 ネットワークの選択
IPv4 の設定方法は 2 通りあります。 DHCP はネットワークインタフェースを自動的に適切に設定する方法で、 推奨されています。 Static 設定では、 ネットワーク情報を手動で入力する必要があります。 適当なネットワーク情報を入力しても動かないので、 ネットワーク管理者またはサービスプロバイダから に示されている情報を入手してください。 IPv4 DHCP ネットワークの設定 DHCP サーバを利用できるのであれば、 [ Yes ] を選択して、 ネットワークインタフェースの設定を自動的に行ってください。
IPv4 DHCP 設定の選択
静的な IPv4 ネットワークの設定 静的なネットワークインタフェースの設定では、 いくつかの IPv4 情報を入力する必要があります。
IPv4 Static 設定
IP Address - コンピュータに手動で与える IP アドレスです。 このアドレスは一意的なものである必要があり、 ローカルネットワーク上の他のネットワーク機器で使われていてはいけません。 Subnet Mask - ローカルネットワークで用いられるサブネットマスクです。 一般的には 255.255.255.0 です。 Default Router - このネットワークのデフォルトルータの IP アドレスです。 これは、通常ルータか、 ローカルネットワークをインターネットへ接続するネットワーク機器のことです。 デフォルトゲートウェイ とも呼ばれます。
IPv6 ネットワークの設定 IPv6 はネットワークの設定の新しい方法です。 IPv6 が利用でき、希望するのであれば、 [ Yes ] を選択してください。
IPv6 ネットワークの設定
IPv6 の設定に関しても 2 つの方法があります。 SLAAC (StateLess Address AutoConfiguration) は、ネットワークインタフェースを自動的に適切に設定します。 Static 設定では、ネットワーク情報を手動で入力する必要があります。 IPv6 Stateless Address Autoconfiguration SLAAC では、IPv6 ネットワークコンポーネントがローカルルータから自動設定に関する情報をリクエストできるようにします。 詳細については、RFC4862 をご覧ください。
IPv6 SLAAC 設定の選択
静的な IPv6 ネットワークの設定 静的なネットワークインタフェースの設定では、 IPv6 の設定に関する情報を入力する必要があります。
IPv6 static 設定
IPv6 Address - このコンピュータに割り当てられた IP アドレスです。 手動で設定します。 このアドレスは一意的なものである必要があり、 ローカルネットワーク上の他のネットワーク機器で使われていてはいけません。 Default Router - このネットワークのデフォルトルータの IPv6 アドレスです。 これは、通常ルータか、 ローカルネットワークをインターネットへ接続するネットワーク機器のことです。 デフォルトゲートウェイ とも呼ばれます。
<acronym>DNS</acronym> の設定 Domain Name System (または DNS) リゾルバは、ホスト名とネットワークアドレスを変換します。 すでに DHCP または SLAAC を使って自動的にネットワークインタフェースを設定したのであれば、 Resolver Configuration には値がすでに入っているでしょう。 そうでなければ、Search フィールドにローカルネットワークのドメイン名を入力してください。 DNS #1 および DNS #2 は、 ローカル DNS サーバの IP アドレスです。 少なくとも、1 つの DNS サーバは必要です。
DNS の設定
タイムゾーンの設定 使用しているコンピュータのタイムゾーンを設定することで、 地域による時刻の違いが自動的に調整され、 タイムゾーンに関連した機能が適切に取り扱われます。 ここでの例では、コンピュータが United States の Eastern タイムゾーンにあるものとします。 実際の地理的位置を選択してください。
ローカルまたは UTC クロックの選択
コンピュータのクロックの設定にしたがい、 [ Yes ] または、 [ No ] を選択し、Enter を押しください。 UTC とローカルタイムのどちらを選ぶべきかわからない場合には、 [ No ] を選択して、より一般的なローカルタイムに設定してください。
地域の選択
矢印キーを使って、適切な地域を選択し、 Enter を押してください。
国名の選択
矢印キーを使って、適切に国名を選び、 Enter を押してください。
タイムゾーンの選択
矢印キーを使って適切なタイムゾーンを選択し、 Enter を押してください。
タイムゾーンの確定
タイムゾーンの省略形が正しいかどうかを確認してください。 問題がないようであれば Enter を押して、 インストール後の設定を続けてください。
有効にするサービスの選択 ブート時に起動するシステムサービスを追加で有効に出来ます。 これらのサービスはすべてオプションです。
追加で有効にするサービスの選択
追加のサービス sshd - 安全なリモートアクセスのためのセキュアシェル (SSH) デーモン moused - システムのコンソールで、 マウスを利用できるようにします。 ntpd - 自動時刻同期のネットワークプロトコル (NTP) デーモン powerd - 電源の管理およびエネルギーを節約するための電源コントロールユーティリティ
クラッシュダンプの設定 次に bsdinstall は、 クラッシュダンプの設定に移ります。 システムのデバッグを行う上で、 クラッシュダンプにより得られる情報は非常に有用です。 可能であればクラッシュダンプを有効にすると良いでしょう。 [ Yes ] を選択してクラッシュダンプを有効にするか、または [ No ] を選択してクラッシュダンプを無効化し、先に進んでください。
クラッシュダンプの設定
ユーザの追加 システムに root でログインすることを避けるため、 インストール時には、少なくとも一人のユーザを追加してください。 root 権限では、実行に対して制限がなく、また、保護されません。 通常のユーザでログインすることにより、 安全でセキュリティ的に危険が少なくなります。 [ Yes ] を選択し、 新しいユーザを追加してください。
新しいユーザのアカウントの作成
追加するユーザの情報を入力してください。
ユーザ情報の入力
ユーザの情報 Username - ログイン時のユーザ名を入力します。典型的なものでは、 ファーストネームの最初の文字とラストネームを組み合わせます。 Full name - ユーザのフルネーム Uid - ユーザ ID 番号。 通常は、システムが自動的に割り当てるように、 空欄のままにします。 Login group - 新しいユーザのログイングループ。 空欄のままにすると、自動的に割り当てられます Invite user into other groups? - ユーザを別のグループのメンバーとして追加するかどうか。 Login class - 空欄にするとデフォルトの設定になります。 Shell - ユーザのログインシェル。 この例では &man.csh.1; に設定されています。 Home directory - ユーザのホームディレクトリ。 通常は、デフォルトの場所が適切です。 Home directory permissions - ユーザのホームディレクトリの権限。 通常は、デフォルトが適切です。 Use password-based authentication? - 通常は yes です。 Use an empty password? - 通常は no です。 Use a random password? - 通常は no です。 Enter password - ユーザのパスワードです。 入力している文字は画面に表示されません。 Enter password again - 確認のため、パスワードをもう一度入力します。 Lock out the account after creation? - 通常は no です。 すべてを入力したら、サマリが表示され、 正しいかどうかの確認を求められます。 入力した情報に間違いがあれば、 no を入力してもう一度作業を行なってください。 すべてが正しく入力されていれば、 yes を入力して、新しいユーザを作成してください。
ユーザおよびグループの管理を終了する
さらにユーザを追加するのであれば、 Add another user? の質問に対し、 yes を入力してください。 no を入力すると、ユーザの追加が終わり、次に進みます。 ユーザの追加や、ユーザ管理の詳細については、 を参照してください。
最後の設定 すべてをインストールし、設定が終わった後に、 最後に設定を修正する機会が与えられます。
最後の設定
インストールを完了する前に、 このメニューを使って変更、または、追加の設定を行なってください。 最終の設定オプション Add User - で説明しています。 Root Password - で説明しています。 Hostname - で説明しています。 Network - で説明しています。 Services - で説明しています。 Time Zone - で説明しています。 Handbook - &os; ハンドブック (現在あなたが読んでいるこの文書のことです) のダウンロードとインストール。 最後の設定が完了したら、Exit を選んでインストールを終了してください。
Manual Configuration
新しいシステムを再起動する前に、 bsdinstall は追加の設定が必要かどうかを尋ねてきます。 [ Yes ] を選択して新しいシステムのシェルに入るか、または [ No ] を選択して、インストールの最後のステップに進んでください。
インストールの終了
追加の設定や、特別なセットアップが必要であれば、 [ Live CD ] を選んでインストールメディアを Live CD モードで起動してください。 インストールが終わったら、 [ Reboot ] を選んで、 コンピュータを再起動し、新しい &os; システムを動かしてください。 再起動する前には、忘れずに &os; インストール CD, DVD または USB メモリスティックを外してください。 さもないと、もう一度インストールメディアから起動してしまいます。
&os; の起動とシャットダウン &os;/&arch.i386; の起動 &os; の起動時には、多くのメッセージが画面に表示されます。 ほとんどは、画面上からスクロールして見えなくなってしまいますが、 これは正常です。システムの起動が終わった後で、 ログインプロンプトが表示されます。 画面上からスクロールして消えてしまったメッセージは Scroll-Lock を押し、 scroll-back buffer で、見ることができます。 PgUp, PgDn そして矢印キーでメッセージをスクロールバックできます。 Scroll-Lock をもう一度押すと、画面のロックを外し、 通常の画面に戻ることができます。 login: プロンプトで、 インストール時に追加したユーザ名を入力してください。 この例では、asample です。 必要のない限り、root でのログインを避けてください。 上で示した scroll-back buffer では、バッファの容量制限により、 すべてが表示されないかもしれません。 ログインの後にプロンプトからコマンドラインで dmesg | less と入力することによって、すべてを見ることができます。 確認後に q を押すと、コマンドラインに戻ります。 典型的なブートメッセージ (バージョン情報は省略しています) Copyright (c) 1992-2011 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 CPU: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz (3007.77-MHz K8-class CPU) Origin = "GenuineIntel" Id = 0x10676 Family = 6 Model = 17 Stepping = 6 Features=0x783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2> Features2=0x209<SSE3,MON,SSSE3> AMD Features=0x20100800<SYSCALL,NX,LM> AMD Features2=0x1<LAHF> real memory = 536805376 (511 MB) avail memory = 491819008 (469 MB) Event timer "LAPIC" quality 400 ACPI APIC Table: <VBOX VBOXAPIC> ioapic0: Changing APIC ID to 1 ioapic0 <Version 1.1> irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: <VBOX VBOXXSDT> on motherboard acpi0: Power Button (fixed) acpi0: Sleep Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 900 acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0 cpu0: <ACPI CPU> on acpi0 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 pci0: <ACPI PCI bus> on pcib0 isab0: <PCI-ISA bridge> at device 1.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xd000-0xd00f at device 1.1 on pci0 ata0: <ATA channel 0> on atapci0 ata1: <ATA channel 1> on atapci0 vgapci0: <VGA-compatible display> mem 0xe0000000-0xe0ffffff irq 18 at device 2.0 on pci0 em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd010-0xd017 mem 0xf0000000-0xf001ffff irq 19 at device 3.0 on pci0 em0: Ethernet address: 08:00:27:9f:e0:92 pci0: <base peripheral> at device 4.0 (no driver attached) pcm0: <Intel ICH (82801AA)> port 0xd100-0xd1ff,0xd200-0xd23f irq 21 at device 5.0 on pci0 pcm0: <SigmaTel STAC9700/83/84 AC97 Codec> ohci0: <OHCI (generic) USB controller> mem 0xf0804000-0xf0804fff irq 22 at device 6.0 on pci0 usbus0: <OHCI (generic) USB controller> on ohci0 pci0: <bridge> at device 7.0 (no driver attached) acpi_acad0: <AC Adapter> on acpi0 atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: model IntelliMouse Explorer, device ID 4 attimer0: <AT timer> port 0x40-0x43,0x50-0x53 on acpi0 Timecounter "i8254" frequency 1193182 Hz quality 0 Event timer "i8254" frequency 1193182 Hz quality 100 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0 Event timer "RTC" frequency 32768 Hz quality 0 ppc0: cannot reserve I/O port range Timecounters tick every 10.000 msec pcm0: measured ac97 link rate at 485193 Hz em0: link state changed to UP usbus0: 12Mbps Full Speed USB v1.0 ugen0.1: <Apple> at usbus0 uhub0: <Apple OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0 cd0 at ata1 bus 0 scbus1 target 0 lun 0 cd0: <VBOX CD-ROM 1.0> Removable CD-ROM SCSI-0 device cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes) cd0: Attempt to query device size failed: NOT READY, Medium not present ada0 at ata0 bus 0 scbus0 target 0 lun 0 ada0: <VBOX HARDDISK 1.0> ATA-6 device ada0: 33.300MB/s transfers (UDMA2, PIO 65536bytes) ada0: 12546MB (25694208 512 byte sectors: 16H 63S/T 16383C) ada0: Previously was known as ad0 Timecounter "TSC" frequency 3007772192 Hz quality 800 Root mount waiting for: usbus0 uhub0: 8 ports with 8 removable, self powered Trying to mount root from ufs:/dev/ada0p2 [rw]... Setting hostuuid: 1848d7bf-e6a4-4ed4-b782-bd3f1685d551. Setting hostid: 0xa03479b2. Entropy harvesting: interrupts ethernet point_to_point kickstart. Starting file system checks: /dev/ada0p2: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ada0p2: clean, 2620402 free (714 frags, 327461 blocks, 0.0% fragmentation) Mounting local file systems:. vboxguest0 port 0xd020-0xd03f mem 0xf0400000-0xf07fffff,0xf0800000-0xf0803fff irq 20 at device 4.0 on pci0 vboxguest: loaded successfully Setting hostname: machine3.example.com. Starting Network: lo0 em0. lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet 127.0.0.1 netmask 0xff000000 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM> ether 08:00:27:9f:e0:92 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active Starting devd. Starting Network: usbus0. DHCPREQUEST on em0 to 255.255.255.255 port 67 DHCPACK from 10.0.2.2 bound to 192.168.1.142 -- renewal in 43200 seconds. add net ::ffff:0.0.0.0: gateway ::1 add net ::0.0.0.0: gateway ::1 add net fe80::: gateway ::1 add net ff02::: gateway ::1 ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib 32-bit compatibility ldconfig path: /usr/lib32 Creating and/or trimming log files. Starting syslogd. No core dumps found. Clearing /tmp (X related). Updating motd:. Configuring syscons: blanktime. Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: 10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com The key's randomart image is: +--[RSA1 1024]----+ | o.. | | o . . | | . o | | o | | o S | | + + o | |o . + * | |o+ ..+ . | |==o..o+E | +-----------------+ Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: 7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com The key's randomart image is: +--[ DSA 1024]----+ | .. . .| | o . . + | | . .. . E .| | . . o o . . | | + S = . | | + . = o | | + . * . | | . . o . | | .o. . | +-----------------+ Starting sshd. Starting cron. Starting background file system checks in 60 seconds. Thu Oct 6 19:15:31 MDT 2011 FreeBSD/amd64 (machine3.example.com) (ttyv0) login: 低速なマシンでは、 RSA および DSA キーを作成するのに少々時間がかかるかもしれません。 これはインストール後の最初の起動時に、sshd のセットアップが自動的に開始する時に実行されます。 その後の起動はより速くなるでしょう。 &os; はデフォルトでは、グラフィカルな環境をインストールしませんが、 多くのものを利用できます。 をご覧ください。 &os; のシャットダウン 適切に &os; をシャットダウンすることは、 ハードウェアをダメージから守ったり、データの保護につながります。 ただ電源を落すということはしないでください。 wheel グループのメンバとなっているユーザは、 コマンドラインから su と入力し、 root パスワードを入力して root となってください。 または root としてログインし、 shutdown -p now を使用します。システムは正しくシャットダウンし、電源が落ちます。 Ctrl Alt Del というキーの組合せを使ってシステムをリブートすることもできますが、 通常の運用においてこれは推奨されません。
トラブルシューティング インストール トラブルシューティング この節では、インストールの際の、 これまで報告された共通の問題に対する解決のための情報が書いてあります。 なにかおかしいときには何をすればよいでしょうか PC アーキテクチャのさまざまな制限により、 100% 確実に原因を突き止めることは不可能ですが、 失敗した時にいくつかできることがあります。 インストールする &os; のバージョンの ハードウェアノート を調べて、 使っているハードウェアに対応しているかどうかを確認してください。 もしハードウェアがサポートされているにもかかわらず、 動作しなかったり他の問題点がある時は、カスタムカーネル を構築する必要があります。GENERIC カーネルに含まれていないデバイスのサポートを追加することができます。 起動ディスクのカーネルでは、ほとんどのハードウェアデバイスの IRQ, IO アドレス、 DMA チャネルが工場出荷時の状態であると設定されています。 もしハードウェアの設定が変更されていると、 カーネルコンフィグレーションファイルを編集し、 再コンパイルを行なって、これらの値を &os; に設定しなければなりません。 存在しないデバイスを認識してしまうことにより、 その後実際に存在するデバイスの認識を失敗してしまうことがあります。 このような場合は衝突しているドライバを無効にします。 いくつかのインストール上の問題はさまざまなハードウェア装置の、 特にマザーボードのファームウェアのアップデートで回避または緩和することができます。 マザーボードのファームウェアは BIOS と呼ばれることもあり、 多くのマザーボードまたはコンピュータ製造メーカーは、 アップデートやアップグレード情報を載せているウェブサイトを用意しています。 通常、製造メーカーは、 重要な更新のようなそれなりの理由がない限り、マザーボードの BIOS のアップグレードは行わないよう推奨しています。 アップデートの過程で失敗する可能性があり、 その場合 BIOS が不完全な状態になり、 コンピュータが動作しない原因となり得るからです。 トラブルシューティングに関する Q & A 起動時のハードウェア検出で、システムがハングアップします。 または、インストール中にシステムがおかしくなります。 i386, amd64 および ia64 プラットフォームにおいて、 &os; はシステムの設定を手助けするシステム ACPI サービスを、 起動時に検出された場合に広く使います。 残念ながら、まだいくつかの不具合が、 ACPI ドライバとシステムのマザーボードおよび BIOS ファームウェア両方に存在しています。 起動ステージ 3 において、ヒント情報 hint.acpi.0.disabled を以下のように設定すると ACPI を無効にできます。 set hint.acpi.0.disabled="1" この設定はシステムが起動するたびにリセットされるので、 /boot/loader.conf ファイルに hint.acpi.0.disabled="1" を追加してください。 ブートローダのより詳しい情報については で説明します。 Live CD を使う &os; の live CD は、メインのインストールプログラムと同じ CD に含まれています。 オペレーティングシステムに &os; を使おうかどうか考えている方や、 インストールする前に機能を試して見たいと思っている方に有用です。 live CD を使う際は、以下のことに気をつけてください。 システムにアクセスする際には、認証を求められます。 ユーザ名は root、 パスワードは空欄としてください。 システムは CD から起動するため、 ハードディスクにインストールされたシステムに比べ、 パフォーマンスはかなり遅い可能性があります。 live CD のユーザインタフェースはコマンドプロンプトです。 グラフィカルなユーザインタフェースではありません。
Index: head/ja_JP.eucJP/books/handbook/config/chapter.xml =================================================================== --- head/ja_JP.eucJP/books/handbook/config/chapter.xml (revision 45698) +++ head/ja_JP.eucJP/books/handbook/config/chapter.xml (revision 45699) @@ -1,973 +1,825 @@ 設定とチューニング ChernLee寄稿: MikeSmith基にしたチュートリアルの執筆: MattDillon基にした tuning(7) の執筆: この章では システムの設定と最適化 システムを正しく設定することは、 メンテナンスや将来の更新の際の作業の量を減らします。 この章では FreeBSD システムの管理上の設定の側面について記述します。 またこの章では FreeBSD システムのパフォーマンスを最適化する チューニングについても記述します。 この章を読むと、以下のことがわかります。 - ハードディスク上で、ファイルシステムおよびスワップのパー - ティションの大きさと配置を決定する理由と方法 - - rc.conf の設定と /usr/local/etc/rc.d スタートアップシステムの基礎 ネットワークデバイスに対する、仮想ホストの設定方法 /etc ディレクトリ内のさまざまな設定ファ イルの使い方 sysctl 変数を使った FreeBSD のチューニング方法 ディスク性能のチューニング方法と、カーネルの制限の変更方法 この章を読む前に、以下のことをやっておくとよいでしょう。 Unix と FreeBSD の基本を理解する ()。 FreeBSD のソースコードを最新に保つこと () と、 カーネルコンフィグレーションおよび構築の基礎 () に親しんでおく。 - - - - 初期設定 - - - パーティションのレイアウト - - パーティションレイアウト - - /etc - - - /var - - - /usr - - - - 基本パーティション - - ファイルシステムのレイアウトを &man.disklabel.8; や - &man.sysinstall.8; で行う際、ハードディスクの外周部は - 内周部よりもデータ転送が速いということを覚えておくことが大事です。 - これに従えば、 - ルートやスワップのような小さくて激しくアクセスされるファイルシステムを外周付近に、 - /usr のようなより大きなパーティションは - その内側に配置すべきでしょう。 - そのため、パーティションを作成する際には、ルート、スワップ、 - /var/usr - のような順で作ってゆくのがよいでしょう。 - - /var パーティションのサイズは - あなたが計算機をどのように使おうとしているかを反映します。 - /var には主としてメールボックスやログファイル、 - プリンタスプールが置かれます。 - 特にメールボックスとログファイルは、 - あなたのシステムのユーザ数やログの保持期間に依存して予期し得ぬサイズにまで成長します。 - もしあなたがメールサーバを運用する予定なら /var - パーティションはギガバイト以上のものがよいでしょう。 - さらに、/var/tmp は追加したくなるかもしれない - パッケージを収められるだけの大きさが必要です。 - - /usr パーティションはシステムを - サポートするのに必要なファイル群と、 - &man.ports.7; 階層からインストールされたファイル群を収める - /usr/local と呼ばれるサブディレクトリを - その中に含みます。 - ports をまったく使わずシステムのソース (/usr/src) - も不要だというのであれば、1 ギガバイトの /usr - パーティションだけで充分です。 しかし、ports - (特にウィンドウマネージャや Linux バイナリ) - を少なからずインストールするのであれば - 少なくとも /usr に 2 ギガバイトを薦め、 - システムのソースも置こうというなら 3 ギガバイトの - /usr を推奨します。 - このパーティションで必要になる量を過小評価してはいけません。 - それは驚く程に蔓延るものなのです! - - パーティションのサイズを考える時、 - 必要量にシステムの成長分を見込んでおいてください。 - 別のパーティションには潤沢にスペースが余っているのに、 - あるパーティションでスペースが足らないままというのは - フラストレーションがたまるものです。 - - &man.sysinstall.8; の Auto-defaults - パーティションサイズを使ったことのある人なら、 - そのルートや /var パーティションが - 小さすぎることを知っているでしょう。 - 賢明かつ気前よくパーティションを切ってください。 - - - - - スワップパーティション - - swap サイズ - swap パーティション - - 経験からスワップサイズはメインメモリの 2 倍というのが一般的です。 - つまり、計算機のメモリが 128 メガバイトならばスワップファイルは - 256 メガバイトになります。 メモリの少ないシステムでは、 - もっとスワップを増した方が性能がよくなります。 256 - メガバイト未満のスワップでシステムを設計することはお薦めできません。 - またスワップサイズを決める時に、 - 将来のメモリ増設のことも考えておくべきです。 - カーネルの VM (訳註: virtual memory(仮想メモリ)) - ページングアルゴリズムはスワップパーティションがメインメモリの - 2 倍以上存在するときに最も性能を発揮するように設計されています。 - スワップが少なすぎる設定は、 - あなたが後にメモリを増設したときに問題を起すばかりではなく、 - VM ページスキャニングのコードの能率を落します。 - - 最後に、複数の SCSI ディスク - (や異なるコントローラで操作される複数の IDE ディスク) - を持つ大規模なシステムでは、それぞれのドライブ - (4 台まで) にスワップを設定することを強く推奨します。 - 各ドライブのスワップパーティションはほぼ同一サイズであるべきです。 - カーネルは任意のサイズを扱うことができますが、 - 内部のデータ構造は最大のスワップパーティションの 4 倍に調節されます。 - スワップパーティションをほぼ同一のサイズにしておくことで - カーネルはスワップスペースを最適なかたちで - ディスクをまたいでストライプさせることができます。 - こだわりすぎる必要はありません。 - スワップスペースは Unix のつつましい美点です。 - あなたが通常スワップをたくさん使わないとしても、 - プログラムが暴走してもリブートさせられる前に回復する時間を多く得られます。 - - - - 何故パーティション化するのか? - - 何故パーティション化してしまうのでしょう? - 何故巨大な root パーティション一発では駄目なのでしょう? - そうすれば容量が溢れるかもと心配しなくてもすむのに! - - いくつかの理由からそれはよいアイデアとは言えません。 - まず各パーティションはアクセスの特徴がそれぞれ異なっていて、 - 分離しておくことでそれぞれの特徴に応じたチューニングができるようになるからです。 - root パーティションや /usr - パーティションはほとんどが読み出しでわずかな書き込みがあるだけですが - /var/var/tmp - パーティションでは大量の読み書きが発生します。 - - システムを適切にパーティション化することで - 小さいが書き込みの激しいパーティションによって引き起こされる - フラグメント化を読み出し専門のパーティションにまで波及させずにすみます。 - また書き込みの激しいパーティションをディスクの周辺部に配置することで、 - たとえばパーティションテーブル内で大きなパーティションの後のかわりに前に配置することで、 - それが最も必要とされているパーティションの - I/O パフォーマンスを増大させることができます。 - 大きなパーティション内の I/O - パフォーマンスもまた必要とされているでしょうが、 - それらは大きすぎてディスク周辺部へ移動させてやったとしても - /var - を周辺部に移動させることによって大きな効果が得られたのとは対照的に - 意味のあるパフォーマンスの増加は見込めないでしょう。 - root パーティションを小さくまとめて - 基本的にリードオンリーにすることで、 - 不幸にしてクラッシュが起きても無事で済む可能性が大きくなります。 - - - 中核となる設定 rc files rc.conf システムの設定情報が収められている主な場所は /etc/rc.conf です。 このファイルにはシステムの起動時にシステムの設定を行なうものをはじめ 多岐に渡る設定情報が含まれています。 そのファイル名はダイレクトに、それが rc* ファイル群の設定情報であることを示しています。 管理者は /etc/defaults/rc.conf のデフォルトの設定を rc.conf ファイルにエン トリを作ることで上書きすべきです。 デフォルトのファイルをそのまま /etc にコピーするのはやめるべきです。 それはデフォルト値であってサンプルではないのです。 システム固有のすべての変更は rc.conf ファイ ルの中でするべきです。 管理の手間を減らす為、クラスター化されたアプリケーションには サイト共通の設定とシステム固有の設定を分離するさまざまな戦略が適用できます。 推奨されるアプローチは、サイト共通の設定は /etc/rc.conf.site のような別のファイルに置き、 それをシステム固有の設定情報しか含ませない /etc/rc.conf からインクルードすることです。 rc.conf は &man.sh.1; によって読み込まれているので、これはじつに簡単に達成できます。 たとえば、 rc.conf: . rc.conf.site hostname="node15.example.com" network_interfaces="fxp0 lo0" ifconfig_fxp0="inet 10.1.1.1" rc.conf.site: defaultrouter="10.1.1.254" saver="daemon" blanktime="100" rc.conf.site ファイルは rsync のようなプログラムを使うことで全システ ムに配布でき、一方 rc.conf ファイルはユニークなままを保つことができます。 システムを &man.sysinstall.8; や make world 等で 更新した場合 rc.conf ファイルは上書きされません。 なのでシステムの設定情報が失われることもありません。 アプリケーションの設定 基本的に、インストールされたアプリケーションには独自の文法を持つ 固有の設定ファイルがあります。 これらのファイルがベースシステムから分離されているということは重要で、 このためパッケージ管理ツールによる配置と管理が容易になっています。 /usr/local/etc 基本的に、それらのファイルは /usr/local/etc にインストールされます。 設定ファイルの数が多数にのぼるアプリケーションに対しては、 それら用にサブディレクトリが作られます。 通常、ports やパッケージがインストールされると 設定ファイルのサンプルが一緒にインストールされます。 大抵、識別のためにサフィックスとして .default がついています。 アプリケーションのための設定ファイルがまだ存在していなければ、 .defaults ファイルをコピーすることで作成できます。 /usr/local/etc/apache ディレクトリの例をご覧ください。 -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default -rw-r--r-- 1 root wheel 12205 May 20 1998 magic -rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default -rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf -rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default ファイルサイズの差から、srm.conf ファイルだけが変更されていることが分かります。 後に apache を更新した時にも、 この変更されたファイルは上書きされることはありません。 サービスの起動 サービス 一つのシステムでサービスをいくつも立ち上げているということは よくあることです。 それらには独自の立ち上げかたがあることがあり、 それぞれ有利な点があります。 /usr/local/etc/rc.d Ports collection やパッケージからインストールしたソフトウェアは しばしば /usr/local/etc/rc.d にスクリプトを置き、 システムが起動した時には 、システムをシャッ トダウンする時には を引数にして実行します。 これは root で実行すべき、または root で起動することを期待されているシステム ワイドなサービスを起動する場合に推奨される方法です。 これらのスクリプトはパッケージの一部としてインストール時に記録され、 パッケージとともに削除されます。 /usr/local/etc/rc.d にある 一般的なスクリプトは次のようなものです。 #!/bin/sh echo -n ' FooBar' case "$1" in start) /usr/local/bin/foobar ;; stop) kill -9 `cat /var/run/foobar.pid` ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0 このスクリプトはその目的を果すべく起動時に 、 シャットダウン時に をつけて呼ばれます。 サービスの中には固有のポートに接続を受けたときに &man.inetd.8; から起動されるものもあります。 これはメールリーダサーバ (POP や IMAP 等) の場合によくあります。 これらのサービスは /etc/inetd.conf ファイルを編集することで有効化されます。 このファイルの編集に関する詳細は &man.inetd.8; を見てください。 これらの他に /etc/rc.conf による有効化/無効化がカバーされていないサービスもあります。 それらは伝統的に /etc/rc.local にコマンドを書き込むことで実行されていました。 FreeBSD 3.1 にはデフォルトの /etc/rc.local は存在していません。 もし管理者によって作られていれば、 その時は一般的なやりかたとして認められるべきでしょう。 rc.local は最後の場所と考えられているということを 知っておいてください。 サービスを起動させるのにもっといい場所があるなら そこから始めてください。 /etc/rc.conf でその他のコマンドを実行しないでください。 そのかわり、デーモンの起動やブート時のコマンド実行は /usr/local/etc/rc.d にスクリプトを配置してください。 この他にサービスの起動に &man.cron.8; を利用することもできます。 このアプローチには、&man.cron.8; がそのプロセスを crontab の所有者権限で実行したり、サービスが 非特権ユーザによって立ち上げられ管理されるなどといった有利な点が いくつもあります。 これで &man.cron.8; の機能の利点を得ることができます。 日時の指定を @reboot で置き換えることでジョブは システムがブートした直後、&man.cron.8; が起動した時に実行されます。 バーチャルホスト バーチャルホスト ip aliases FreeBSD の非常にありふれた用途の一つにバーチャルサイトの ホスティングがあります。 これは一つのサーバがネットワークには複数のサーバとして現れるものです。 これは一つのネットワークインタフェイスに 複数のアドレスを割当てることで実現されます。 ネットワークインタフェイスは 真の アドレスを 一つと 別名 のアドレスを複数持ちます。これらの別 名は通常 /etc/rc.conf に別名のエントリを置くことで追加されます。 fxp0 インタフェイスへの別名のエント リは以下の様なものです。 ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" 別名のエントリは alias0 から始まり昇順に命名されなければなり ません (たとえば、_alias1, _alias2 の様になります)。設定プロセス は最初に欠けた番号のところで停まります。 別名のネットマスクの計算は重要ですが、幸いなことに非常に簡単です。 個々のインタフェイスについてそのネットワークのネットマスクを正しく 表現しているアドレスが必ず一つ必要です。 そのネットワークに所属しているそれ以外のアドレスのネットマスクは すべて 1 でなければなりません。 例として、fxp0 インタフェイスが二つ のネットワークに接続されているものを考えてみましょう。 一つはネットマスクが 255.255.255.0 である 10.1.1.0 ネットワークで、もう一つはネットマスクが 255.255.255.240 である 202.0.75.16 ネットワークです。 システムは 10.1.1.0 には 10.1.1.1 として、 202.0.75.20 には 202.0.75.17 として現れるようにします。 以下のエントリはネットワークインタフェイスを上述の環境に正しく 設定するものです。 ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" 設定ファイル <filename>/etc</filename> のレイアウト 設定のための情報が含まれているディレクトリはたくさんあります。 それぞれ以下のものを含んでいます。 /etc システム全般の設定情報。 ここにあるデータはシステム 固有のものです。 /etc/defaults デフォルトのシステム設定ファイル。 /etc/mail 追加的な &man.sendmail.8; の設定、他の MTA の設定ファイル。 /etc/ppp ユーザモード、およびカーネルモードの ppp プログラムの設定。 /etc/namedb &man.named.8; のデータのデフォルトの置場。通常 boot ファイルはここに置かれ、 /var/db に置かれた他のデータを 参照するディレクティブを含みます。 /usr/local/etc インストールされたアプリケーションの設定ファイル。 アプリケーションごとのサブディレクトリを含んでいることがあります。 /usr/local/etc/rc.d インストールされたアプリケーションの起動/停止スクリプト。 /var/db 永続的なシステム固有のデータファイル。 たとえば &man.named.8; のゾーンファイル、データベースファイル等。 ホスト名 hostname DNS <filename>/etc/resolv.conf</filename> resolv.conf /etc/resolv.conf は FreeBSD に インターネットドメインネームシステム (DNS) にどのようにアクセスするかを指定します。 resolv.conf の最もよくあるエントリは nameserver リゾルバが問い合わせるべきネームサーバの IP アドレス。 サーバはリストの順に 3 番目まで問い合わせられます。 search ホスト名をルックアップするための検索リスト。 通常、ローカルなホスト名のドメインから決定されます。 domain ローカルドメイン名。 基本的な resolv.conf search example.com nameserver 147.11.1.11 nameserver 147.11.100.30 search オプションと domain オプションは、 どちらか一方しか使ってはいけません。 DHCP を利用している場合、&man.dhclient.8; は通常 resolv.conf を DHCP サーバから受け取っ た情報で書き換えます。 <filename>/etc/hosts</filename> hosts /etc/hosts は古きインターネットを 偲ばせるシンプルなテキストのデータベースです。 これはホスト名と IP アドレスをマッピングする DNS や NIS と組み合わせて使われます。 LAN でつながれているローカルな計算機は、 名前引きを簡単にするために &man.named.8; サーバを立ち上げるかわりにここに書くことができます。 さらに /etc/hosts はインターネット名のローカルなレコードを提供し、 よくアクセスされる名前を外部に問い合わせるのを減らすためにも使えます。 # $FreeBSD$ # # Host Database # This file should contain the addresses and aliases # for local hosts that share this file. # In the presence of the domain name service or NIS, this file may # not be consulted at all; see /etc/nsswitch.conf for the resolution order. # # ::1 localhost localhost.my.domain myname.my.domain 127.0.0.1 localhost localhost.my.domain myname.my.domain # # Imaginary network. #10.0.0.2 myname.my.domain myname #10.0.0.3 myfriend.my.domain myfriend # # According to RFC 1918, you can use the following IP networks for # private nets which will never be connected to the Internet: # # 10.0.0.0 - 10.255.255.255 # 172.16.0.0 - 172.31.255.255 # 192.168.0.0 - 192.168.255.255 # # In case you want to be able to connect to the Internet, you need # real official assigned numbers. PLEASE PLEASE PLEASE do not try # to invent your own network numbers but instead get one from your # network provider (if any) or from the Internet Registry (ftp to # rs.internic.net, directory `/templates'). # /etc/hosts は、 次のようなごく簡単なフォーマットになっています。 [インターネットアドレス] [正式なホスト名] [別名1] [別名2] ... 例: 10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2 これ以上の情報は &man.hosts.5; をあたってください。 ログファイルに関係する設定 log files <filename>syslog.conf</filename> syslog.conf syslog.conf は &man.syslogd.8; プログラムのための設定ファイルです。 これはどのタイプの syslog メッセージを対応する ログファイルに記録するかを指定します。 # $FreeBSD$ # # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. # Consult the syslog.conf(5) manual page. *.err;kern.debug;auth.notice;mail.crit /dev/console *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security mail.info /var/log/maillog lpr.info /var/log/lpd-errs cron.* /var/log/cron *.err root *.notice;news.err root *.alert root *.emerg * # uncomment this to log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log #*.* /var/log/all.log # uncomment this to enable logging to a remote log host named loghost #*.* @loghost # uncomment these if you're running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !startslip *.* /var/log/slip.log !ppp *.* /var/log/ppp.log これ以上の情報は &man.syslog.conf.5; のマニュアルページに あたってください。 <filename>newsyslog.conf</filename> newsyslog.conf newsyslog.conf は、通常 &man.cron.8; によって予定を決めて実行されるプログラム &man.newsyslog.8; のための設定ファイルです。 &man.newsyslog.8; は、 ログファイルをいつ保存して再編するかを決定します。 logfilelogfile.0 に移され、logfile.0logfile.1 に、そして以下同様に移されます。 また、ログファイルを &man.gzip.1; 形式で保存することもできます。 この場合ファイル名は logfile.0.gz, logfile.1.gz の様になります。 newsyslog.conf はどのログファイルが管理され、どのくらいの期間保存され、 そしていつ touch されるかを指定します。 ログファイルはあるサイズに到達するか、ある決められた時刻・ 日時で再編されあるいは保存されます。 # configuration file for newsyslog # $FreeBSD$ # # filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] /var/log/cron 600 3 100 * Z /var/log/amd.log 644 7 100 * Z /var/log/kerberos.log 644 7 100 * Z /var/log/lpd-errs 644 7 100 * Z /var/log/maillog 644 7 * @T00 Z /var/log/sendmail.st 644 10 * 168 B /var/log/messages 644 5 100 * Z /var/log/all.log 600 7 * @T00 Z /var/log/slip.log 600 3 100 * Z /var/log/ppp.log 600 3 100 * Z /var/log/security 600 10 100 * Z /var/log/wtmp 644 3 * @01T05 B /var/log/daily.log 640 7 * @T00 Z /var/log/weekly.log 640 5 1 $W6D0 Z /var/log/monthly.log 640 12 * $M1D0 Z /var/log/console.log 640 5 100 * Z これ以上の情報は &man.newsyslog.8; のマニュアルページに あたってください。 <filename>sysctl.conf</filename> sysctl.conf sysctl sysctl.confrc.conf によく似ています。 値は変数=値のかたちでセットされます。 指定された値はシステムがマルチユーザモードに移行した後でセットされます。 すべての変数がこのモードで設定可能というわけではありません。 以下は sysctl.conf のサンプルで 致命的なシグナルを記録しないように、また Linux プログラムに それらが実際は FreeBSD 上で動いていることを知らせる様に チューニングしています。 kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11) compat.linux.osname=FreeBSD compat.linux.osrelease=4.3-STABLE sysctl によるチューニング sysctl sysctl によるチューニング &man.sysctl.8; は稼働中の FreeBSD システムに変更を加えるためのインタフェイスです。 これには経験を積んだ管理者用の TCP/IP スタックや 仮想メモリシステムのパフォーマンスを劇的に改善する 先進的なオプションが含まれます。 500 を越えるシステム変数を &man.sysctl.8; で読んだり セットしたりできます。 本質的には &man.sysctl.8; の機能は次の二つ、 システムの設定を読むことと変更することです。 読み取り可能なすべての変数を表示するには以下のようにします。 &prompt.user; sysctl -a 個々の変数、たとえば kern.maxproc を読むには以下のようにします。 &prompt.user; sysctl kern.maxproc kern.maxproc: 1044 特定の変数をセットするには、直感的な文法 変数= を使ってください。 &prompt.root; sysctl kern.maxfiles=5000 kern.maxfiles: 2088 -> 5000 sysctl 変数の値は通常、文字列、数値、真偽値のいずれかです。 (真偽値は yes の場合には 1 で no の場合には 0 です)。 ディスクのチューニング sysctl 変数 <varname>vfs.vmiodirenable</varname> vfs.vmiodirenable vfs.vmiodirenable sysctl 変数のデフォルトは 1 (オン) で、 0 (オフ) または 1 (オン) にセットすることができます。 このパラメータはディレクトリがシステムによってどのように キャッシュされるかを制御します。 ほとんどのディレクトリは小さく、 ファイルシステムにおいては単一フラグメント (典型的には 1K) であり、バッファキャッシュではさらに小さくなっています (典型的には 512 バイト)。 しかしデフォルトモードで動作している時は、 大量のメモリを搭載していても バッファキャッシュは固定数のディレクトリしかキャッシュしません。 この sysctl をオンにすると、バッファキャッシュが VM ページキャッシュを、 ディレクトリをキャッシュするために使うことを可能にします。 これによる利点は、全てのメモリがディレクトリを キャッシュするのに使えるようになるということです。 欠点は、キャッシュに使われる最小のメモリの大きさが 512 バイトではなく 物理ページサイズ (大抵は 4K) になることです。 多数のファイルを操作するサービスを稼動しているなら、 常にこのオプションをオンにすることを推奨します。 そのようなサービスには、web キャッシュや大規模なメールシステム、 ニューズシステムなどが含まれます。 このオプションは一般にメモリを消費しますが、 性能を削減することはありません。 ただし実験して調べてみるべきでしょう。 <varname>hw.ata.wc</varname> hw.ata.wc FreeBSD 4.3 では IDE のライトキャッシュがオフになりました。 これは IDE ディスクへの書き込み帯域幅を減らしてしまうことになりますが、 ハードドライブベンダに起因するデータの一貫性に関する 重大な問題のために必要なことだと考えられました。 基本的には、書き込み完了時期について IDE ドライブが嘘をつくという問題です。 IDE ライトキャッシュがオンであると IDE ハードドライブはデータを順番に書きこまないばかりか、 ディスクの負荷が高い時にはいくつかのブロックの書き込みを 無期限に延期してしまいます。 クラッシュや電源故障の場合、 ファイルシステムの重大な破壊をもたらします。 したがって私たちはデフォルトを安全側に変更しました。 残念ながらこれは大変な性能の低下をもたらし、 私たちはあきらめてこのリリース後にオンに戻しました。 hw.ata.wc sysctl 変数を見てデフォルトを チェックしてみるべきです。 もし IDE ライトキャッシュがオフになっていたら、 hw.ata.wc カーネル変数を 1 に戻すことでオンに戻すことができます。 これはブート時にブートローダから行わなければなりません。 カーネルがブートした後に行っても効果はありません。 詳しくは &man.ata.4; を見てください。 ソフトアップデート ソフトアップデート tunefs &man.tunefs.8; プログラムはファイルシステムを細かくチュー ニングするのに使えます。このプログラムにはさまざまなオプションがありま すが、ここではソフトアップデートをオンオフすることだけを考えま す。以下の様にして切り替えます。 &prompt.root; tunefs -n enable /filesystem &prompt.root; tunefs -n disable /filesystem ファイルシステムはマウントされているあいだは &man.tunefs.8; で変更することができません。 ソフトアップデートを有効にする いい機会はシングルユーザモードでどのパーティションもマウント されていない時です。 FreeBSD 4.5 からは、ファイルシステム生成時に &man.newfs.8; の -U オプションを使って ソフトアップデートを有効化できるようになりました。 ソフトアップデートはメタデータの性能、 主にファイルの作成と削除の性能を劇的に改善します。 すべてのファイルシステムでソフトアップデートを有効にすることを推奨します。 ソフトアップデートに関して、2 つの欠点を意識すべきです。 1 つめは、ソフトアップデートはクラッシュ時におけるファイルシス テムの一貫性は保証しますが、 物理ディスクの更新が何秒か (1 分に達することもあります!) 遅れる可能性が高いことです。 システムがクラッシュした場合、より多くの作業結果が消えてしまうかもしれません。 2 つめは、ソフトアップデート はファイルシステムブロックを解放するのを遅らせるということです。 あるファイルシステム (たとえばルートファイルシステム) が満杯近くの時に それに対する大規模な更新、たとえば make installworld をすると、空き領域を使い果たして更新が失敗してしまうことがあります。 Kernel 制限のチューニング kernel 制限のチューニング File/Process 制限 <varname>kern.maxfiles</varname> kern.maxfiles kern.maxfiles はあなたのシステムの要求に 応じて増減させることができます。 この変数はあなたのシステムのファイル記述子の最大値を示します。 ファイル記述子テーブルが溢れるような時には、システムメッセー ジバッファに頻繁に file: table is full と表示されます。これは、 dmesg コマンドで確認できます。 ファイル、ソケット、パイプ (fifo) は それぞれオープンされるとファイル記述子を一つ消費します。 大規模なプロダクションサーバでは その時実行されているサービスの種類や数に応じては あっさり数千のファイル記述子が必要になります。 kern.maxfile のデフォルト値はカーネル コンフィグレーションファイルの オ プションで決まります。kern.maxfiles の値に比例して増加します。 カスタムカーネルをコンパイルする際は、このカーネルコンフィグ レーションオプションをシステムの利用法に合わせて設定するとよ いでしょう。カーネルは、この数値からほとんどの制限の初期値を 決定します。業務用マシンに、実際に 256 名のユーザが一度に接 続することはないかもしれませんが、大規模なウェブサーバに必要 なリソースは同程度になります。 FreeBSD 4.5 からは、 カーネルコンフィグレーションファイルで 0 に設定すると、システムの RAM 容量に基づいて適切なデフォルト値が選択されます。 ネットワークの制限 カーネルコンフィグレーションオプション は、そのシステムで利用可能なネッ トワーク mbuf の量を決定します。通信量の多いサーバで MBUF の量 が少ないと、FreeBSD の性能が低下してしまいます。クラスタ一つは およそ 2kB のメモリに対応しているので、1024 だとカーネルメモリ から約 2 MB をネットワークバッファに予約することになります。ど れだけ必要になるかを、簡単な計算で出すことができます。同時に最 大 1000 接続までゆくウェブサーバがあり、それぞれの接続によって 受信バッファ 16kB と送信バッファ 16kB が消費されるなら、ウェ ブサーバをまかなうのに 32MB 程度のネットワークバッファが必要 になります。経験的に有用な値は、それを 2 倍したものなので、 32MBx2 = 64MB/2K = 32768 になります。