2010.04.18
sshを立ち上げて、自宅内ではtelnetよりsshでサーバーに接続していた。
自宅内ならsshにする必要もないのだが、TeraTerm Proでloginするとき、設定してしまえばsshの方がlogin操作が楽なので、そうしていた。
さて、自宅外からTeraTerm Proでsshで接続しようとすると、Pass Phraseの入力画面で固まってしまう。
理由は、何のことはない/etc/hosts.allowに許可の記述がなかったからだ。
# sshd : xxx.xxx.xxx.xxx/255.255.255.0 : allow
を入れたら、すんなり接続できた。
しかし、sshは/etc/rc.confで下記のように起動している。
sshd_enable="YES"
inetd.confの記述で起動したときのみ、hosts.allowの記述が有効と思っていたのが間違いで、inetdに頼らず起動しても、hosts.allowの記述が必要であったのである。
FreeBSDを使い始めて10年ぐらい経つが、まだまだ知らないことが多い。
2009.08.16
smbclientよりmount_smbfsでリモートのWindowsのディレクトリーをマウントする方が、良く使われると思われるので、これも書いておく。
# mount_smbfs -I 192.168.1.100 //nakamura@hogehoge/share /mnt
Password:xxxxxx
# ls /mnt
Thumbs.db calendar.tcl mn8300.pdf pspbrwse.jbf satoru
# umount /mnt
こちらの方が使い易いと思うのだが、好みの問題か。
極めて簡単なのだが、やはりしばらく使わないと使用方法を忘れてしまう。
まず、Windows XPで動いているデスクトップPCのホスト名がhogehogeとすると、下記のコマンドで、アクセス可能なディレクトリーを表示させる。
# smbclient -I 192.168.1.100 -L hogehoge/C$ -U nakamura
Password:xxxxxxx
Domain=[HOGEHOGE] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
E$ Disk Default share
EPSONPM- Printer EPSON PM-A850
IPC$ IPC Remote IPC
D$ Disk Default share
print$ Disk プリンタ ドライバ
share Disk
ADMIN$ Disk Remote Admin
C$ Disk Default share
Domain=[HOGEHOGE] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Server Comment
--------- -------
Workgroup Master
--------- -------
この中で、共用設定をしているディレクトリーはE Drive内に作ったshareだけなので、そこをアクセスしてみる。
# smbclient //hogehoge/share
Password:
Domain=[HOGEHOGE] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: > ls
. D 0 Sun Jun 28 16:57:47 2009
.. D 0 Sun Jun 28 16:57:47 2009
calendar.tcl A 3234 Sat Jan 17 09:05:48 2009
mn8300.pdf A 1471542 Sat Sep 27 01:01:34 2003
pspbrwse.jbf A 25967 Sun May 17 09:56:50 2009
satoru D 0 Sun Jun 28 16:57:21 2009
Thumbs.db AHS 97280 Tue Aug 4 20:39:23 2009
38534 blocks of size 2097152. 29452 blocks available
smb: > q
#
2009.03.28
FreeBSDやLinuxでは、bootの過程で何が起きたかをdmesgコマンドで見ることが出来る。
しかしながら、表示内容が長くなると最初の部分が消えて見ることができない。私の例では、Firewallを設定して韓国、中国からのアクセスをブロックした途端に、その表示の長さのために、boot過程は全く見えなくなってしまった。
これを解決するためには、dmesgのバッファーサイズを広げればよいが、このためには、MSGBUF_SIZE というオプションを指定してカーネルの再構築をする必要がある。
/usr/src/sys/i386/confに移動して、GENERICを別名(MYPCなど)でコピーして、編集する。
# cd /usr/src/sys/i386/conf
# cp GENERIC MYPC
# vi MYPC
そして、下記のようにoptionsでMSGBUF_SIZE=xxxxxを追加する。
サイズはデフォルトでは4096であり、この整数倍に設定する。
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
options MSGBUF_SIZE=409600
これで、kernelをコンパイルして入れ替えれば、バッファーサイズが増え、全てのメッセージを見ることが出来るようになる。
2009.03.07
FreeBSDではATAインターフェイスをコマンドでattach, detach出来る機能があり、gmirror構成したディスクの1台が壊れても、サーバの運用を続けながらhot replaceで交換きる。まず、root権限でatacontrolでlistを表示してみる。
# atacontrol list
ATA channel 0:
Master: acd0 <TSSTcorp CD-ROM TS-H192C/B504> ATA/ATAPI
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <ST3808110AS/3.AJJ> Serial ATA v1.0
Slave: no device present
ATA channel 3:
Master: ad6 <Hitachi HDS721680PLA380/P21OABEA> Serial ATA II
Slave: no device present
使用しているサーバはHPのProLiant M110であり、IDEのPrimaryとSecondaryがATA channel 0とATA channel 1として表示され、SATAがそれぞれATA cahnnel 2とATA channel 3として表示されている。
この例ではATA channel 2のMasterにad4が接続されており、ATA channel 3にad6が接続されている。
atacontrolでは、channel単位にattach, detachができるので、例えばATA channel 3につながっているad6を交換したいのであれば、このチャネルをdetachする。detachしてリストを表示すると、
# atacontrol detach ata3
# atacontrol list
ATA channel 0:
Master: acd0 <TSSTcorp CD-ROM TS-H192C/B504> ATA/ATAPI
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <ST3808110AS/3.AJJ> Serial ATA v1.0
Slave: no device present
ATA channel 3:
Master: no device present ← HDDが消えた
Slave: no device present
となり、ad6として動作していたHitachiの160GBのドライブが消える。
ここで、このドライブをサーバ運用のまま交換し、attachする。
# atacontrol attach ata3
# atacontrol list
ATA channel 0:
Master: acd0 <TSSTcorp CD-ROM TS-H192C/B504> ATA/ATAPI
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <ST3808110AS/3.AJJ> Serial ATA v1.0
Slave: no device present
ATA channel 3:
Master: ad6 <Hitachi HDP725025GLA380/GM2OA5CA> Serial ATA II
Slave: no device present
ここの例では、Hitachの250GBのドライブに交換した。
あとはgmirrorを再構成するだけである。
# gmirror statua ← statusの表示
Name Status Components
gmirror/gm0 DEGRADED ad4
# gmirror forget gm0 ← 構成情報のリセット
# gmirror status ← 再度statusの確認
Name Status Components
gmirror/gm0 COMPLETE ad4 ← DEGRADEDからCOMPLETEになる
# gmirror insert gm0 ad6 ← ad6の組み込み
Name Status Components
gmirror/gm0 DEGRADED ad4
ad6(1%) ← 進行が%で表示される
あとは、同期化が進行して完了する。