FreeBSDによるサーバ構築
家庭内サーバを構築しています(4/3, 4/4の日記を参照)。今回はFreeBSDでサーバを構築するにあたっていくつかはまったところを紹介します。(1) USB接続のHDDを認識しないFreeBSD 5.4-RELEASEを使っています。一応USB接続のHDDをサポートしているはずなので今回購入したBUFFALOの250GBのハードディスクHD-H250U2をつないで見ましたが認識しませんでした。usbdevsコマンドを実行してもハードディスク情報が返ってきません。GENERICカーネルのコンフィグ/usr/src/sys/i386/conf/GENERICを見てみると、USB2.0サポートのためのデバイスehciがコメントアウトされています。きっとこれが原因に違いないということでコメントをはずしてカーネルを構築しなおすと認識されるようになりました。以下にdmesgの出力から関連する部分を引用します。uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 11 at device 16.0 on pci0usb0: <VIA 83C572 USB controller> on uhci0usb0: USB revision 1.0uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1uhub0: 2 ports with 2 removable, self powereduhci1: <VIA 83C572 USB controller> port 0xd800-0xd81f irq 5 at device 16.1 on pci0usb1: <VIA 83C572 USB controller> on uhci1usb1: USB revision 1.0uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1uhub1: 2 ports with 2 removable, self powereduhci2: <VIA 83C572 USB controller> port 0xdc00-0xdc1f irq 10 at device 16.2 on pci0usb2: <VIA 83C572 USB controller> on uhci2usb2: USB revision 1.0uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1uhub2: 2 ports with 2 removable, self poweredehci0: <VIA VT6202 USB 2.0 controller> mem 0xde001000-0xde0010ff irq 11 at device 16.3 on pci0usb3: EHCI version 1.0usb3: companion controllers, 2 ports each: usb0 usb1 usb2usb3: <VIA VT6202 USB 2.0 controller> on ehci0usb3: USB revision 2.0uhub3: VIA EHCI root hub, class 9/0, rev 2.00/1.00, addr 1uhub3: 6 ports with 6 removable, self poweredumass0: BUFFALO INC. USB2-IDE Bridge, rev 2.00/1.06, addr 2umass0: Get Max Lun not supported (STALLED)...da0 at umass-sim0 bus 0 target 0 lun 0da0: <USB-HS WDC WD2500BB-00R 0.01> Fixed Direct Access SCSI-0 deviceda0: 40.000MB/s transfersda0: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)これで/dev/da0にパーティションを作ってマウントすることができました。(2) IMAPフォルダの移行これまでLinux上でcyrus-imapdeを運用していて、メールを整理するためにIMAPのフォルダを使っていました。これによりメールソフトがIMAPに対応していれば、異なるメールソフト間でメールデータの共有ができます。今回FreeBSD上にcyrus-imapd 2.0をインストールしました。インストール自体はうまくいったのですが、バックアップしてあったIMAPフォルダの移行がうまくできません。単にメールスプールにまるごとコピーするだけではだめでした。またcyradmコマンドでreconstructによりデータベースの再構築を行ってもだめです。いろいろ試行錯誤した結果、/usr/local/cyrus/bin/ctl_mboxlistコマンドで移行することができました。以下その手順を示します。 復元したいIMAPフォルダの一覧を作る。以下のような形式のファイルを用意してください。IMAPフォルダ名[TAB]default[TAB]ユーザ名[TAB]ACL[TAB]のところはタブ文字を入れてください。空白文字ではだめです。日本語フォルダ名は"&"で始まる文字列になっていますが、これもそのまま記述します。以下に例を示します。user.kemusiro default kemusiro lrswipcdauser.kemusiro.&aX1ZKV6DWDQ- default kemusiro lrswipcdauser.kemusiro.Draft default kemusiro lrswipcdauser.kemusiro.Sent default kemusiro lrswipcdauser.kemusiro.Trash default kemusiro lrswipcda ctl_mboxlistコマンドに入力する。# su cyrus# cat folderlist.txt | /usr/local/cyrus/bin/ctl_mboxlist -u# /usr/local/bin/cyradm --user cyrus-admin localhost(cyradmのプロンプトから) reconstruct user.kemusiroフォルダ名やユーザ名などは適宜読み替えて実行してください。いまのところ問題になったのはこんなものです。その他のサーバ類(cvs, ntpd, sambaなど)は順調にインストールが進んでます。さて次は大切なデータの自動バックアップについて検討します。