NetBSD ドキュメンテーション: 他の FAQ と HOWTO
NetBSD に関する一般的な疑問
ユーザー設定
- ユーザーの追加
- finger によって表示される情報の変更は?
- root としてログインあるいは 'su' する時の問題
- あなたのパスに何かを加える
- 全ユーザーのためになにか設定する
- シェルでのカーソルキー編集またはファイルネーム補完
- メッセージ言語の指定
印刷とスキャン
- PostScript でマニュアルページを印刷する
- NetBSD からリモート SMB プリンターへの印刷
- DHCP 経由の HP JetDirect Card 設定
- なぜ sh は、 HP JetDirect の「バースト」ページを抑制しないのですか?
- NetBSD でスキャナーを使う
ディスクおよびファイルシステム
- 存在しているシステムにディスクを追加する
- soft updates (softdeps) はどうやって使うの?
- softdep による改善はどう判断してるの?
- Fast File System (FFS)、 softdeps を使った FFS および NetBSD の ext2fs の実装の、不適切なシャットダウンに対する回復性はどうですか?
- /usr をルートからほかのパーティションに移す
- どうやって'リードオンリー'ファイルシステムを読み書きできるようにマウントするの?
- いつ fsck を使うのが安全なの?
- /kern は何に使われているの?
- /proc は何に使われているの?
- cgd(4) を使ったスワップの暗号化
ブート関連の質問
- シングルユーザーモードってなに? 必要な理由と使い方は?
- どうやって、シングルユーザーからマルチユーザーに移行するの
- ブートメッセージはどうやって読むの?
- どうやって機械をシャットダウンするの?
- どうやって、機械をリブートするの?
- 起動時にプログラムを開始する
メモリー/スワップの構成
一般の(それと一般ではない)問題
- 'man' を実行すると /usr/bin/nroff: not found となります
- メールを読んでいる時 'Unable to lock mailbox: Permission denied'が出ます
- 'netstat -r' を実行すると netstat: kvm_read kvm_read: Bad address となります
- 'netstat -r' をしてみると、限りないクエスチョンマークの列が帰ってきます。 何が悪いの?
- 新しいカーネルにアップデートしたあと、 w, ps, と netstat が働きません
- カーネル変更後 'ps' が "proc size mismatch" と言います
- 'hash map "Alias0":unsafe map file /etc/aliases: No such file or directory' が表示されます
- どうやったら、 root でログインした時のシェルが出す portmap メッセージ を抑制できますか
- どうやったらウムラウトその他の地域的な文字を表示できますか?
その他の疑問
- NetBSD で Bluetooth を使えるようにする方法は?
- NetBSD でのファイル編集
- /dev の再構築
- NetBSD システムに UPS をつなぐ
- /etc/motd を何らかの変更をしてももとの内容に戻ってしまいます
- どこへ NetBSD 関連のハードウェアを売ればいいの?
- ストライプ (ccd) ドライブを設定する
- コンソールのビットマップフォントの作成や編集用のユーティリティーは?
他のリンク
NetBSD に関する一般的な疑問
NetBSD リリース間で何が変わったの? (トップ)
全ての変更の最新の一覧 ( NetBSD-current での物も含まれています) があります。
これは、各リリースの最上位ディレクトリーの
CHANGES
ファイルにもあり、また、
前回
および
次回
のリリースのものがオンラインで保守されています。
NetBSD は 64 bit オペレーティングシステム? (トップ)
NetBSD は 32 bit と 64 bit CPU のどちらでも動いています。 alpha CPU では、 カーネルとユーザーランドは LP64 として知られているモードで走り、 それは、 int が 32 bit で long と ポインター (とアドレス空間) が 64 bit です。 amd64 および sparc64 ポートは 32 ビットと 64 ビット いずれの設定でも動作します。 64 ビットカーネル (LP64) は、 64 ビットモード において 32 ビットのアプリケーションをサポートします。 32 ビットカーネルは整数、ポインター、 long 整数すべてに 32 ビットを使い、 64 ビットプログラムは動作しません。
R4000 とそれ以降の MIPS といった、ほかの 64bit capable CPU (いくつかのポートで使われています) では、 NetBSD は 32 bit モードで走りますが、 64 bit に変更中です。
全ての NetBSD ポートは カーネルとユーザーランドプログラムで 64 bit 演算に対応しています。 カーネル内では、それはさまざまなカウンターと、 FFS 、64 bit 'Fast File System' に使われています。
NetBSD は米国から輸出できる? (トップ)
NetBSD 1.4.x まで(とそれを含む)では、 security 配布物 (すなわち secr.tgz) 以外の全ては 米国から輸出できます。 secr.tgz 配布物ファイルには、暗号のためのライブラリーが含まれています。 NetBSD 1.5 からは、 暗号化コードは NetBSD の base 配布物に含まれています。 輸出制限されたコードとバイナリーに関する NetBSD ドキュメントを参照してください 。
何のために NetBSD を使うの? (トップ)
Chris G. Demetriou (cgd@NetBSD.org) の言葉では:
“ NetBSD は、一般的に、 "安定した研究プラットフォーム" を意味します -- それは、商用、家庭、研究作業……に使えるシステムであり、 何に使うかは、あなた次第です。一般的に、 私たちが NetBSD でしている仕事は、 私たちに可能なあらゆる方法による、システムを改善する試みです -- より多くのハードウェアのサポート、より高い安定性、より良い性能、より多くの文書化…… ”
我々の 特色のページ を NetBSD があなたに与える機会(能力)のアイデアとして見てください!
ユーザー設定
ユーザーの追加 (トップ)
useradd(8) コマンドを使ってユーザーを追加できます。
/etc/passwd
を編集してもユーザーは追加できません。パスワードデータベースを編集したい場合は
vipw(8) を使ってください。さらなる情報は、 pwd_mkdb(8) を参照してください。
finger
によって表示される情報の変更は? (トップ)
chfn(1) および chsh(1) コマンドを使うか、または、
vipw(8) を使って /etc/master.passwd
を編集してください。
root としてログインあるいは 'su' する時の問題 (トップ)
以下のような、いくつもの場合がありえます:
-
root として直接ログインできません
NetBSD は/etc/ttys
中に 'secure' が書かれている端末からのみ、 root として直接ログインすることを許します ( ttys(5) を見よ)。 ネットワークをまたいで直接ログインできるようにする( 推奨され ない )には、 'secure
' を各ネットワーク端末行の最後に加える必要があります。 こうするためには、 root になって 以下のようにすればよく、各行をいちいち編集する必要はありません。cd /etc cp ttys ttys.orig cat ttys.orig | sed 's/network$/network secure/' > ttys
-
root に 'su' できません
NetBSD は誰かが root に su(1) しようとすると、/etc/group
の 'wheel' グループに誰が入っているかチェックします。 もしこのグループが空 (wheel:*:0:) なら誰もが正しいパスワードで root に su できます。 グループが空でない場合は、root になることが許可されたアカウントを、 コンマで区切って (スペースを入れてはいけません) 並べておきます。 -
誰にも 'su' できません
"
ls -l /usr/bin/su
" と入力してください。 出力の最初の 'word' は '-r-sr-xr-x' であるべきです。 もし、それがなにか違う ('-r-xr-xr-x' みたいに) なら (root になって) "chmod 4555 /usr/bin/su
" と入力してください。 その位置の 's' は 'setuid' バイナリーを示していて、この場合、 'su' が root 特権で走ることを認めています。この問題は、配布物を展開した時に tar に '-p' (パーミッション保護) フラグが 与えられていなかったことによるものです。この場合、 ほかのさまざまなユーティリティーもまた壊れているでしょうから、 全ての tar ファイル ( etc.tar.gz 以外)を再展開してください。
あなたのパスに何かを加える (トップ)
例えば、あなたのパスに /usr/X11R6/bin を加えるなら、 ホームディレクトリーの .login ファイルを編集し 次のように加えます:
set path = ( /usr/X11R6/bin $path )
これは C-shell csh(1) と、その派生物の
shells/tcsh
のようなものでのみ、働きます。
sh(1) と派生物 (shells/bash2
のような) では
正しい文法は:
PATH=/usr/X11R6/bin:$PATH export PATH
全ユーザーのためになにか設定する (トップ)
次に示すファイルのいずれか一つに書き加えると、csh(1) や shells/tcsh
を走らせている全ユーザー向けの設定をすることができます。
-
/etc/csh.cshrc
これは、新しいシェルが開かれるごとに、 ユーザーのホームディレクトリーにある、いかなる.cshrc
よりも先に実行されます。 -
/etc/csh.login
これは、ユーザーがログインする時、/etc/csh.cshrc
よりも後だけど、ユーザーのホームディレクトリーにあるいかなる.login
よりも先に実行されます。 -
/etc/csh.logout
これは、ユーザーがログアウトする時、ユーザーのホームディレクトリーにあるいかなる.logout
よりも先に実行されます。
シェルでのカーソルキー編集またはファイルネーム補完 (トップ)
これは、使っているシェルの種類によります。
-
sh(1) (Bourne シェル)
これは、シングルユーザーモードで使われるシェルであり、また、 NetBSD 4.0 以降では標準のユーザーシェルになっています。 'set -E
' または 'set -o emacs
' コマンドで、コマンドライン編集を有効にできます。 TAB によるファイル名の補完は、'set -o tabcomplete
' で有効にできます。これらはいずれも、標準状態で有効になるように (~/.shrc
から読み込まれる/etc/shrc
で) 設定されています。 シングルユーザーモードでいつもコマンドライン編集ができるように、/.profile
にこれを加えることができます。 -
csh(1) ('C' シェル)
これは NetBSD 4.0 より前までは標準のユーザーシェルだったもので、 ファイルネーム補完をサポートしています ('set filec' してから、 ESCAPE キーを使って) が、 コマンドライン編集はサポートしていません。 -
ksh(1) (Korn Shell)
これはパブリックドメイン版の Korn Shell 、別名 pdksh です。 Emacs モードまたは Vi モードのコマンドライン編集に対応しています ('set -o {emacs,vi}' で設定します) 。 Emacs モードでは、標準で、 TAB キーを使ってファイル名やコマンドを補完することができます。 Vi モードで TAB や ESC でのファイル名補完をするには、それぞれ、 'set -o vi-tabcomplete' や 'set -o vi-esccomplete' を使います。
このパブリックドメイン版 korn shell は NetBSD のベースシステムに含まれていますが、 他のオペレーティングシステム用として NetBSD パッケージコレクションのshells/pdksh
からも利用可能です。また、 KSH-93 もshells/ast-ksh
から利用可能です。 -
bash (GNU Bourne Again Shell)
'bash' はもうひとつの、コマンドライン編集拡張されているシェルで、 これは 'sh' が基になっています。 NetBSD パッケージコレクション 中のshells/bash2
からインストールすることができます。 -
tcsh (拡張された 'C' シェルの一つ)
'tcsh' はほぼ完璧な csh のスーパーセット(拡張物)で ファイルネーム補完(TAB を使います)と コマンドライン編集を含む沢山の便利な特別な機能があります。 NetBSD パッケージコレクション 中のshells/tcsh
からインストールすることができます。 -
ほかの shell たち
NetBSD パッケージコレクション のshells
カテゴリーの下には、 さまざまな他のコマンドラインシェルが含まれています。
メッセージ言語の指定 (トップ)
NetBSD は、エラーメッセージやそのようなものに用いる言語を
決めるのに
'LANG
' 環境変数を使います。
csh や tcsh では
'setenv LANG XX
' コマンドで設定でき、
ここで、 XX は2文字の国コードです。
サポートされているコードタイプの一覧は
' /usr/share/nls
' にあります。
どうか注意:確実に翻訳されているものだけにしてください。
確認するには、 LANG
変数をセットし、
cd /a_directory_that_does_not_exist
と打ってください。
印刷とスキャン
PostScript でマニュアルページを印刷する (トップ)
マニュアルページは、 nroff(1) ソースとして /usr/share/man/manX/manpage.X にあります。ここで X はセクション番号です (例: nroff の場合は 1 )。 それを PostScript に変換するにはこれが使えて:
groff -Tps -mandoc /usr/share/man/manX/manpage.X
たとえば、 ls(1) マニュアルページ を PostScript に変換し、 lpr(1) を通して直接デフォルトのプリンターに送るには、以下のコマンドを使うことができます。
groff -Tps -mandoc /usr/share/man/man1/ls.1 |lpr
ほかのタイプのプリンターで印刷したいなら、
pkgsrc の
print/ghostscript
パッケージを使うとよいでしょう。
NetBSD からリモート SMB プリンターへの印刷 (トップ)
詳細はこのページをご覧ください。
DHCP 経由の HP JetDirect Card 設定 (トップ)
JetDirect EX Plus のような、 JetDirect プリントサーバーを持っていれば、
プリントサーバーを設定するために、 NetBSD のもとで dhcpd(8) を使うことができます。 このステップは:
JetDirect サーバーのために /etc/dhcpd.conf
にエントリーを作ります。
options jd-tftp-cfg code 144 = string; options jd-tftp-server code 150 = string; allow bootp; # [...] host hp690c { fixed-address hp690c; # set to the DNS name or address of the JetDirect hardware ethernet 00:60:b0:00:11:22; # set to the MAC address of the JetDirect option log-servers servername; # set to the DNS name or address of log server option jd-tftp-server servername; # set to the DNS name or address of tftp server option jd-tftp-cfg "hpnp/hp690c.cfg"; # name of the JetDirect config file }
このファイルの書き方について、より詳しい情報は dhcpd.conf(5) を見てください。
/etc/inetd.conf
内で、 tftpd
が有効になっていることを確かめてください。
注意として、
"-s" 引数を /etc/inetd.conf
の tftp
の行につけるようにしてください。
この引数は、 tftpd(8) のルートディレクトリーを設定するものです。
以下、この例においては、
tftpd(8) のルートディレクトリーを /tftpboot
に設定していると仮定します。
/etc/rc.conf
内で、 dhcpd
が有効になっていることを確かめてください。
次に Network Printer Interface (NPI) 設定ファイルをつくります。
この例では、ファイルは /tftpboot/hpnp/hp690c.cfg
で、
このファイルは次のようになっているべきです:
name: printer name location: Location of the Printer contact: Contact Person idle-timeout: 1800 banner: 0
/etc/inetd.conf
に変更を加えた場合は、
かならず kill -HUP `cat /var/run/inetd.pid`
して、
inetd(8) に inetd.conf(5) を再読込みさせてください。
JetDirect プリントサーバー (または HP JetDirect カードのついたプリンター)
をリブートすると、サーバーは DHCP で設定を読みこみます。
いくつかのプリンターでは、フロントパネル(の操作)で BOOTP/DHCP の設定を
明示的に有効にする必要があるかもしれません。
なぜ sh は、 HP JetDirect の「バースト」ページを抑制しないのですか? (トップ)
この「バースト」ページは、プリンターとローカル接続されているホスト、特にこのケースでは
lpd(8) をエミュレートする専用ハードウェアの機能です。 NetBSD がリモートスプーラーとして
rm とともに使われる場合は、バーストページを追加することはありません。
この JetDirect の「バースト」ページは、専用デバイスの非標準な機能です。
HP (TM)
ではこのページを実際には "trailer" と呼んでいます。
この機能は、 banner: 0
を設定するか、または、デバイスの 23 番ポートに単純に
telnet して banner 0
コマンドを実行してから quit
することで、
止めることができます。
JetDirect の個体によっては、この banner
コマンドを追加するために、
ファームウェアをアップグレードする必要があるかもしれません。
ファームウェアをアップグレードするには、 HP による JetDirect
ネットワーク管理ツールを適切に使う必要があります
このアップグレードを行うために、 SNMP read and write community strings
を、既知の価に設定する必要があるかもしれません。
この設定をするには、以下の内容を NPI 設定に使います。
get-community-name: read-password set-community-name: write-password
(DHCP を使った JetDirect カードの設定については、前の項目を参照してください。) なお、 (TFTP 経由で) 公開される設定ファイルにこれらの項目を置くことによる セキュリティー上の影響を認識するようにしてください。
NetBSD でスキャナーを使う (トップ)
NetBSD は、 graphics/sane-backends
スキャニングパッケージを用いて、
さまざまな SCSI スキャナーをサポートしています。
この API にアクセスするためのフロントエンドは
graphics/sane-frontends
パッケージで提供されており、
また、graphics/gimp
のようなグラフィックツールから直接呼び出すことができます。
注意:
1.4.2 より前のバージョンの NetBSD では、
カーネル内の ss(4) スキャナードライバーは graphics/sane-backends
といくつかのスキャナーで問題を起こすかもしれません。
- その解決法は、カーネルを ss(4) デバイスを使わずに uk(4) を使うように再コンパイルするか、
1.4.2 以降にアップグレードすることのどちらかです。
ディスクおよびファイルシステム
存在しているシステムにディスクを追加する (トップ)
- システムを Halt(停止) します
- 新しいドライブをつなぎます
- マシンが PROM か BIOS を持っていて、ドライブ一覧が出せるなら、
そのドライブが認識されているかチェックします:
-
最近の sparc: 起動開始以前に
[STOP][A]
を押し、そして "ok
" プロンプトの所でprobe-scsi
。 -
adaptec BIOS の入っている i386 :起動開始以前に、
[CTRL][A]
を押し、BIOS にはいります。 - 他のもの: もっと詳しいこと(を寄せられること)を歓迎します :)
-
最近の sparc: 起動開始以前に
- boot します。
- ドライブが認識されていることを、dmesg(8) 出力で確かめます
-
disklabel(8) を用いてパーティションに disklabel(5) を書きこみます
(もし、ディスクにディスクラベルがまだなければ、 たぶん以下のようにすることになるでしょう:disklabel -i -I sd1 # "sd1: no disk label" という警告はすべて無視します
パーティション 'c' は、ディスクのうち NetBSD 部分全体として予約されており、 一部のポート (特に i386) では同様に 'd' がディスク全体として予約されています。 以下はセッションの例で、ディスク全体をひとつのパーティション 'e' として設定しています:partition> e Filesystem type [?] [unused]: 4.2BSD Start offset [0c, 0s, 0M]: Partition size ('$' for all remaining) [0c, 0s, 0M]: $ e: 234375000 0 4.2BSD 0 0 0 # (Cyl. 0 - 232514*) partition> W Label disk [n]? y partition> Q
disklabel -i
の実行中は、さらなるヘルプを '?' で参照できます。 - 追加されたファイルシステムごとに、
newfs <filesystem>
(ここで <filesystem> は生(raw)デバイスのパーティションです。 /dev/rsd1e, /dev/rwd1f, ... のような) - ファイルシステムを
/etc/fstab
に書きこみます。 - それを fsck(8) します:
fsck -f <filesystem>
- それを mount(8) します:
mount -va
soft updates (softdeps) はどうやって使うの? (トップ)
Frank van der Linden (frank@wins.uva.nl) はメインツリーに Kirk McKusick の 精巧な sync + FFS soft update コードを 持ってきました。
使うには、次のようにします:
- カーネルコンフィグファイルに "
options SOFTDEP
" をつけて 新しいカーネルをコンパイルします。 このオプションは GENERIC カーネルでは有効になっています。 - 新しいカーネルを走らせます。
-
/etc/fstab
の中で、 softdeps を使いたい全てのファイルシステムに "softdep
" マウントオプションを追加します。 たとえば、このような行は/dev/wd0e /usr ffs rw 1 2
このように変更します:/dev/wd0e /usr ffs rw,softdep 1 2
- リブートします。
- 遊ぼう!
softdep による改善はどう判断してるの? (トップ)
変化したデータが直ちにディスクに書き込まれない事実から、 システムがもっと速くなったと思われます。 現時点では、これを表わす数字はありません。
Paul Vixie は、softdep が ありとなし の両方のシステムで、一つのディレクトリーに (ランダム順に) 75.000 ファイル を蓄え検索する ベンチマークを走らせました。 この結果は、大きなディレクトリーにおいて、生成および配置の両方のファイルアクセス時間が、 一般的に、soft dependencies なシステムのほうが良い結果であることを 示しています。(この場合の softdep システムは FreeBSD 4.2で、 非-softdep システムは BSD/OS 3.1 です。 NetBSD システムでも softdep の有る無しで見られる挙動は似たものであるはずです)。
Fast File System (FFS)、 softdeps を使った FFS および NetBSD の ext2fs の実装の、不適切なシャットダウンに対する回復性はどうですか? (トップ)
FFS では、ファイルシステムがクラッシュ後に修復可能であることを保証すべく、 メタデータ操作をそれが参照するデータの実体の操作より先に行うことと、 さらに、あらゆるメタデータ操作は適切な順序で行なうことに注意を払っています。 最後の N 秒 (N は同期間隔) ぶんのファイルデータは、修復不可能に なるかもしれませんが、それでもファイルシステムメタデータは修復可能です。 この N は通常は 30 です。
softdeps を使うと、通常の FFS とほとんど同じだけの信頼性が得られます。 softdeps では、クラッシュ前のある時点における、 矛盾のないファイルシステムのスナップショットを得られることが保証されます。 このため、たとえば、ロックファイルのリネームといった不可分な操作を行なった場合、 softdeps を使わない場合と同じく、ロックファイルが本当にあることはわかりません; しかし、そのファイルのあったディレクトリーが消されないことと、 この不可分な操作と将来の不可分な操作の間の依存関係の順序が保持されることはわかります。 このため、制御が不可分な操作に依存している場合、 たとえば、ある種のデータベース的なプロセス (大量のメールスプールファイルの 書き込み、取引システムからのデータ集計などなど) では、 それが終わったように見えた時点で、安全にバックアップを取ることができます。
NetBSD の ext2fs の実装は、メタデータに関して、 (Linux の実装とは違って) 旧来の FFS 並の保証をしていますので、 Linux でネイティブの ext2fs を使う場合よりも多くの信頼を持って実際に使うことができます。 若干遅くなるという欠点はあります。しかしこれは、 システムクラッシュ時に適切な扱いをして、 潜在的なファイルシステム破壊の可能性を避けるようにしたためなのです。
/usr をルートからほかのパーティションに移す (トップ)
- 希望する新しい位置(例えば
/dev/sd0e
)が 存在する他のどのパーティションとも重ならないことを確かめます。 disklabel(8) の出力をチェックします。 - 移動先にまだファイルシステムがなければ、以下を実行します。
# newfs /dev/sd0e
- それをマウントし、データを向こうへコピーします:
# mount /dev/sd0e /mnt
# cd /usr
# pax -rw -pe . /mnt
# umount /mnt
-
/etc/fstab
を編集し、 '/dev/sd0e /usr ffs rw 1 2
' を加えます。 (/dev/sd0e
はあなたの状況に応じて変えて下さい)。 - シングルユーザーモードに shutdown し、
新しいマウントポイントをつくります:
# shutdown now
# mv /usr /usr.old
# mkdir /usr
- システムを起動し、テストし、まったく良好なら、
'
rm -rf /usr.old
' します。
どうやって'リードオンリー'ファイルシステムを読み書きできるようにマウントするの? (トップ)
mount(8) の -u
(update) スイッチを使ってください:
'mount -u /
'。
あなたはおそらくシングルユーザーで起動したのでしょうが、この場合、
ルートファイルシステムは、標準でリードオンリーでマウントされます。
これは、マルチユーザーでシステムが起動する前に、
手動で fsck を走らせる機会を与えてくれます。
読み書きできるように、
/etc/fstab
の全てのファイルシステムをマウントするもうひとつの方法は
'mount -a
' をつかうことです。
しかしながら、これをする一番良い方法は、シングルユーザーシェルを抜けて
マルチユーザーモードに入ることです。
これで、 /etc/fstab
に載せられているモードで
その全てのファイルシステムをマウントします。
いつ fsck を使うのが安全なの? (トップ)
fsck(8) は、アンマウントされているか、
リードオンリーのファイルシステムにだけ
使うようにしてください。
読み書きできるファイルシステムに
fsck(8) をかけることは危険で、ファイルシステムをより悪くしてしまうかもしれません。
シングルユーザーモードでシステムを起動すれば、リードオンリーでマウントされます。
そこで 'fsck -p
' とすることで、
システムがマルチユーザーモードで起動する前に、
全てのファイルシステムをチェックすることができます。
もし、ファイルシステムに既に "clean," とマークされているけど、
それでもまだチェックしたいなら、
fsck(8) に -f
フラグ を使うことができます。
fsck を使って、ファイルシステムになにかの変更がされたら
たぶん、ディスクを同期せずに機械をすぐリブートするために
'reboot -n
'
と打つのが、一番良いことでしょう。
/kern
は何に使われているの? (トップ)
それは、 kernfs ファイルシステムのマウントに使われています。 mount_kernfs(8) マニュアルページを見てください。
/proc
は何に使われているの? (トップ)
それは、 procfs ファイルシステムのマウントに使われています。 The Design and Implementation of the 4.3BSD UNIX Operating System by Leffler, McKusick, et al., p. 104-5, 436 を調べてください。 mount_procfs(8) マニュアルページも見てください。
これは、普通 root で '/proc' ディレクトリーを作って、
/etc/fstab ( fstab(5) を見よ) に次のように加えることで使われています:
/proc /proc procfs rw 0 0
NetBSD では /proc
はプロセス関連のデータ専用になっているため、
それ以外の linux で使われているような項目は提供されません。しかし、
以下のようにファイルシステムフラグに "linux
" オプションを加えることで、
変えることができます。
/proc /proc procfs rw,-olinux 0 0
cgd(4) を使ったスワップの暗号化 (トップ)
スワップの暗号化については時々話題にのぼるため、ここで示す情報は スワップスペースの暗号化に関心がある人にとっては有用かもしれませんが、 必須のものではありません。
現在、制約がひとつあります。 cgd デバイスは、 4.2BSD と記されているスライスただひとつを含んだディスクラベルから作られますが、 これはスワップに使うには不適切です。 これが、 cgd ドライブをスワップデバイスとして使うことが面倒な理由です。 Roland Dowdeswell がこのことを調べており、近い将来解決されるはずです。
実際の例を示します: スワップデバイス wd0b を、 256 ビット aes-cbc 鍵を使って cgd1 として設定します。手順の説明は以下のとおりです。
1) cgd デバイス用のパラメーターファイルを作ります。デフォルトでは /etc/cgd/wd0b になりますが、ここでは説明しやすくするため /etc/cgd/swap を使います。 # cgdconfig -g -V none -k randomkey aes-cbc > /etc/cgd/swap 2) wd0b 上の cgd デバイスを設定します (この時点では wd0b がスワップデバイスとして使われていないことを確認してください)。 # cgdconfig cgd1 /dev/wd0b /etc/cgd/swap 3) cgd1 用にディスクラベルを編集します。妥当なスワップスライスを作る必要があるからです。 編集したディスクラベルをファイルに保存します。 # disklabel -e -I cgd1 # /dev/rcgd1d: type: cgd disk: cgd label: default label flags: bytes/sector: 512 sectors/track: 2048 tracks/cylinder: 1 sectors/cylinder: 2048 cylinders: 128 total sectors: 263655 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0 4 partitions: # size offset fstype [fsize bsize cpg/sgs] d: 263655 0 4.2BSD 0 0 0 # (Cyl. 0 - 128*) スワップスライスを作り、ラベルを変更します (これは本当に必要なわけではなく、 単に自分用の情報としてのものです)。 # /dev/rcgd1d: type: cgd disk: cgd label: swap flags: bytes/sector: 512 sectors/track: 2048 tracks/cylinder: 1 sectors/cylinder: 2048 cylinders: 128 total sectors: 263655 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0 4 partitions: # size offset fstype [fsize bsize cpg/sgs] a: 263655 0 swap # (Cyl. 0 - 128*) そして、ファイルに保存します。 # disklabel cgd1 > /etc/cgd/swap.disklabel 4) cgd デバイスを、ブート時に自動的に設定されるようにします。 /etc/cgd/cgd.conf に以下の行を追加します。 cgd1 /dev/wd0b /etc/cgd/swap 5) ここで、ブート時に新たに作られた cgd デバイスにディスクラベルを書き戻す必要があります。 以下のような単純な関数が書かれた /etc/rc.conf.d/cgd を作ります。 swap_device="cgd1" swap_disklabel="/etc/cgd/swap.disklabel" start_postcmd="cgd_swap" cgd_swap() { if [ -f $swap_disklabel ]; then disklabel -R -r $swap_device $swap_disklabel fi } 6) cgd デバイスを、スワップデバイスとして /etc/fstab に追加します。 /dev/cgd1a none swap sw 0 0
以上ですべてです。これで、 'swapctl -a /dev/cgd1a' または単にリブートすることで、 スワップパーティションを有効化できます。
以上でお見せした設定は、筆者のラップトップの設定です。
Device 1K-blocks Used Avail Capacity Priority /dev/cgd1a 131827 8828 122999 7% 0
ブート関連の質問
シングルユーザーモードってなに? 必要な理由と使い方は? (トップ)
'single-user' モードはカーネルがブートした時の状態で、 コンソール上で1つのシェルが動いています。 シングルユーザーで起動すると、ルートファイルシステムだけが リードオンリーでマウントされます。 多くのユーザーにとって、シングルユーザーモードは:
- 傷んでる疑いのためにファイルシステムに
fsck
をかける。 -
/etc
にある傷んだシステム設定ファイルを編集する。 - ダウンロードあるいは自分でコンパイルした新しいバイナリーセットをインストールする。
- ユーザープロセスからの干渉を気にせずにファイルシステムのバックアップをとる
動作中のシステムから、 root 権限で
'shutdown now
' を実行することで、
シングルユーザーモードに入れます。
または、システムの起動中に、
'-s' フラグを使う(この方法はポートごとによってさまざまです)
ことでもできます。
シングルユーザーで起動した場合には、次のようないくつかのコマンドが便利かもしれません:
-
fsck -p ; mount -va
fsck(8) でファイルシステムをチェックし、それを mount(8) で使える状態にします。 -
set -E
コマンドライン編集を有効にします。 -
TERM=vt220 ; export TERM
vi(1) のようなエディターが動作できるように、 TERM 変数を設定し、 export します。 注意: コンソールタイプによって 'vt220' を別のターミナルタイプにする必要があります。 -
sh /etc/rc.d/network start
ネットワークを起動します。 nfs マウントされたファイルシステムがあるなら、 fsck と mount の前に実行する必要があるでしょう。 NetBSD 1.5 より前のシステムの場合は、このコマンドはsh /etc/netstart
にします。
どうやって、シングルユーザーからマルチユーザーに移行するの (トップ)
シングルユーザーシェルを "exit" か ctrl-D で抜けてください。
これで、システムはマルチユーザーモードで起動し、各種サービス等が開始されます。 シングルユーザーからマルチユーザーへの移行の際にはディスクが検査されないことに 注意してください。
ブートメッセージはどうやって読むの? (トップ)
システムメッセージバッファーは dmesg(8) で表示できます。
これは(1.4 以降では)いつも起動後ごとにすぐに
/var/run/dmesg.boot に自動的に貯められます。
カーネルインストールで kernfs ( mount_kernfs(8) を見よ)
が有効になっているなら、
more /kern/msgbuf
もしてください。
どうやって機械をシャットダウンするの? (トップ)
シングルユーザーモードに落ちるなら、
'shutdown now
' を使ってください。
機械を停止するのなら
'shutdown -h now
' を使ってください。
いくつかのポートでは、実際に電源を落とすなら
'shutdown -p now
' を使う必要があります。
完全な詳しいことは shutdown(8) マニュアルページを見てください。
どうやって、機械をリブートするの? (トップ)
'shutdown -r now
' か 'reboot
' を使ってください。
より細かいことは shutdown(8) や reboot(8) マニュアルページを見てください。
起動時にプログラムを開始する (トップ)
システムのブート時にプログラムを起動するために、 /etc/rc.local
にあらゆるコマンドを追加することができます。これは、ブート過程の
一番最後に実行されます。
root 以外の大多数のユーザー向けの代替策として、 ( NetBSD で使っている) Vixie cron(8) の特別な時間指定 @reboot は、与えられたプログラムを cron(8) 起動時に開始することが可能です。 それはたいてい、システム起動時と一致します。これは root 特権の無いユーザーに、 起動時にコマンドを自動的に実行させることを許しているということです。
メモリー/スワップの構成
スワップスペース(空間)はどのくらい (トップ)
古い unix システムでは、RAM の倍ほどの大きさのスワップスペースが推奨されています。 これはなぜなら RAM のアクティブページは swap 上に配置されていなければならず、 事実上、 仮想メモリーの合計は、 スワップ空間の大きさによって制限されていたからです。 NetBSD では、これはもはや正しくなく、仮想メモリー合計は、スワップ + RAM が近似値です。
NetBSD の下では、スワップ空間は3つの基本的な利用目的があって:
-
仮想メモリーの追加
変更されたデータを含むアクティブページが少なくなると、 物理メモリーより大きく準備された仮想メモリーとして データがスワップ空間へ移動することができます。 -
カーネルのコアダンプのための場所
これは起動時、 savecore(8) に読まれます。 これが機能するためには、プライマリースワップパーティションは 全 RAM 容量よりわずかでも大きい必要があります。 -
mfs(8) ファイルシステムのため
/tmp を使うあらゆるプログラムの高速化のために、 古典的に /tmp をマウントすることで、 fstab(5) ファイルに次のように加えることによって:swap /tmp mfs rw,-s=SIZE 0 0
ここで SIZE は 512byte ブロックのものです。 この要求されたスペースは、スワップ空間から ファイルシステムとして使うために持ってこられます。
スワップの'正しい'値と言うのは、システムの利用法に依存しますが、 いくつか一般的なルールがあって:
動作中のシステムにスワップを追加する (トップ)
システムは、 スワップスペースはどのくらいのとおりの 充分なスワップ空間が設定されているべきです。
設定されているシステムにスワップを追加するには3通りの方法があります:
-
システムディスクを再構築し、大きなスワップパーティションを使います。
この方法はおそらく最も美しい解決法ですが、 明らかに重大な困難を伴います。 -
スワップパーティションを追加します。
ディスク追加時に、 小さい 'b' パーティションをスワップの追加のために 含めるのは、大抵良いアイデアで、/etc/fstab
ファイルに 起動時に自動的に有効になるように 次の形式のエントリーを追加します/dev/DISKb none swap sw 0 0
(ここで、DISK
は 'sd1' や 'wd2' のような ディスクの名前です). -
スワップファイルを作ります。
もっとも早く、簡単な選択は、 存在するファイルシステムにファイルをつくり、 追加スワップ空間として使うことです。 これをアクセスすることは、 専用のスワップパーティションをアクセスするよりわずかながら 遅いでしょうが、 (フラグメンテーションやファイルシステムオーバーヘッドによる) スワップの不足を解決する一時的なものとしてはよいでしょう。
10 MByte のスワップ空間を追加することは、 充分な空き空間のあるファイルシステムを選ぶだけの簡単なことで:
# dd if=/dev/zero bs=1m count=10 of=/somefilesystem/swap # chmod 600 /somefilesystem/swap # swapctl -a -p 1 /somefilesystem/swap
dd(1) コマンド が 10 MByte の `
/somefilesystem/swap
' ファイルをつくります。 このスワップファイルは、特権のないユーザーが その内容を読めないように、 chmod(1) 600 をする必要があります (swapctl(8) は誰でも読めるファイルは拒否します) 。 そして、 swapctl(8) コマンドは/somefilesystem/swap
を 優先度 1 のシステムスワップ領域として加えます。 優先度 0 が (デフォルトの) 最も高い優先度です。 優先度 1 にする理由は、ファイルへのスワップはわずかに遅いので、 これを使うのは従来型のスワップを使い切ったときだけにしたいからです。このファイルをずっとスワップとして使うようにし、 リブートの都度有効にするため、 /etc/fstab に以下のように書いておきます:
/somefilesystem/swap none swap sw,priority=1 0 0
メモリーが少ないシステムでの性能改善のための仮想メモリーの調整 (トップ)
tech-kern メーリングリストの
Simon Burge の記事によれば、仮想メモリーの設定に手を加えることで、
メモリーの少ないマシンの性能を大幅に改善することができます。
この記事をすべて読んだうえで、どう設定すべきか決めることが最善ではありますが、
要点は、 sysctl -w vm.anonmax=95
を実行するとよいということです。 sysctl(3)
マニュアルページによれば、これは「匿名アプリケーションデータを保持するために、
他のメモリーの用途から取り戻される物理メモリーのパーセンテージ」を変更します。
一般の(それと一般ではない)問題
'man' を実行すると /usr/bin/nroff: not found となります (トップ)
'text' セット (text.tgz) をインストールする必要があります。インストールノートを見てください。
メールを読んでいる時 'Unable to lock mailbox: Permission denied'が出ます (トップ)
/var/mail
ディレクトリーのパーミッションをチェックしてください。
それは 'drwxrwxrwt
'となっているべきで:
% ls -ld /var/mail
drwxrwxrwt 2 root wheel 512 Nov 6 08:21 /var/mail
そうでなければ、 root になって 'chmod 1777 /var/mail
' を実行します。
'netstat -r
' を実行すると netstat: kvm_read kvm_read: Bad address となります (トップ)
これはなにも心配はいりません。
基本的に、 /netbsd
というファイルは
あなたの現在のカーネルではありません。
たくさんのプログラム( ps
, who
, systat
等のような)
や libkvm kvm(3) は
カーネル内がどうなっているかを知るために /netbsd
をアクセスします。
それで、この手のエラーを回避する為に、
あなたの現在のカーネルを /netbsd
に単純にリネームすることができます。
これをしている時に動作中のカーネルを上書きしていないか確かめてください。
それが、あなたがしようとしていることではないかぎり。
'netstat -r
' をしてみると、限りないクエスチョンマークの列が帰ってきます。 何が悪いの? (トップ)
それは、 libkvm/netstat
と /netbsd
の間で不適合になっているからです。
または、 /netbsd
という名前ではないカーネルを走らせているからです。
この問題のほかの兆候は、
who
, ps
, ifconfig
や systat
のようなものも良く動かないことでしょう。
もし、カーネルとバイナリーを同時にアップデートすれば、解決するでしょう。
新しいカーネルにアップデートしたあと、 w
, ps
, と netstat
が働きません (トップ)
2つのうちの1つです。
現在起動しているカーネルが /netbsd
と名づけられていないか、
使っているカーネルとバイナリーの間で不適合があるかのどちらかです。
最初の場合、単純に現在起動されているカーネルを
/netbsd
にリンクをつくることで、問題は解決します。
2番目の場合、ダイナミックリンクされたバイナリーは、
libkvm を新しいカーネルに適合するようにアップグレードすることで、
直せます。
スタティックリンクされたバイナリーは
より新しいバージョンの物に置きかえる必要があります。
それらはスタティックリンクされているので、
それらを再コンパイルしようとするなら、
問題のプログラムの再構築をする 前に libkvm.a
を再構築する必要が
あります。
John Wittkowski (jpw@netscape.com) に感謝、
これは彼による ( /bin/ps
のほかに)
libkvm に依存するプログラムのほとんどの一覧です
(これらの全ては /usr/bin
にあります):
fstat
gdb
ipcs
netstat
nfsstat
systat
uptime
vmstat
w
カーネル変更後 'ps' が "proc size mismatch" と言います (トップ)
この前にある3つの疑問のように、 その答えは、たいてい、 libkvm がカーネルやバイナリーと同期がとれていないからです。 この問題を解決するには、 カーネルに適合したバイナリー配布物を手に入れるか、 下に示した方法で構築するかのどちらかの方法がとれます:
"proc size mismatch" エラーが出て、 lib のアップデートが必要だと決意した場合、 次のようにします: 1. 全ソースコードを手に入れます。 もし、あなたがこれをしたり、再コンパイルをすることを望まなくても、 誰かがこの作業をしたか探すよりは、 いちいち手作業をしてインストールに挑戦しましょう。 2. インクルードファイルが 更新されているか確認します。 このようにし: cd /usr/src make includes これは、ちょっと時間がかかるでしょう。 いくつかの Makefile に INSTALL 変数が定義されていなかったため、 私は何度かトラブルに遭いました。 "make includes" が失敗するごとに、 表示されている、最後のディレクトリーに行って、 Makefile にこの行を加えました: INSTALL=/usr/bin/install これを何度か行なうことで、エラーなしに終わることができました。 (まず、 /usr/bin/make と /usr/share/mk 内の全てのファイルが 更新されていることを確かめれば、 上の問題点を避けることができるでしょう。) 3. libkvm を再構築し、インストールします: cd /usr/src/lib/libkvm make make install 注意として、 libkvm を得る目的で 私のシステムでコンパイルをするのに、 次のようなリンクを加える必要がありました: cd /usr/include/machine ln -s ../m68k/kcore.h kcore.h これはたぶん私のシステムの癖なので、 最初にこれをせずにコンパイルを試してください。 4. そして、 libkvm にスタティックリンクされたバイナリーを再構築します。 私が気がついているスタティックリンクされたプログラムは "/bin/ps" だけで、 ps の再構築には、単純に: cd /usr/src/bin/ps make make install 5. libkvm にダイナミックリンクされたバイナリーは、 再構築が必要かもしれませんし、必要ないかもしれません。 これは、なぜかと言うと(私が考えるに)、 古いバイナリーに対し、 lib の メジャーバージョン番号 が変わるなら、 古いバージョン番号を求めていて、新しいバージョンの lib では動かないでしょう。 たとえば、 私の古い libkvm は libkvm.so.4.0 で、 その新しいものは libkvm.so.5.0 です。 ダイナミックリンクされたバイナリー を再コンパイルしなければ、 "proc size mismatch" ( 4.0 lib がまだそこにあれば)か、 some lib missing error ( /usr/lib から 4.0 lib が取り除かれていれば) と不平を言うでしょう。 マイナーバージョンナンバーの変更 (たとえば 4.0 から 4.1) なら warning を出しながらも動き、 これらの全てを再コンパイルする必要はないでしょう。 私が気がついている ダイナミックリンクされたバイナリーは "proc size mismatch" エラー ( 4.0 lib がまだそこにあれば) か some lib missing エラー ( /usr/lib から 4.0 lib が取り除かれていれば) を出すでしょう。 マイナーバージョンナンバーの変更 (たとえば 4.0 から 4.1) なら warning を出しながらも動き、 これらの全てを再コンパイルする必要はないでしょう。 私が気がついているダイナミックリンクされたバイナリーは: /usr/bin/fstat /usr/bin/gdb /usr/bin/ipcs /usr/bin/netstat /usr/bin/nfsstat /usr/bin/systat /usr/bin/uptime (linked to /usr/bin/w) /usr/bin/vmstat /usr/bin/w 注意 /usr/bin/uptime は /usr/bin/w にリンクされていて、 w に対して "make install" をすることで、セットアップされるでしょう。 これらを再コンパイルするには、次のようにし: cd /usr/src/usr.bin/<cmd> make make install たとえば、 /usr/bin/vmstat を再コンパイルするには: cd /usr/src/usr.bin/vmstat make make install
これに関する具体的な答えをくれた John Wittkowski (jpw@netscape.com) に感謝
小さな背景: これらのシステムユーティリティーに、上にあげたすべての問題も含め、 カーネルメモリー情報を手に入れさせ続ける必要がある理由は、 この手段がカーネルクラッシュダンプに対しても働き、 カーネルデバッグ作業に便利な特徴になることが出来るからです。
'hash map "Alias0":unsafe map file
/etc/aliases
: No such file or directory' が表示されます (トップ)
root 権限で 'newaliases
' と打つことで直せます。
sendmail は aliases(5) ファイルが存在しないとこれを報告します。
注 sendmail(8) は実際には
/etc/aliases.db
( /etc/aliases
からつくられる高速参照
hash(3) マップ) を使い、それで、このエラーメッセージは小さな誤解をおこすのです。
これは、 NetBSD 1.3 から 1.4 だけで、注意すべきで、
ほかのバージョンでは、
必要に応じて /etc/sendmail.cf
を自動的に再構築する
異なる /etc/sendmail.cf
を持っています。
もし、古くても NetBSD 1.4.1 を走らせていなければ、
新しい 公式リリース
にアップグレードするべきです。
どうやったら、 root でログインした時のシェルが出す portmap
メッセージ を抑制できますか (トップ)
security/sudo
をつかって、そして、決して root でログインしないでください。
root でログインする必要があるなら、
/etc/syslog.conf
ファイルを編集することで、
うるさいメッセージを抑制するために
重要な 装備 を外すことができます。
たいていの場合、それは、次の行の
auth.debug
を無効化することで充分で:
*.notice;auth.debug root
これで、それらのうるさい
portmap [pid]: connect from some.other.host ...
メッセージが消えるでしょう。
必ず
kill -HUP
syslogd
の pid
をしてください。
xconsole
を使うために、
FAQ 項目も見るのもいいかもしれません。
どうやったらウムラウトその他の地域的な文字を表示できますか? (トップ)
NetBSD 1.6 には、デフォルトで数々のロケールがインストールされています。これらのロケールは
/usr/share/locales
にあります。あなたの居住地にもっとも合ったロケールを選んで、
環境変数 LC_ALL を適切に設定してください。なお、 LC_ALL をたとえば ``de_DE''
に設定するのでは不十分なことに注意してください。 ``de_DE.ISO8859-15'' のような
完全なロケールを使う必要があります
古いバージョンの NetBSD 向けに、メール アーカイブ からの情報を以下に示します:
- locale.tgz を 取得してください。
- / にそれを展開し:
tar plzvxCf / locale.tgz
- シェルで、 set LC_ALL=iso_8859_1 してください。 (常時設定にするには、 .cshrc 、 .profile 、 ...において)
- シェルを再起動するか、ログインしなおしてください。
- シェルを見ると、 vi その他 キーボードからのこれらウムラウトのすべてを 受け付けます: öäüÄÖÜ... (訳者注:環境によっては化けているかもしれません)
その他の疑問
NetBSD で Bluetooth を使えるようにする方法は? (トップ)
Bluetooth に対応した最初の公式 NetBSD バージョンは、 NetBSD 4.0 になります。準備と設定の方法を記した howto が用意されています。
NetBSD でのファイル編集 (トップ)
基本システムには2通りの明らかな選択肢があって:
-
ed(1) (Line 指向 のテキストエディター)
ed
は非常に単純なテキストエディターです。 これには、コマンドモード(起動時に選択されている)と 入力(インプット)モードがあります。 その一番の利点は、 '/' ファイルシステムだけがマウントされた シングルユーザーモードでも存在していて、 正しいターミナルタイプに設定されていなくても動作することです。 ed(1) の基本的な理解をすることは、価値のあることで、 - 非常時に、 fstab(5) と rc.conf(5) ファイルを直すのに充分です。 -
vi(1) (Screen 指向のテキストエディター)
vi
は ex(1) のコマンドモードとインプットモードを持ち、 だが、フルスクリーンビジュアルインターフェースが加えられています。 vi は基本インストールで存在する唯一のスクリーンエディターで、 実行には、妥当なターミナルタイプが要求されます。
たくさんのオンラインの vi チュートリアル(個人指導)があって:rc.conf(5) の設定に vi を使うことを試みるなら、 シングルユーザーモード の 項目を読むべきです。
pkgsrc の
editors
カテゴリーには、沢山の数のエディターがあって:
-
editors/joe
WordStar と emacs のキー割り当て (jstar, jmacs) を エミュレートできる小さくて高速なエディターeditors/joe
は Borland IDE を使う人達に知られているでしょう。 -
editors/pico
非常にシンプルに使えるテキストエディターで、mail/pine
メールパッケージで使われています。 -
editors/nedit
シンプルだけど便利な、融通の利く X ベースの GUI エディター。 -
editors/emacs
ことわざにある 'なんでもかんでも (everything and the kitchen sink)' なエディターで、完全な lisp インタープリターを含みます。 小さな機械には推奨されません。
/dev
の再構築 (トップ)
/dev
ディレクトリーには、
ハードウェアと 擬似デバイスをアクセスするために必要な
デバイスファイルが含まれています。
もしそれが、ダメージを受けていれば、
もっと不思議なことが結果として起こるでしょう。
/dev
ディレクトリーを再構築するには、
まずシングルユーザーで起動するべきです
(マルチユーザーででもできるかもしれないが、推奨しません)。そして:
mkdir /newdev cd /newdev cp /dev/M* . sh MAKEDEV all cd / mv dev olddev; mv newdev dev rm -r olddev
NetBSD システムに UPS をつなぐ (トップ)
UPS をつなぐのは単純なことだけど、
監視して、電源が落ちたときに、
きちんと NetBSD をシャットダウンするには、ちょっとした事が必要で:
Simon J. Gerraty は
APC Smart-UPS を使うための
ページを開設しています。
UPS と通信するソフトウェアを書くには、 tcsetattr() 経由で
softcar フラグを設定する必要があるでしょう。
Wolfgang Rupprecht は、簡単なフィールド調査をしました:
UPS インターフェースは異なる2種類の型があって、 ときどき、同じ UPS に両方存在しています。 UPS についている 9ピンのコネクターには、決して、普通の PC-style RS-232 として配線しないでください。 最善のものは、 3芯で、それを保つようにピンを再配置した RS-232 インターフェースです。 最悪なのは、内部信号端子(??)が RS-232 の 信号電圧 ですらなく、 変わったケーブルを使う必要のあるもので、 そのケーブルは電圧レベル変換装置がついていて、 それによってRS-232 ポートから見えるようになっているものです。 後者の型のインターフェースからの信号は、 1bit(通常/電源断)の信号を送出するだけです。 それは DCD のような モデム制御信号 で処理されるべきで、 プログラム経由でモデム制御信号の状態をチェックして検出するべきです。 注意しないと、 UPS に付いてきた、モデム制御信号だけのケーブルと 本物の RS-232 ケーブルがごっちゃになってしまいます。
APC web page を捜しまわったり、 altavista でいくつか当たった有望なものによると、 3 つの基本的なインターフェースがあることがわかりました。 低価格帯の UPS ("back UPS") は モデムコントロールライン タイプのインターフェースだけを持っています。 高価格帯の2つ ("Back UPS Pro", "Smart UPS") は モデムコントロールラインと 3芯 RS-232 信号の両方の組み合わせを持っています。 どちらかのケースでは、 2つのうちのどらちかの種類の特殊ケーブルを使う必要があります。 モデムコントロールラインインターフェースのケーブルには、 レベルシフトのためにトランジスターとダイオードが入っています。 (電源はほかの線のどれかからとってきます)。 それは UGLY という単語がぴったりだと思えるほど 本当にぶざまな解決法で、正しく変更するべきです。(???) 2番目のタイプのケーブルは、 UPS とシリアルで会話できるでしょうが、 いくつかの 3-rd party のドキュメントには、 UPS は ストップビットを2ビットで送信する時だけ喋ると示されています。 プロトコルに関する公式ドキュメントは無いようで、 また、 back-UPS pro と smart UPS は異なるシリアルラインプロトコルを 喋るようです。 back-UPS pro ラインだけが いくつかの サードパーティー のサポートがあるようで、 プロトコルの詳細の多くが推測だけのようです。
競合品のどれもが、 (modem コントロール信号 だけ、および、 特殊ケーブルで(知的財産)権利のある シリアル信号プロトコル)を真似しているようです。 私は、標準規格についての公開された文書を見つけることができませんでした。
/etc/motd
を何らかの変更をしてももとの内容に戻ってしまいます (トップ)
/etc/motd
のヘッダーを消すと、
起動時にスタートアッププロセスがあなたのした変更を上書きします。
これは、 /etc/rc.conf
内で update_motd=NO
と
設定することで無効にすることができ、
これで、/etc/motd
にはまったく手が加わらなくなり、
あなたが、変更することができるようになります。
どこへ NetBSD 関連のハードウェアを売ればいいの? (トップ)
補助アイテムのために、一般的に、 その port の メーリングリスト と、 netbsd-forsale@mono.org に投稿することができます。 NetBSD の開発を支援するために何らかのハードウェアを寄付したいのなら、 ハードウェア寄付ページ をチェックするか、 finance-exec@NetBSD.org に連絡してください。
ストライプ (ccd) ドライブを設定する (トップ)
ディスクストライピングは、 NetBSD では RAIDframe または ccd(4) を使っておこなうことができます。 ここでは ccd(4) の使い方を説明します。
- 全てのディスクに disklabel をつけます:
結合したいパーティションをつくり、 開始オフセットを 確かめます ( 16 セクターでまったく充分 - 確信しているわけじゃないけど)。 この種の問題が起こっても、私にはわかりません。 "普通の" 4.2BSD パーティション を使っているので。 - ccd を設定します。
性能チューニングで、 最も良いインターリーブを見つけるために少し試してみる必要があるでしょう。 私の場合、2つのディスクで 48 が良く動作します。 私が知る限り、16 かいくつかのほかの数字では、 全ての inode が同じディスク上に存在してしまうので、 パフォーマンス向上にはならないでしょう。 私の記憶が確かなら、 コンポーネントのセクター数をインターリーブの倍数にしないと、 いくつかの問題がありました。 - 普通のハードディスクと同様に ccd に disklabel を書きます。
- ccd を newfs します。
- それをマウントします。
より詳しい情報は ccd(4) と ccdconfig(8) のマニュアルページを見てください。
コンソールのビットマップフォントの作成や編集用のユーティリティーは? (トップ)
sysutils/pcvt-utils
パッケージをインストールしてください。
このパッケージには、fed と fontedit
という二つのフォントエディターが含まれており、
これらは /usr/share/wscons/fonts
のフォント用としても使うことができます。