FreeBSD QandA 2000年4月19日 更新分

QandA
QandA Project
登録・更新 QandA 一覧

管理番号 1206 (新規) 更新履歴
Q. ノートパソコンに Samba をインストールしてから再立ち上げをすると、他の 
   Windows マシンのネットワークコンピュータに Samba を動かしているマシン
   が出てきません。

A. 原因はいくつも考えられますが、これは PC カードイーサネット (PCMCIA
   Ethernet Card) を使った場合の典型的な症状です。ここでは、Samba を例に
   とって説明しますが、他にも Apache や named でも問題があることが知られ
   ています。

   一口で言うと FreeBSD の起動シーケンスで、PC カードの認識前に Samba
   特に nmbd(8) が起動されてしまう事が原因です。

   まず、PAO-FAQ の 606 番を読んでください。
    <URL:http://home.jp.FreeBSD.org/~toshi/PAO3/PAO-FAQ.jp.html#606>

   Samba については inetd(8) から起動させるようにする事でも問題を回避でき
   ますが、inetd への登録は無条件に可能なわけでは無く、Samba 以外のプログ
   ラムでもこの技が使えるという意味ではありません。Samba を ports/packages
   からインストールしたのならば、以下の様な手順で inetd から動かすように
   変更できます。

   1. Samba の起動スクリプトを削除します。
    # rm -f /usr/local/etc/rc.d/samba.sh

   2. /etc/inetd.conf で、以下の2カ所 "#" のコメントマークをはずして、
    ---
    # Enable the following two entries to enable samba startup from inetd
    # (from the Samba documentation).
    #
    netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd
    netbios-ns dgram udp wait root /usr/local/sbin/nmbd nmbd

   3. inetd に /etc/inetd.conf の変更を認識させます。
    # kill -HUP `cat /var/run/inetd.pid`

   FreeBSD 3.2-RELEASE からは標準で TCP Wrappers が有効になってますので、
   /etc/hosts.allow の設定を間違うと全く使えなくて悩む事になります。詳し
   くは hosts_access(5)inetd(8) を確認してください。

   もし、PC カードを使用中に抜き挿しするなら、/etc/pccard.conf のエントリ
   に以下の行を追加します。PC カードデータベースの書式については 
   pccard.conf(5) や、PAO 方面のドキュメントを参考にしてください。 

    remove killall nmbd

   これで他の Windows マシンのネットワークコンピュータから、Samba を動か
   しているマシンにアクセス出来れば問題解決です。


管理番号 1325 (新規) 更新履歴
Q. ビデオカードに Matrox Millennium G200 を使用していますが、3.x-RELEASE
   の VESA を使った 132x60 文字モードが使えません。過去メールを検索して
   みると、ちゃんと使えている人もいるみたいなんですが?

A. まず、

        % vidcontrol -i mode

   としてみて、132x60 や 1024x768x8 などのモードが出てくるか確認してみて
   ください。出てこない場合は、G200 の Unified BIOS が V2.x になっている
   可能性があります。

   この V2.x からは VESA サポートが弱くなってしまったようで、132x60 文字
   モードが使えません。V1.x ではちゃんと使えるようです。具体的には、V1.3、
   V1.4 では使えましたが V2.3 では駄目でした。

   Matrox のサイトには常に最新の BIOS しか置いていないので、インターネッ
   ト上で V1.x の BIOS を入手するのは難しいようです。ただ、購入時の 
   CD-ROM が手元にある場合は、その中に V1.x の BIOS が入っているかもしれ
   ないので、もし在ればそれに書き換えるという手はあります。InfoMagic の
   日本語版 CD-ROM にはないかもしれません。

   もちろん BIOS を古いものにする訳ですから、当然何かしらの不具合が出る
   可能性はあります。AT 互換機は一般的に、VGA がうまく動かないと POST に
   引っかかって (ピー、ピーピーピーのように鳴く) 起動もしなくなってしま
   いますから、危険を覚悟の上実行するようにしてください (駄目だったらこ
   のビデオカードは捨てよう、位の気持ちで望むといいでしょう)。

   もっとも、BIOS を新しくしても VESA サポート以外に何が変わるわけでも
   無いようですし、今の所

        * GIGA-BYTE GA-6BA (BIOS: Beta 26)
        * Celeron 300A(450MHz、Base 100MHz)
        * I/O-DATA SC-PCI SCSI2 H/A (Symbios 53C810)
        * Matrox Millennium G200 AGP 8MB SGRAM
        * Sound Blaster 16
        * メーカ不明 NE2000 互換 NIC

   という構成では、G200 の BIOS を V2.3 から V1.3 にしても (Win98/Linux
   でも) 特に不都合なく動いているようです。


管理番号 1446 (新規) 更新履歴
Q. 社内ネットワークで DHCP サーバーを構築しようと思っていますが、
   Microsoft ネットワーククライアント向けに WINS サーバーの IP アドレス
   を DHCP で配布することはできますか?

A. FreeBSD では、WIDE 版と ISC 版の両方の DHCP が利用できますが、それぞ
   れによって対応が違います。

   1. WIDE 版の場合
   dhcpdb.pool ファイルに、以下のオプションを指定します。()内は、DHCP 
   オプションの番号です。

   WINS Server(44):       nnsv=IP Addressのリスト
   NetBIOS DD Server(45): ndsv=IP Addressのリスト
   Node Type(46):         nbnt=ノードタイプ
   Scope ID(47):          nbsc="パラメーターを指定"

   [設定例]
   nnsv=192.168.0.1, 192.168.1.1:
   nbnt=0x8:

   詳しくは、man dhcpdb.pool をどうぞ。

   なお、以上のオプションの動作は WIDE-DHCP 1.4.0、FreeBSD
   2.2.8-RELEASE で確認しました。 


   2. ISC 版の場合
   dhcpd.conf ファイルに、以下のオプションを指定します。()内は、DHCP オ
   プションの番号です。

   WINS Server(44):       option netbios-name-servers IP Addressのリスト
   NetBIOS DD Server(45): option netbios-dd-server IP Addressのリスト
   Node Type(46):         option netbios-node-type ノードタイプ
   Scope ID(47):          option netbios-scope "パラメーターを指定"

   [設定例]
   option netbios-name-servers 192.168.0.1, 192.168.1.1;
   option netbios-node-type 8;

   詳しくは、man dhcp-options をどうぞ。

   なお、以上のオプションの動作は ISC-DHCP version2、FreeBSD
   3.2-RELEASE で確認しました。


管理番号 702 (更新) 更新履歴
Q. klm(4) または kld(4) に関係した問題で、CD-ROM をマウントしようとして
      # mount -t cd9660 /dev/cd0a /cdrom
   を実行すると、OS がリブートしてしまいました。また、MSDOSFS や NFS 及
   びその他のモジュールでも起り得る現象で、もちろん現象としてはリブート
   するとは限らず予測不能です。

A. FreeBSD 2.2.X-RELEASE までの LKM (Loadable Kernel Module)、または 
   3.0-R で登場して 3.1-R 以降 LKM と置き換えられた KLD (Dynamic Kernel
   Linker) を使用している場合、カーネルにコンフィグファイルの修正以外の
   変更を加えると、カーネルと LKM / KLD との不整合が生じることがあります。

   以下の点を確認してください。

   (1) カーネルのコンフィグファイルに、以下の行はありますか。
       なければ、LKM または KLD を使用していることになります。

       options "CD9660"        #ISO 9660 filesystem

   (2) 最近、カーネルソースに、コンフィグファイルの修正以外の変更を加え
       ましたか。例えばパッチを当てた場合や CVSup した場合などもこの
       ケースに該当します。

   (1) が no、(2) が yes の時は、次の作業を行ない、LKM または KLD を作り
   直してください。/usr/src 以下には最低限のカーネルソース (src/ssys.*
   配布ファイル) が展開されているものとします。

    a) LKM (2.2.X-RELEASE)

     $ su
     # cd /usr/src/lkm
     # make clean
     # make all install

     LKM バイナリは /lkm にインストールされています。また関連コマンドと
     して modload(8), modstat(8), modunload(8) があります。

    b) KLD (3.0-RELEASE 以降)

     $ su
     # cd /usr/src/sys/modules
     # make clean
     # make all install

     KLD モジュールは /modules にインストールされています。また関連
     コマンドとして kldload(8), kldstat(8), kldunload(8) があります。


管理番号 1480 (更新) 更新履歴
Q. FreeBSD 3.3-RELEASE でインストーラからブートマネージャをインストール
   したところ、Windows 用 ウイルスチェックプログラム「SYMANTEC Norton
   AntiVirus(2000.00)」を使用すると、

     「コンピュータに次のウイルスが感染しています」
     「BloodHound.MBR」

   と、警告されました。

A. この件について株式会社シマンテックからは
   「このメッセージは、MBRが別のプログラムに更新されたことに対する警告で
     す。ウイルスに感染した恐れがあるという意味のメッセージであり、感染
     したかどうかの判定ではありません」
   との回答がありました。

   これは FreeBSD のブートマネージャが BootEasy から FreeBSD boot0 ブー
   トマネージャに変更されたことによるもので、たまたまパターンマッチの都
   合上、3.2-R までは警告表示されなかったのでしょう。或は SYMANTEC でも
   折込済みだったかです。もしかしたら新版では対応されるかもしれませんが、
   気になるようなら FreeBSD 配布 CD-ROM や FTP サイトなどの tools ディ
   レクトリから、BootEasy (bootinst.exe、boot.bin) や osbs.exe(osbs20b8)
   など、別のブートマネージャに入れ替えれば警告は出なくなります。なお、
   boot0 に関しては 3.4-R でも変更がなかったので、同じように警告される
   でしょう。

   また、この件に関する質問は同社ユーザサポート窓口にて確認することがで
   きます。
 
     株式会社 シマンテック
     (英文名称 Symantec Japan, Inc.)
     ユーザサポート
     TEL:03(3476)1156 FAX:03(3476)1159

   FreeBSD 2.2 系では BootEasy を標準のブートマネージャに採用していまし
   たが、基本的に FreeBSD 外部のプログラムのためメンテナンスしにくいと
   いう問題があり、これを解決するために boot0 と呼ばれるブートマネージャ
   が新たに作られ、3.0-R 以降では標準採用されています。インストーラ 
   (sysinstall) によって MBR にインストールされるなど、表面的には 
   BootEasy とほぼ同じですが、boot0cfg(8) を使って設定を変更することが
   できます。ソースコードは /usr/src/sys/boot/i386/boot0/ にあり、シス
   テム構築後バイナリは /boot/boot0 に置かれます。


管理番号 22 (更新) 更新履歴
Q. FreeBSD では MO, PD, DVD-RAM は使えますか?

A. FreeBSD のバージョンによってサポートされているレベルが異なりますが、もち
   ろん使用できます。サポートしているドライバは、2.2 系では od(4) ドライバ、
   3.0 以降は da(4) ドライバが対応しています。da トライバは HDD などの 
   Fixed Direct Access メディアと Removable メディアの共用になっています。
   od ドライバは 3.0R で SCSI サブシステムが CAM に移行する際、開発が中断さ
   れシステムから削除されてしまいました。

   注意していただきたいのは 3.0R から 3.3R まで、これらのシステムには
   /dev/od0* が存在していますが、実体は /dev/da* 即ち一番目の HDD を指して
   います。このため、MO の boot block をクリアしようとして、間違えて HDD の
   disk slice を破壊した人は多いようです。また、2.2 系からアップグレードし
   たシステムでは、sd(4), od(4) から da(4) に統一されるため、SCSI ID の割り
   当てによっては更に注意が必要でしょう。3.4R では /dev/od0* は作成されない
   ようになっていますが、アップグレードした場合などは残ったままになりますの
   で、この危険を未然に防ぎたければ rm /dev/od* すべきでしょう。

   da ドライバの問題点として 512 bytes/sector にしか対応していない点が挙げ
   られます。そのため 640MB 及び 1.2GB MO や DVD-RAM は使えません。また、そ
   れ以外でも色々細かな問題が報告されています。

   これらの点をふまえ、3.3R 用の od ドライバが秋山さんによって公開されまし
   た。これは現状では FreeBSD の標準ではなく、別途パッケージからインストー
   ルする必要があります。まずは以下の URL をご覧ください。

   マスターサイト
   <URL:ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/OD/>

   秋山さんによるアナウンス
   <URL:http://home.jp.FreeBSD.org/cgi-bin/showmail/announce-jp/328>

   3.3R 用 od ドライバ
   <URL:ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/OD/od-driver-3.3R.tar.gz>

   暫定的なバグ修正パッチ [FreeBSD-users-jp 47537]
   <URL:http://home.jp.FreeBSD.org/cgi-bin/showmail/users-jp/47537>

   動作実績については以下の URL を参照してください。
   <URL:http://www-ishii.ics.nitech.ac.jp/~bobson/FreeBSD/MO-REPORT.html>

   また、PAO3 CVS リポジトリに上記パッケージはマージ済みで、3.3R 用の
   PAO3-19991220 からは od ドライバを含みます。3.4R についての最新情報は
   <URL:http://home.jp.FreeBSD.org/cgi-bin/showmail/announce-jp/381>
   を見てください。

   それ以前の古いリリースについての事情は以下のようになっています。

   PC/AT互換機版の場合

   ・2.1.0-RELEASE 以前ではサポートされていません。この際ですから 3.4R 以降
     に移行することをお勧めします。

   ・2.1.5-RELEASE & 2.1.6-RELEASE の場合事前にカーネルの再構築が必要です。
     CONFIG ファイルに "device od0" を追加すると 512 bytes/sector のタイプ
     (128MB, 230MB, 540MB) が使えます。 

   ・2.2.x-RELEASE 系は 標準で含まれており、512 bytes/sector のタイプが使え
     ます。さらに 2048 bytes/sector タイプのものが使いたければ、 
     <URL:ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/OD/od-driver-2.2.7R.tar.gz>
     をインストールしてください。これは 2.2.8R にも対応しています。

   PC-9801/PC-9821用の場合

     2.1.x 系では正式にサポートされていません。2.2.x 系以降では PC/AT 互換
     機用と同一です。


管理番号 545 (更新) 更新履歴
Q. kernel に device od0 を加えているのにも拘らず、MO を /dev/od0 でマ
   ウントできません。

A. まず、あなたが使用している FreeBSD のバージョンが 3.0R 以上なら、
   [管理番号 22] を見てください。

   MO がハードディスクモードになっている可能性があります。
   dmesg の出力を見てください。

   (ahc0:4:0): "FUJITSU M2512A 1502" type 0 removable SCSI 1

   このうち、type のあとの数字に注目します。

   type 0 の場合は、ハードディスク互換モードになっています。このモードの
   場合、MOは固定されたディスクとして扱われるため、電源を切らないとメディ
   アの抜き挿しができないなど、いろいろと不便です。ディップスイッチなど
   で、MOモードにしましょう。

   type 7 の場合はMOモードとして正常に認識されていますので、別の原因があ
   るかもしれません。


管理番号 1547 (新規) 更新履歴
Q. wget で HTTP や FTP 経由で再帰的にファイルを取得したいのですが。

A. HTTP や anonymous FTP の場合は、それぞれ
      wget -m -np http://host/dir/
      wget -m ftp://host/dir/
   でできます。

   HTTP では、 http://host/robots.txt に探索を排除する記述があると、
   ファイルを再帰的には取得できません。

   また、 wget は HTML の LINK 要素、 OBJECT 要素、 CITE 属性、
   LONGDESC 属性、 USEMAP 属性、 PROFILE 属性や、スタイルシートなどに
   対応しておらず、これらで参照されるファイルは取得できません。

   普通の FTP で、例えば ~/dir 以下を取得したい場合、
      wget -m ftp://user:pass@host/dir/
   とすればいいように思えますが、これはサブディレクトリの取得に失敗します。

   この場合は、絶対パスで、
      wget -m ftp://user:pass@host/%2Fhome/user/dir/
   と書きます。 %2F はルートディレクトリを表すスラッシュを URL エンコード
   したものです。スラッシュをエンコードせずに、
      wget -m ftp://user:pass@host//home/user/dir/
   としても同じ結果が得られますが、これは RFC 的に正しくありません。
   (従って wget 以外に応用しようとするとうまく行かない可能性があります)。

   一般的な URL の書式については RFC2396 を、 HTTP URL や FTP URL の
   解釈については RFC1738 を参照してください。

   host というディレクトリを掘られたくなければ、 -nH を、
   home/user/ といったディレクトリを掘られたくなければ、
   --cut-dirs=2 を追加すればよいでしょう。
   wget には多くのオプションがありますので、詳しくは wget --help や
   info wget などとしてください。


管理番号 318 (更新) 更新履歴
Q. UPS は使えますか?

A. 単に停電時にバッテリが持つ間電源を供給するだけでしたら、ほとんどの 
   UPS が FreeBSD で使用可能です。PC の消費電力や UPS のバッテリ能力によ
   りますが、数分間の停電でしたら、単に電源ケーブルを繋ぐだけで大丈夫です。
   また、ノートパソコンであれば UPS を使うまでもないかもしれません。

   不慮の事故で停電が起きた時に、バッテリが切れる前に自動的に shutdown し
   たい場合には、UPS と PC との間で信号の受渡しを行なう必要があり、
   FreeBSD で自動 shutdown のためのプログラム (upsd) を動かしておきます。
   必要なものは接続ケーブルと upsd です。どちらも多くの場合、使用する UPS 
   に対応した専用のものが必要となります。

   ATX 電源を使用している場合には、電力が復旧しても PC の電源が ON になり
   ませんが、BIOS によって設定できるものもありますし専用の回路を作成する
   必要がある場合もあります。

   最大負荷に関しては、[FreeBSD-users-jp 15099] が参考になります。

   消費電力に対する停電時のバックアップ時間とバッテリー容量との比較表が
   APC のページに書かれています。(消費電力とUPSのバックアップ時間)
     <URL:http://www.APC.co.jp/products/ups/selectups.html>


   o GS-EE 製 PICO-II シリーズ、NetUPS シリーズ
     ダイトパワートロン製 Power Rite MAX シリーズ
     山洋電気製 ASA シリーズ
     東芝製 LittleStar/Econostar シリーズ
   以上 4 シリーズはアルファテックからフリーソフトとして FreeBSD 用の UPS 
   監視管理ソフト「パワーモニタS」がダウンロード可能です。
     <URL:http://www.alfatech.co.jp/ups/support/free/freedown.html>

   以前の GS-EE 製のものは専用ケーブルが必要でしたが、UPS のモデルに変更
   があり、現在の機種はケーブルを標準添付しています。以前のモデルを使用し
   なければならない場合は、メーリングリストなどで質問すればきっと誰か答え
   てくれるでしょう。また、標準添付されている FreeBSD 対応のシャットダウ
   ンソフトについては、関西蓄電池のページを見てください。
     <URL:http://www.kanchiku.co.jp/lineup/ge3115/index.html>


   o APC の UPS の場合
   APC Back-UPS Pro(TM)シリーズは bkpupsd という ports/package にあるプロ
   グラムが使えるようです。シリーズによってケーブルやプログラムを変える必
   要があるようですので ML を検索してください。


   o サンケン電気の UPS の場合・DENSEI (日本電気精器)
   [FreeBSD-users-jp 24854] を参照してください。両者は仕様が似ているので
   同じプログラムが使えます。


   o OMRON の UPS の場合
   これも[FreeBSD-users-jp 24854] を参照してください。サンケン電気用の 
   upsd がほぼそのままで使用できるそうです。


   o その他の UPS の場合
     <URL:http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/UPS-HOWTO.html>
   を参照してください。またアルファテックの UPS のページ
     <URL:http://www.alfatech.co.jp/network/download/freeunix.html>
   に載っているようでしたら、問い合わせてみてはいかがでしょうか。

   なお、シリアルポートに関する情報は、FreeBSD ハンドブックの
    「シリアルポートとマルチポートカード」
     <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/handbook/hw-io.html>
   が詳しいです。

   また単に CD (carrier detect; D-SUB 9 コネクタの 1 番) が on になること
   がローバッテリを示しているのであれば、

   #!/bin/sh
   : > /dev/シリアルデバイス
   シャットダウン処理

   とするだけでよいそうです ([FreeBSD-users-jp 12185])。


管理番号 1487 (更新) 更新履歴
Q. FreeBSD 3.3-RELEASE でネットワーク関係のプログラムがうまく動きません。
   例えば、NIS/NFS、samba、ssh の port forwarding、DHCP などで問題が起き
   ます。

A. ifconfig -a で network interface についての情報を見て下さい。
   lo0 はどうなっていますか。
   詳しくは 3.3-RELEASE の errata の lo0 (ループバックデバイス) の項を
   参照して下さい。
   <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/releases/3.3R/errata.html>

   尚、3.3-RELEASE で DHCP を利用している場合は /etc/rc.conf で
     network_interfaces="auto"
   としてもうまく動きませんので、
     network_interfaces="lo0 ed0"
   などと、lo0 を筆頭に全ての network interface を書く必要があります。
   3.4-RELEASE ではこのバグは修正されています。

   3.3-RELEASE における不具合の実例としては、users-jp 下記のメールから
   始まる thread に報告があります。

     Subject:     [FreeBSD-users-jp 45823] 3.3R & NIS and NFS
     Message-ID:  <19990921113616P.taoka@infonets.hiroshima-u.ac.jp>

     Subject:     [FreeBSD-users-jp 46880] Did rc.conf format changed?
     Message-ID:  <19991026104712V.okuyama@trl.ibm.com>

     Subject:     [FreeBSD-users-jp 47316] samba-2.0.3 on FreeBSD3.3-RELEASE(PAO3)
     Message-ID:  <19991110002735V.takachan@running-dog.net>

     Subject:     [FreeBSD-users-jp 47741] [Q] ssh-1.2.27: can't forward
     Message-ID:  <19991126232217P.vorspiel@duelists.org>


   3.4-RELEASE 以降を使っているのに、lo0 が configure されておらず
   (ifconfig -a でみても、lo0 に IP address が割り振られていない)、
   同様の問題が起こるという場合は /etc/rc.conf の記述を間違えている可
   能性が大きいです。

   /etc/defaults/rc.conf の
     List of network interfaces (or "auto").
   というコメントでは分かりにくいかもしれませんが、auto keyword は単独
   で記述する必要があります。具体的な例を出すと、

     network_interfaces="vr0 auto"

   は間違いで、

     network_interfaces="auto"
   または、
     network_interfaces="lo0 vr0" # 全ての network interface を羅列
   が正しい書き方になります。


管理番号 1575 (新規) 更新履歴
Q. FreeBSD 3.4-RELEASE 以前の配布ファイルの tools/ ディレクトリにある 
   presizer.exe を用いて 12GB のハードディスクを分割し、Windows 98 との 
   Dual boot をしようとしましたが、presizer.exe が次のようなエラーを表示
   して止まってしまいます。

    The Partition Resizer v. 1.3.0 (c) Zeleps 1994-98
    Please wait... Checking:
    -Available physical IDE drives...done.
    -Partition structure...Divide error

   どうしたらよいでしょうか?

A. presizer.exe のバージョンが古い (Partition Resizer v. 1.3.0) のが原因
   です。新しいバージョン (Partition Resizer v. 1.3.3) を

    <URL:http://members.xoom.com/Zeleps/>

   から取ってきて使えばよいです。


管理番号 1576 (新規) 更新履歴
Q. rsh・rlogin・rcp って何ですか。

A. 他のホストでコマンドを実行 (rsh)、他のホストから (あるいは
   他のホストへ) ファイルをコピー (rcp)、他のホストにログイン
   (rlogin) するコマンドです。

   相手側に対応する rshd、rlogind などのサーバが用意されている
   必要があります。FreeBSD では、これらのサーバはデフォルトで
   実行されるようになっています。

   local.hoge.ac.jp の user1 というユーザが、remote.hoge.ac.jp に
   hoge2 というユーザとしてログインする場合、
      % rlogin -l user2 remote.hoge.ac.jp
   とします。もしリモートとローカルでユーザ名が同じなら `-l user2' は
   省略可能で、単に
      % rlogin remote.hoge.ac.jp
   とすればよいです。

   また、相手側のホスト (remote.hoge.ac.jp) の ~/.rhosts という
   ファイルに
      local.hoge.ac.jp user1
   と記述しておくと、local.hoge.ac.jp から
      - rlogin 時にパスワード入力が不要
      - rsh・rcp が使用可能。こちらもパスワード入力が不要
   ができるようになります。

     - rsh の使い方。
       local.hoge.ac.jp から remote.hoge.ac.jp で ls コマンドを
       実行するには
          % rsh -l user2 remote.hoge.ac.jp ls
       とします。

     - rcp の使い方。
       % rcp user2@remote.hoge.ac.jp:/dir1/dir2/file .
         remote.hoge.ac.jp の /dir1/dir2/file を local.hoge.ac.jp の
         カレントディレクトリにコピー
       % rcp user2@remote.hoge.ac.jp:dir1/dir2/file .
         ホームディレクトリ以下の dir1/dir2/file がコピーされます。
       % rcp file user2@remote.hoge.ac.jp:~/dir1/dir2/
         逆向きにリモートへファイルをコピー
       % rcp user2@remote.hoge.ac.jp:~/dir1/\*.txt ~/dir1
         エスケープすればワイルドカードも使えます。

   上の例とは逆に、local.hoge.ac.jp の ~/.rhosts に
      remote.hoge.ac.jp user2
   と書いておくと、remote.hoge.ac.jp から local.hoge.ac.jp へ、
   ノーパスワードで rsh・rlogin・rcp が実行できます。

   要は、
      「ログインしたいホストの ~/.rhosts に」
      「どこのホストのどういう名前のユーザを許可するか」
   を書いておくわけです。

   r* コマンドは便利なのですが、セキュリティを重視するサイトでは、
   rsh・rlogin・rcp の代わりに ssh を使うところが多いです。
   また、セキュリティ以外の面でも、ネットワークが細い場合は
   -C オプションによる圧縮の効果もあります。できるだけ ssh を
   使う方がよいでしょう。
     [管理番号 1577] ssh・slogin・scp って何ですか。


   r* コマンドで接続させないようにするには、/etc/inetd.conf から
      shell   stream  tcp     nowait  root    /usr/libexec/rshd       rshd
      login   stream  tcp     nowait  root    /usr/libexec/rlogind    rlogind
   のエントリを # でコメントアウトしたあと、
      # killall -HUP inetd
   として現在実行中の inetd にファイル変更を反映させます。

   仮に r* コマンドを使用可能にするとしても、tcp_wrapper
   (tcp_wrappers) を導入し、指定したホスト以外からの
   rsh・rlogin・rcp を弾くようにした方がよいでしょう。


管理番号 1577 (新規) 更新履歴
Q. ssh・slogin・scp って何ですか。

A. 簡単に言うと、rsh・rlogin・rcp のセキュリティを高めたものです。
   相手側に対応するサーバ sshd を実行しておく必要があります。FreeBSD なら
   相手側とローカル側の両方のマシンに、port から ssh をインストールして
   おけば OK です。

      注: ssh-1.x はフリーソフトウェアですが、ssh-2.x は商用利用目的の
          場合はライセンスを得なくてはいけません。また、設定方法も
          少し違います。ここでは ssh-1.x について説明します。なお、
          完全にフリーな ssh クローンを目指している OpenSSH という
          ものもあります。

   リモートホスト remote.hoge.ac.jp にログインするには、
      % slogin remote.hoge.ac.jp
      username@remote.hoge.ac.jp's password: 
   とします。ここで相手先のパスワードを入力すれば OK です。これは
   パスワードを crypt し、/etc/master.passwd のエントリと一致するか
   どうかを試しているだけですが、ネットワークを流れるデータが暗号化
   されているので rlogin よりは安全です。

   しかし、普通はより強固な RSA による認証を使います。まずローカルホストで
   ssh-keygen を実行し、パスフレーズを設定します。パスフレーズは自由に
   決められますが、他人が推測しにくく、できるだけ長いもの (数十文字でも
   構いません) にしましょう。
      % ssh-keygen
      Initializing random number generator...
      (略)
      Enter file in which to save the key (/home/username/.ssh/identity): (リターン)
      Enter passphrase: (パスフレーズを入力)
      Enter the same passphrase again:  (再度同じパスフレーズを入力)
      Your identification has been saved in /home/username/.ssh/identity.
      Your public key is:
      1024 35 11280(略)02077 username@remote.hoge.ac.jp
      Your public key has been saved in /home/username/.ssh/identity.pub
   これで秘密鍵が ~/.ssh/identity に、公開鍵が ~/.ssh/identity.pub に
   保存されます。

   次に slogin でリモートホストにログインし、相手先の ~/.ssh/authorized_keys に
   公開鍵 (ローカルにできた ~/.ssh/identity.pub) の内容をそのままコピーします。
   ~/.ssh/authorized_keys がなければ新規作成します。そして
      % chmod 600 ~/.ssh/authorized_keys
   とパーミッションは落としておきます。

   再度、ローカルから
      % slogin remote.hoge.ac.jp
   とします。すると、今度は
      username@remote.hoge.ac.jp's password: 
   でなく、
      Enter passphrase for RSA key 'username@local.hoge.ac.jp': 
   と表示されるはずです。ここでパスフレーズを入力するとログインできます。
   ここでは相手側の /etc/master.passwd のパスワードエントリは *全く* 参照
   されていません。パスワードとパスフレーズは全くの別物です。


   まとめると、ホスト A、B、C があり、ホスト A から ホスト B、C に
   RSA 認証を行う場合は、
      - ホスト A で ssh-keygen
      - ホスト A の ~/.ssh/identify.pub を ホスト B とホスト C の
        ~/.ssh/authorized_keys にコピーし、chmod 600。
   とします。さらに ホスト B から ホスト C に RSA 認証を行いたいなら
      - ホスト B で ssh-keygen
      - ホスト B の ~/.ssh/identify.pub を ホスト C の
        ~/.ssh/authorized_keys に追加。
   となります。つまりホスト C の ~/.ssh/authorized_keys には
   ホスト A とホスト B 両方の公開鍵 (identify.pub) が入っているわけです。



   パスフレーズ以外では、ssh・scp・slogin の使い方は rsh・rcp・rlogin と
   ほぼ同じです。
      [管理番号 1576] rsh・rlogin・rcp って何ですか。
   を参考にして下さい。

   毎回パスフレーズを入力しなくてもすむ方法については [管理番号 1578] で、
   より便利な ssh の機能については [管理番号 1579] で解説しています。

   また、ssh の暗号化の仕組みを知りたい方は、
      <URL:http://www.graco.c.u-tokyo.ac.jp/~nishi/security/ssh/>
   が参考になるでしょう。


管理番号 1578 (新規) 更新履歴
Q. ssh・slogin・scp を使うたびに、毎回パスフレーズを入力するのが面倒です。

A. パスフレーズ入力時に楽するには、ssh-agent を使う方法と
   ~/.shosts を使う方法があります。いずれも RSA 認証が必須ですので、
   まずは [管理番号 1577] を読んで、公開鍵の設定をして下さい。


   [ssh-agent を使う方法]
      ssh-agent は一度入力したパスフレーズを覚えてくれるコマンドです。
         % ssh-agent tcsh
      として新しいシェルを実行し、ssh-add を実行します

      (ssh-agent startx & exit で X を起動してもいいですし、
       eval `ssh-agent -s` (sh・bash を使っている場合) や、
       eval `ssh-agent -c' (csh・tcsh の場合) とタイプしてもいいです。
       eval で実行した場合は止めるのもお忘れなく)

      次に
         % ssh-add
         Need passphrase for /home/username/.ssh/identity (username@local).
         Enter passphrase: (パスフレーズを入力)
      すると、その後からは
         % slogin remote.hoge.ac.jp
      としてもパスフレーズの入力を求められません。

      ログインするたびに毎回 ssh-agent tcsh とタイプするのは面倒なので、
      自動的に ssh-agent が実行されるようにしておきましょう。以下のように
      いくつか方法がありますが、どれを選んでも構いません。要は ssh を実行
      したときに環境変数 SSH_AUTH_SOCK と SSH_AGENT_PID が設定されていれば
      よいのです (後述)。

        1. ~/.login の最後に
             eval `ssh-agent -c`
           としておいて、~/.logout に
             ssh-agent -c -k
           と書いておく。X なしで ssh を使用する人向け。

        2. ~/.xinitrc (~/.xsession) に
             #! /bin/sh
             eval `ssh-agent -s`
             twm &                   # ウィンドウマネージャを起動
             PID=$!
             ...(kterm などの起動)...
             wait $PID               # ウィンドウマネージャの終了を待ち
             eval `ssh-agent -k -s`  # ssh-agent を kill
           と書いておく。

      次に、ssh-add でパスフレーズを入力しなければいけませんが
         -----------
         #!/bin/sh
         if [ "x$SSH_IDENT" = "x" ]; then
           SSH_IDENT=$USER@`hostname`
         fi
         if [ "x$SSH_CLIENT" = "x" ]; then
           ident=`ssh-add -l`
           if [ "x${ident##* }" != "x$SSH_IDENT" ]; then
             if [ "x$DISPLAY" = "x" -o "x$SSH_ASKPASS" = "x" ]; then
               ssh-add
             else
               ssh-add </dev/null
             fi
           fi
         fi
         exec /usr/local/bin/${0##*/} "$@"
         -----------
      というスクリプトを ~/bin/{ssh,slogin,scp} に置いておけば
      (PATH の先頭に ~/bin を加えておく)、初回のみ自動的に
      パスフレーズを聞いてきます。

      このようなスクリプトを使いたくなければ、

        3. ~/.xinitrc (~/.xsession) に
             #!/bin/sh
             eval `ssh-agent -s`
             ssh-askpass
             ...(kterm やウィンドウマネージャの起動)...
           と書いておく。

      という方法もあります。

      これは、ssh-agent を実行し、さらに ssh-askpass を実行しています。
      ssh-askpass はパスフレーズ入力用ウィンドウを開きますので、
      そこでパスフレーズを入力します。ここでパスフレーズを入力
      しないと他の kterm などが起動しないわけです。

      また、お勧めしませんが、
        4. ~/.passphrase というファイルにパスフレーズをそのまま
           書き込んでおき、~/.xinitrc (~/.xsession) に
             #!/bin/sh
             eval `ssh-agent -s`
             ssh-add -p < $HOME/.passphrase
      とすると、パスフレーズの入力は一切必要なくなります。当然
      他人に ~/.passphrase を見られるとアウトです。パーミッションに
      注意しましょう。また、こんなわかりやすいファイル名にしては
      いけません。


      いずれの方法でも、ssh-agent を終了すると (=ローカルホストからログ
      アウトしてしまうと)、再度 ssh-add でパスフレーズの入力を行なわなくては
      いけません。その点では ~/.shosts を使う方法に比べて利便性は落ちます。


      以下は、ssh-agent に関する簡単な説明です。ssh-agent を実行すると、
         /tmp/ssh-(ユーザ名)/ssh-(プロセス番号)-agent
      という UNIX ドメインソケットが作成されます。次に ssh-add を
      実行すると、ユーザにパスフレーズの入力を求め、ssh-agent に
      入力されたパスフレーズを伝えます。

      一方、ssh (scp・slogin) が実行されたときは、ssh-agent に
      (UNIX ドメインソケットを通じて) パスフレーズを問い合わせるので、
      ユーザは毎回パスフレーズを入力しなくてもよいわけです。

      ssh-add や ssh (scp・slogin) が「ssh-agent が起動されているかどうか」
      を知るには、環境変数 SSH_AUTH_SOCK・SSH_AGENT_PID を参照します。
      そのため、ssh-agent の引数にシェルを指定したり、eval したりして、
      最終的に ssh (scp・slogin) に環境変数が伝わるようにしているわけです。


   [~/.shosts を使う方法]
      local.hoge.ac.jp の name1 から remote.hoge.ac.jp の name2 に
      ログインする例です。なお、ssh-agent・ssh-add は一切使いません。

        (1) local.hoge.ac.jp で ssh-keygen を実行し、パスフレーズを入力
        (2) slogin -l name2 remote.hoge.ac.jp でリモートにログイン
        (3) retemo.hoge.ac.jp で ~/.shosts というファイルを作り、
              local.hoge.ac.jp name1
            と記述し、
              % chmod 600 ~/.shosts
            でパーミッションを設定。
        (4) さらに remote.hoge.ac.jp から
               slogin -l name1 local.hoge.ac.jp
            でログイン (逆方向へログイン)。
        (5) (4) の slogin を exit で抜ける。
        (6) (2) の slogin を exit で抜ける。

      すると、ローカルから
         % slogin -l name2 remote.hoge.ac.jp
      としてもパスフレーズの入力を求められません。これは ssh-agent の
      方法と違い、いつでも (いったんローカルホストからログアウトしても)
      有効です。


管理番号 1579 (新規) 更新履歴
Q. ssh の便利な使い方を教えて下さい。

A. 「rsh に比べて安全である」という他にも、以下の利点があります。

   1. データの圧縮
         % slogin -C remote.hoge.ac.jp
      と -C オプションを使うと、データが圧縮されて転送されます。
      scp でも有効です。~/.ssh/config に
          Compression yes
      と記述しておけば、毎回 -C オプションを使う必要はありません。
      ダイアルアップ接続など、線が細い場合には特に有効です。さらに
          CompressionLevel 9
      などと、圧縮のレベルも設定できます。

   2. X プロトコルの転送
      リモートホストで X アプリケーションを使う場合、自動的にローカルの
      X サーバに接続されます。

      rsh・rlogin では xhost や xauth の設定が必要でしたが、ssh・slogin
      では特別な設定は一切不要です。普通に slogin でログインし、普通に
      X アプリケーションを実行するだけで OK です。
   

      具体的には、ssh で ホスト remote にログインすると、環境変数
      DISPLAY が remote:10.0 などと設定されます。ここで xclock などの
      X アプリケーションを実行すると、環境変数 DISPLAY が参照され、
      ディスプレイ番号 10、つまりポート 6010 (X サーバのポート番号 6000+10) に
      接続し、X プロトコルをしゃべります。remote の sshd は ポート 6010 への
      データを local の sshd に転送し、sshd がローカルの X サーバに中継します。

   3. ポートフォワーディング
      例えば、ホスト remote.hoge.ac.jp の POP3 サーバとのデータのやりとりを
      telnet で行うと、
         % telnet remote.hoge.ac.jp 110
         ...
         USER username (ユーザ認証)
         PASS password
         ....
         RETR 1 (メール番号 1番を取得)
         ....   (メールの内容が送られてくる)
         QUIT
      となります。これではパスワードやメールの内容が全て平文でネットワーク
      上を流れてしまいます。

      リモート (remote.hoge.ac.jp) に sshd が上がっている場合は、この代わりに
         % ssh -L 8000:remote.hoge.ac.jp:110 remote.host.ac.jp
      とします。そして、ローカルのポート 8000 にアクセスすると、
         % telnet localhost 8000
         ...
         USER username (ユーザ認証)
         PASS password
         ....
         RETR 1 (メール番号 1番を取得)
         ....   (メールの内容が送られてくる)
         QUIT
      と、remote.hoge.ac.jp:110 の代わりに localhost:8000 に接続して、
      同じ POP3 プロトコルをしゃべればメールが取得できるわけです。

      ssh が自動的にリモートのポート 110 宛に転送してくれます。
      流れるデータは全て暗号化されており、-C で圧縮することもできます。


      例えば、Netscape Messenger では、サーバ名を指定する所に
         「ホスト名:ポート番号」 (例 localhost:8000)
      と記述します。なお、メールを取り込む前に
         % ssh -L 8000:remote.hoge.ac.jp:110 remote.host.ac.jp
      を実行しなくてはいけません。

      fetchmail での POP over ssh の例は、オンラインマニュアルに載っています。
      (求む、使用例)


管理番号 1580 (新規) 更新履歴
Q. FreeBSD 3.x で追加された、VESA ビデオモードを使用した広いコンソール
   を使いたいのですが、どうすればいいですか?

A. 以下の手順で作業してみてください。

   1. ビデオカードが VESA に対応しているか確認する

      そのビデオカードのメーカのサイトへ行って、VESA に対応しているかを
      確認しましょう。ただし、最近は 3D 関係ばかりが重要視されて、VESA に
      関して情報を載せていないメーカもあります。

      または、MS-DOS のプログラムですが、
         <URL:http://www.vector.co.jp/soft/dos/hardware/se005934.html>
      にある vesadump を使って確認する方法もあります。

      それらしく (VESAのバージョン等) が表示されれば、多分大丈夫でしょう
      が、ビデオカードの中には VESA を完全にはサポートしていない物もある
      ようなので、これが OK でも必ずしも使えるとは限りません。 


   2. カーネル再構築

      まず、あなたのカーネル構成を確認する必要があります。LINT を見ればわ
      かるように、options VESA が VESA ビデオモードを直接サポートするオプ
      ションですが、3.x-RELEASE では同時に options "VM86" も必要なことが
      分かります。4.0-RELEASE 以降では VM86 オプションは統合されたため不要
      です。また、当然 device vga0 も必要ですが、これは GENERIC にも含まれ
      ますので、実際には options VESA (及び 3.x では options "VM86" の2行)
      を追加する必要があるでしょう。  

      以下は 3.4R の LINT の抜粋です。

       # The video card driver.
       device          vga0    at isa? port ? conflicts

       # To include support for VESA video modes
       options         VESA                    # needs VM86 defined too!!

       # Allow processes to switch to vm86 mode, as well as enabling direct
       # user-mode access to the I/O port space.  This option is necessary for 
       # the doscmd emulator to run and the VESA modes in syscons to be available.
       #
       options         "VM86"

      もうひとつの方法は、カーネルから options VESA を削る代わりに、KLD 
      モジュールをロードする方法です。これには /boot/loader.conf に以下の
      行を追加します。ただこの場合もカーネルの VM86 サポートは必須です。

       vesa_load="YES"

      詳細については vga(4) にも目を通しておきましょう。


   3. デバイス認識の確認

      boot -v で起動し、

         >vga0: <Matrox model 0521 graphics accelerator> rev 0x01 int a irq 11 on pci1.0.0

         >VESA: v2.0, 8192k memory, flags:0x1, mode table:0xf0236d36 (1000022)
         >VESA: Matrox Graphics Inc.
         >VESA: Matrox
         >VESA: MGA-G200
         >VESA: 00

      このようにビデオカードの情報が出力されているかを確認します。また、

           % vidcontrol -i adapter
           % vidcontrol -i mode

      でも確認しておきましょう (特に mode は、使いたい画面モードがちゃん
      と表示されているかどうかを確認しましょう)。

         >% vidcontrol -i adapter
         >fb0:
         >    vga0, type:VESA VGA (5), flags:0x700ff
         >    initial mode:24, current mode:24, BIOS mode:3

         >% vidcontrol -i mode
         >    mode#     flags   type    size       font      window      linear buffer
         >------------------------------------------------------------------------------
         >  0 (0x000) 0x00000001 T 40x25           8x8   0xb8000 32k 32k 0x00000000  0k
         (中略)
         >209 (0x0d1) 0x00000009 T 132x60          8x8   0xb8000 32k 32k 0x00000000  0k


   4. フォントのロード

      ここで例えば 132x60 文字モードを使おうとした場合、8x8 フォントを
      必要とするので、

           % vidcontrol -f 8x8 /usr/share/syscons/fonts/iso-8x8.fnt

      としてフォントをロードしておきます。もしくは、/etc/rc.conf に

           font8x8="/usr/share/syscons/fonts/iso-8x8.fnt"

      を加えてリブートすれば、FreeBSD 起動時に自動的にロードできます。
      また、同じように 8x14 及び 8x16 フォントについても

           font8x14="/usr/share/syscons/fonts/iso-8x14.fnt"
           font8x16="/usr/share/syscons/fonts/iso-8x16.fnt"

      などとすることができます。


   5. 画面モードの変更

           % vidcontrol VESA_132x60

      とすると、その virtual console の画面モードが変更されます。ALT+F?
      での他の virtual console のモードも変更したければ、/etc/rc.conf に
      次のように設定すれば良いでしょう。

           allscreens_flags="VESA_132x60"

      より詳細は vidcontrol(1) を参照してください。


管理番号 1583 (新規) 更新履歴
Q. 東芝 Libretto に FreeBSD 3.4-RELEASE と PAO をインストールして使ってい
   ますが、どうしてもポートリプリケータのシリアルポートに繋いだ TA やモデ
   ムと通信できなくて困っています。tip コマンドで /dev/cuaa0 や /dev/cuaa1
   を指定してもエコーバックさえしません。 

   カーネルコンフィギュレーションは PAO_ALL のデフォルトのままです。
    # Serial (COM) ports & PCCARD modem etc.
    device      sio0    at isa? port "IO_COM1" flags 0x10 tty irq 4

   マシンの起動時には以下のようなメッセージがコンソールに表示されます。
    sio0: configured irq 4 not in bitmap of probed irqs 0
    sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
    sio0: type 8250

A. Libretto の "SYSTEM SETUP" で、シリアルポートの設定が COM1 になってい
   るかどうか確認し、もしなっていなければ設定を変更します。また、Libretto 
   シリーズの BIOS 設定については [管理番号 263] も参考にしてください。

   ESC キーを押し続けて電源スイッチを入れます。そのまま ESC キーを押し続
   けていると、
        Check system, Then press [F1] key.
   と表示されるので、[F1]キーを押します。
   すると、SYSTEM SETUP 画面になるので、カーソルを矢印キーで
        "I/O PORTS" の "Serial ="
   に移動します。ここが、
        "Not Used"
   だとシリアルポートは使えません。
   その場合には、スペースキーを押して、
        "COM1(3F8H/IRQ4)"
   に変更します。
   End キーを押せば設定を保存して SYSTEM SETUP を終了します。
   この設定の変更で、/dev/cuaa0 を使えるようになります。


管理番号 47 (更新) 更新履歴
Q. NEC PC-9801/9821シリーズでハードディスク起動メニューから、FreeBSD(98)
   の領域を選んだのですが boot できません。

A. FreeBSD(98)はハードディスク起動メニューの種類により、起動できない
      ことがあります。もしこのような状態なら、DOS 標準の起動メニューを
      入れ替える必要があります。

      安全かつ確実な方法は、DOS 付属の format コマンドで初期化することです
      (この時は、ディスクの中身が全て消えますのでバックアップを忘れずに)。

      しかし「フォーマットするのは面倒だ」と思われる方には次の方法があります。

       1.起動メニューから選べなくてもよく、DOS から起動できればいい。
         ---> HSB (Ver3.7 以降) を使用すれば、起動できる可能性があります。
       2.起動メニューから選べなくては嫌だ、多少のリスクを負ってもよいので
         起動メニューを入れ替えたい。
         ---> HDU を使えば、起動メニューの入れ替えが行えます。
            ただし、付属のドキュメントを十分読んだ上作業してください。

     HSB、HDU は Masao 氏 <PAG02771@nifty.ne.jp>が、公開されている
     フリーソフトです。
         <URL:http://www.vector.co.jp/soft/dos/util/se002233.html>
         <URL:http://www.vector.co.jp/soft/dos/util/se009150.html>

     また、えらー15氏が HSB を PC-9821Ra で使用するための差分を公開して
     います。PC-9821RvII26 等でも使用できる可能性があるので試してみると
     よいでしょう。
         <URL:http://hp.vector.co.jp/authors/VA000363/>


管理番号 38 (更新) 更新履歴
Q. FreeBSD の設定について勉強したいのですが、お勧めの書籍はないでしょうか?

A. 正にそのために「FreeBSD/Unix の良書を紹介しよう」というプロジェクト、
   GoodBooks Project があります。次の Web ページをご覧ください。

     <URL:http://www.Raomen.Net/GoodBooks/>


管理番号 56 (更新) 更新履歴
Q. HDD に Windows 95 と FreeBSD が同居していました。この前、Win95 を再
   インストールしたら FreeBSD が起動できなくなりました。

A. 1つの HDD に複数の OS が同居している場合、ブートマネージャと呼ばれ
   るプログラムを使って起動する OS を選択することが出来ます。ブートマ
   ネージャは HDD の先頭、マスターブートレコード (Master Boot Record: 
   省略形 MBR) に書き込まれていますが、Win95 は問答無用で MBR を 
   Microsoft 標準のものに上書きしてしまうため、次からは Win95 しか起動
   できなくなります。 

   FreeBSD は標準で boot0 (2.2 系以前は BOOTEASY) と呼ばれるブートマネー
   ジャを採用していますので、もう一度ブートマネージャをインストール仕
   直してやれば直ります。再インストールの方法は [管理番号 57] を参照し
   てください。


管理番号 57 (更新) 更新履歴
Q. ブートマネージャを再インストールする簡単な方法は?

A. FreeBSD のバージョンに関わらず使える方法として、ブートフロッピーを使う
   方法があります。まずブートフロッピーから起動して、インストーラのメニュー
   から「Custom」-->「Partition」で、ブートマネージャをインストールする 
   HDD を選択し、パーティションエディタの画面で「W」だけ押して(パーティショ
   ンはいじらない)、ブートマネージャ選択メニューで「BootMgr」を選択すれば、
   ブートマネージャだけ MBR に書き込むことができます。

   この他の方法として、FreeBSD の配布ファイルに含まれる bootinst.exe と 
   boot.bin を使う方法がありますが、この方法で書き込まれるブートマネージャ 
   は BOOTEASY と呼ばれる汎用のもので、2.2 系までの FreeBSD では標準採用
   されていましたが、3.0R 以降は FreeBSD 内部で開発された boot0 に変更さ
   れています。実行手順は DOS を起動して、配布ファイルの tools/ ディレク
   トリに移動し、上記の二つのファイルが存在することを確認した上で、 

    > bootinst boot.bin

   と実行します。しかし、この方法では boot0 は入れる事ができませんので
   注意してください。

   3.0R 以降では当然 boot0 も FreeBSD のバージョンごとに変更される可能性
   がありますが、単に make world しただけでは MBR までは更新されません。
   この様な場合 boot0cfg(8) を使えば簡単に最新の boot0 に入れ替えることが
   できますが、実行に際しては良くマニュアルを読んでからにしてください。

    (実行例: SCSI デバイス 1 台目から起動していた場合)
    # boot0cfg -Bv -b /boot/boot0 -f /boot/backup.mbr /dev/rda0


QandA
QandA Project
登録・更新 QandA 一覧