FreeBSD QandA 2001年10月25日 更新分
管理番号 745 (更新)
更新履歴
Q. FreeBSD で音楽 CD の曲データ (CD-DA) を CD-ROM, PD ドライブを用いて
取り出せますか?
A. ドライブの機種に依存しますが、次の樣な方法があります。最近のドライブで
はほとんど問題ないと思われますが、一部の古いドライブなどでは不具合が
報告されています。
1. ATAPI CD-ROM
a) FreeBSD 4.3-RELEASE 以降を使っている場合
もはや特別なソフトウェアは不要です。読み出し時の block size を
2352 bytes に指定してコピーするだけです。
まず必要とするトラック番号までのデバイススペシャルファイルを作ってお
きます。次の例は 50 トラック (t50) としています。
# cd /dev; ./MAKEDEV acd0t50
CDメディアをドライブにセットしたら、OS に目次を読み込ませます。
ついで、どのトラックを吸い出そうとしているのか確認します。
% cdcontrol -f /dev/acd0c info
吸い出したいトラック番号を # とすると、以下のコマンドで raw データ
がファイル track#.raw に吸い出せます。
% dd if=/dev/acd0t# of=track#.raw bs=2352
後は、好きな順番に並び替えて My best CD を cdrecord や burncd で
焼くも良し、MP3 にエンコードするも良し。
% gogo -nopsy -offset 0 track#.raw
どうしても WAV 形式にしたければ、適当な 44Byte のヘッダをくっつけて
やれば良いでしょう。
% cat Header track#.raw > track#.wav
b) dagrab (ports/audio/dagrab) を使います
<URL:http://web.tiscali.it/marcellou/dagrab.html>
ただし、一部の CD-ROM ドライブにおいて dagrab を用いて取り出しを行うと、
出力にノイズが混じるという事例が報告されています。その場合は、cdda2wav
を試してみて下さい。
2. SCSI CD-ROM
a) tosha (ports/audio/tosha) を使います。
b) cdda2wav (ports/sysutils/cdrtools) を使います。
<URL:http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>
3. SCSI PD
松下 LF-1000 では tosha-0.6 に以下のパッチが必要です。
---ここから---
*** tosharc Wed Jan 13 15:37:42 1999
--- tosharc Mon Jan 18 22:24:51 1999
***************
*** 66,71 ****
--- 66,72 ----
# This one was tested with "MATSHITA" "PD-1 LF-1001" "A105":
+ "MATSHITA" "PD-1 LF-1000" "" 0xd8 0 0x00 0 10 0
"MATSHITA" "PD-1" "" 0x28 1 0x00 0 10 0
# Someone reported the following setting for his
---ここまで ---
Appendix. 参考情報
<URL:http://www.kobe1995.net/~kaz/FreeBSD/cd_rip.html>
管理番号 336 (更新)
更新履歴
Q. FreeBSD ではブート時にオプション (boot -s) を与えることで、誰でもシングル
ユーザ・モードで起動できてしまうのですが、その場合にもパスワードを要求する
ようにはなりませんか?
A. init(8) のマニュアルや /etc/ttys 内に記述がありますが、これが問題になる
ような場合にはシングルユーザ・モードに入るときにパスワード入力を要求さ
せることが可能です。
--- /etc/ttys より抜粋----------------------------------------------------
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure
--------------------------------------------------------------------------
つまり最後の secure を insecure にすれば OK です。
管理番号 298 (更新)
更新履歴
Q. シングルユーザ・モード (boot -s) で起動してファイルを修正しようとしたの
ですが、/ が read only になっていて書き込みができません。
A. 以下の手順が推奨されます。
1. ファイルシステムの整合性チェック
# fsck -p
これでエラーが報告されなければ次へ、もし異常終了した場合は、エラーが
報告されたパーティションについて、個別に fsck(8) を実行して復旧させます。
2. / (ルートパーティション) を書き込み可能状態へ
# mount -u /
/etc/fstab が消えたような場合は、mount -u -o rw /dev/ad0s1a / のように
具体的にデバイスも書きましょう。
3. 他のファイルシステムをマウント (オプション)
# mount -a -t ufs
または、必要なファイルシステムを個別にマウントすればよいでしょう。
4. スワップの有効化 (オプション)
# swapon -a
メモリが厳しい状況では必要ですが、メモリが十分あれば不要です。
5. カーネルクロックの調整 (オプション)
# adjkerntz -i
マシンの CMOS クロックが UTC に合わせてあれば必須ではありませんが、
ローカル時間に合わせてある場合 (/etc/wall_cmos_clock が存在する)、
これを実行しないでフィイル編集を行うと、ファイルのタイムスタンプが
ずれてしまいます。
ファイルの修正など作業が終わったら reboot するのが確実ですが、もし、^D
でマルチユーザ・モードに移行するなら、その前に adjkerntz を kill してく
ださい。そうしないと rc(8) スクリプト実行中に adjkerntz が二重に呼び出
されてしまいます。
管理番号 37 (更新)
更新履歴
Q. packages のように、バイナリ形式で公開されているコマンドを実行しようと
したら、
ld.so failed: Can't find shared library "lib*.so.x.y"
とか、
/usr/libexec/ld-elf.so.1: Shared object "lib*.so.x" not found
と言われて動きません。
A. 違うバージョンの FreeBSD 用に作られた、ダイナミックリンクされたバイナリ
を実行しようとした場合に表示されるエラーメッセージです。1番目のエラーは
a.out(5) 形式、2番目のエラーは elf(5) 形式のバイナリを実行しようとした
場合です。
対策方法はもちろん FreeBSD のバージョンに合ったものをインストール仕直す
のが一番良いのですが、なんらかの事情で OS より古いバイナリを実行したい
場合は、FreeBSD の配布ファイルから compat{1x,20,21,22,3x,4x} など、互換
ライブラリを導入すれば解決できます。どの互換ライブラリをインストールす
れば良いか分からなければ、配布メディアが /cdrom/ にあるとして、
# fgrep libc.so.3 /cdrom/compat*/*.mtree
とします。ここでは例として libc.so.3 を探すとしますが、このコマンドの
実行結果次のように表示されます。
/cdrom/compat22/compat22.mtree: libc.so.3.1 size=427501 \
/cdrom/compat3x/compat3x.mtree: libc.so.3 size=521297 \
これで、compat3x が必要なことが分かりましたから、次のコマンドでシステム
へ追加インストールします。
# cd /cdrom/compat3x
# sh install.sh
そのほか目安として、新しい shared library の方が大きい数字を用いていま
す。また、packages の依存関係を無視して強制的に pkg_add(1) したときにも
同様のことが起り得ます。
一方、OS より新しいバイナリである場合には、そのバイナリを使用しないのが
賢明です。自分が使っている FreeBSD 用のバイナリを入手するか、ports を使
うなどして自分でコンパイルし直しましょう。
「shared library だけ新しい物を持って来る」
「今 持っている shared library を copy して番号だけをごまかす」
など無理なことをするのは、コマンドの誤動作を引き起こし、非常に危険です
から絶対にやめましょう。
管理番号 586 (更新)
更新履歴
Q. ダイアルアップルータや ppp(8) で ISP に繋いでますが、午前2時、または
午前3時になると勝手に発呼してしまいますが、どうしたらよいのでしょう?
A. FreeBSD 4.1.1-RELEASE 以降では /etc/periodic.conf に次の行を追加します。
もしファイルが無ければ作成してください。詳しくは periodic.conf(5) を読
むようにしてください。
daily_status_network_usedns="NO"
daily_status_named_usedns="NO"
それ以前では /etc/periodic/daily/420.status-network (2.2.x-RELEASEでは
/etc/daily) の `netstat -i' を `netstat -ni' に変更すれば大丈夫です。
管理番号 831 (更新)
更新履歴
Q. xdm を使って login したいのですが、どのように設定すれば良いでしょうか?
A. /etc/ttys で以下のように設定します。
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
^^^
この ttyv3 の行の "off" を
ttyv3 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure
^^^
としてから reboot するか、`kill -HUP 1' して変更を反映させます。また
最近のバージョンの FreeBSD では、仮想端末が増やされた関係で ttyv3 から
ttyv8 に変更されています。
参考: /usr/X11R6/lib/X11/doc/README.FreeBSD