FreeBSD QandA 2003年11月17日 更新分

QandA
QandA Project
登録・更新 QandA 一覧

管理番号 2441 (新規) 更新履歴
Q. スワップ (swap) 領域のサイズはどのくらい確保すべきなのでしょうか。また、
   後からスワップ領域サイズを増やしたくなった場合のお手軽な対処方法はありますか。

A. FreeBSD の場合は VM のアルゴリズム上、物理メモリ量 2倍以上のスワップ
   領域を確保した方が性能が良くなるようです。tuning(7) を参照してください。

   また、スワップ領域サイズが物理メモリサイズ以上なければ、カーネルパニック
   時のカーネルダンプが出来なくなります。

   なお、本来 FreeBSD をスワップ領域なしで運用することは可能なのですが、
   FreeBSD の sysinstall(8) を使ってインストールすると、必ずスワップ領域を
   指定しないといけません。これは sysinstall(8) の制限です。


   スワップ領域はスワップファイルとして用意することも可能ですので、

      - まずはスワップ領域を少なめ (32MB程度) でインストールしてみる。
      - 使ってみてメモリがやはりキツければ、スワップファイルを追加する。

   という手も使えます。

   例として、10MB のスワップファイルを /usr/SWAPFILE として追加する方法を
   紹介します(4.8-RELEASEで確認されています)。

     1. スワップ領域として使用するファイルを作成

        # dd if=/dev/zero of=/usr/SWAPFILE bs=1024k count=10

     2. /etc/rc.conf に次の記述を追加

        swapfile="/usr/SWAPFILE"

     3. リブートし、スワップ領域に追加されたか確認

        # pstat -s
        Device          1K-blocks     Used    Avail Capacity  Type
        /dev/ad0s1b        130944        0   130944     0%    Interleaved
     → /dev/rvn0b          10112        0    10112     0%    Interleaved
        Total              141056        0   141056     0%

   この方法を、FAT ボリュームにある pagefile.sys (Windows のスワップファイル)
   に応用することも可能です。


管理番号 666 (更新) 更新履歴
Q. CD-ROM や MO のマウントをする際、いちいち root になるのが面倒なのですが。

A. amd (Auto Mount Daemon) という、あるディレクトリを参照すると自動的にマ
   ウントしてくれるシステムがあります。

   amd を利用するためにはカーネルに NFS が組み込まれていなければなりませ
   ん。具体的にはカーネルコンフィギュレーションファイルに
     options NFS
   という行が必要ですが、デフォルトの GENERIC カーネルには含まれています
   ので、この行をあえて削除していないならば amd は利用可能です。

   現在、次のようにマウントできているとします。
     ATAPI CD-ROM        mount -t cd9660 /dev/acd0a /cd
     SCSI MO (UFS 形式)  mount /dev/da0a /od
     SCSI MO (FAT 形式)  mount -t msdos /dev/da0s1 /odpc
     ATA HDD (FAT 形式)  mount -t msdos /dev/ad1s1 /dos

   この場合は次のように /etc/amd.map を書きます。

       /defaults       fs:=/a/${key}
       cd      type:=program;\
               mount:="/sbin/mount mount -t cd9660 /dev/acd0a ${fs}";\
               unmount:="/sbin/umount umount /dev/acd0a";
 
       od      type:=program;\
               mount:="/sbin/mount mount /dev/da0a ${fs}";\
               unmount:="/sbin/umount umount /dev/da0a";
 
       odpc    type:=program;\
               mount:="/sbin/mount mount -t msdos /dev/da0s1 ${fs}";\
               unmount:="/sbin/umount umount /dev/da0s1";
 
       dos     type:=program;\
               mount:="/sbin/mount mount -t msdos /dev/ad1s1 ${fs}";\
               unmount:="/sbin/umount umount /dev/ad1s1";

   amd を実行するためには portmap(8) というデーモンを起動しておかなく
   てはなりませんが、FreeBSD 4.4-RELEASE 以降では portmap が標準で起動
   しなくなりました。

   もし ps ax | grep portmap して portmap が起動していないようなら、amd
   よりも先に
      # portmap
   として portmap を起動してください。なお、/etc/rc.conf に
      amd_enable="YES"
   と記述してマシンを再起動すれば、自動的に portmap が起動されます。

   ディレクトリを作成して、実行テストをします。
      % mkdir -p /a/{cd,od,odpc,dos}
      % amd -l syslog -c 20 /mnt /etc/amd.map

   もし /mnt/cd が参照 (ls /mnt/cd 等) されたら、amd は
      % mount -t cd9660 /dev/acd0a /a/cd
   を自動的に実行し、/a/cd へのシンボリックリンクを /mnt/cd に作成します。

   また、一定時間が経過すると自動的にアンマウントします。この場合は -c 20 
   によって 20秒に設定されます。

   ここまでうまく行ったら起動時に amd を起動するようにしましょう。
   /etc/rc.conf を次のようにします。
      amd_enable="YES"
      amd_flags="-l syslog -c 20 /mnt /etc/amd.map"

   また、
     % ln -s /mnt/cd /cd
   のようにしておくと、/cd にアクセスすると /mnt/cd にアクセスしてくれて
   少し便利です。デバイス名はご自分の環境に合わせて下さい。

   さらに、手動でCD-ROMなどを eject したい場合は、
     % amq -u /mnt/cd
     % cdcontrol -f acd0 eject (もちろん、かわりに eject ボタンを
                                押してもいいです)
   などとしてください。これは一般ユーザ権限で実行可能です。

   また、メディアが挿入されていない状態で /mnt/cd などにアクセスすると、
   amd は automount が失敗したことを認識してくれません。この場合は、再度
   amq -u /mnt/cd としてください。


管理番号 19 (更新) 更新履歴
Q. バグを発見したのですが、どうやったら早く直してもらえるでしょうか?
   また、私の提案を FreeBSD に反映してもらうにはどうすれば良いのでしょう?

A. send-pr(1) コマンドを使って FreeBSD の開発チームに *英語で* 報告するのが
   最も迅速な対応を得る方法です。もっとも、ports/packages の場合は、
   必ずしも FreeBSD チームの責任ではないので対応は遅れるかもしれません。

   send-pr については
      manpage (send-pr(1))
      Handbook 「貢献の仕方」-「バグ報告と一般的な論評」
         <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/articles/contributing/contrib-how.html>
      Articlies
         <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/articles/problem-reports/>
   などに、より詳しい情報があります。

   WWW 経由で PR (Problem Report、障害報告) を送ることも可能ですが、2003/10
   現在、休止中です。
     <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/send-pr.html>


   送られた PR は障害報告データベース
       <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/support.html#gnats>
   で参照できます。

   また、技術的な提案をしたい場合は、まず
       FreeBSD-tech-jp@jp.FreeBSD.org  <URL:http://www.jp.FreeBSD.org/ml.html#FreeBSD-tech-jp>
   相談してみるのもひとつの手でしょう。


管理番号 2478 (新規) 更新履歴
Q. FreeBSD のマニュアルにはどんなものがありますか?

A. マニュアルはセクションごとに分類されています。FreeBSD での
   セクション一覧を以下に示します。

     セクション 1…コマンド
     セクション 2…システムコール
     セクション 3…ライブラリルーチン
     セクション 4…デバイスとデバイスドライバ
     セクション 5…ファイルフォーマット
     セクション 6…ゲーム
     セクション 7…雑多な情報
     セクション 8…システムメンテナンスおよび操作コマンド
     セクション 9…カーネルインタフェース

   より詳細な情報を見るには各セクションの intro を参照してくだ
   さい。例えばセクション 4 の intro は
      % man 4 intro
   で読めます。

   また、セクション全体で共通な情報も intro に記述してあります。
   例えばほとんどのシステムコールは
      - 成功したら 0 を返す
      - 失敗したら -1 を返す
      - 失敗したときの理由は識別子 errno に格納される
   という共通のインタフェースを持っていますが、このような説明が
   intro(2) に書かれています。また、intro(2) にはエラー番号の
   一覧も記載されています。


   以下、見付けにくく、なおかつ役立つかもしれないマニュアルを
   紹介しておきます。

   ファイルフォーマット
     elf(5) a.out(5) core(5) uuencode(5) など
         バイナリ・テキストフォーマットの説明
     hosts(5) aliases(5) resolv.conf(5) forward(5) など
         設定ファイルの説明。/etc/ の下にある OS の設定ファイルと、
         ~/.forward などのユーザごとの設定ファイルのマニュアルがある。

   デバイス
     da(4) aic(4) など
         デバイスドライバの説明
     null(4) random(4) など
         /dev/null や /dev/random など特殊なデバイスの説明

   いろいろ
     hier(7)      ディレクトリ階層の説明
     tuning(7)    性能チューニング
     symlink(7)   シンボリックリンクの扱い
     security(7)  セキュリティ入門
     environ(7)   主要な環境変数
     style(9)     カーネルソースファイルのスタイルガイド
     stdio(3)     標準入出力ライブラリの関数一覧
     procfs(5)    /proc の説明
     build(7)     システムの構築方法
     release(7)   リリース版の構築方法
     ports(7)     portsの説明(make時のターゲットなど)
     firewall(7)  ファイアウォールの構築例
     re_format(7) 正規表現

   便利なメモ
     ascii(7)     ASCII コード表 (8進数・10進数・16進数)
     operator(7)  C 言語の演算子の優先順位と評価順序

   おまけ
     /usr/share/misc/bsd-family-tree       UNIX の系統図
     /usr/share/misc/iso3166               国別コード
     /usr/X11R6/lib/X11/rgb.txt            X における色の名前

     /usr/local/share/emacs/*/etc/condom.1

   関連QandA:
    [管理番号 141] (~/.netrc -> ftp(1) )


QandA
QandA Project
登録・更新 QandA 一覧