<?xml version="1.0" encoding="EUC-JP"?>
<rss version="2.0">
   <channel>
      <title>FreeBSD</title>
      <link>http://uls.fam.cx/freebsd/</link>
      <description>(自己の忘備録として・・・・)</description>
      <language>ja</language>
      <copyright>Copyright 2009</copyright>
      <lastBuildDate>Mon, 07 Dec 2009 08:59:03 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.35</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Ubuntu 9.10でpdfファイルの表示と作成</title>
         <description><![CDATA[まず、Synapticパッケージマネージャーで"xpdf-japanese"と"cups-pdf"をインストールする。
次に以下のようにリンクを貼る。

<pre>& su
パスワード：
# mkdir -p /usr/share/poppler/cidToUnicode
# ln -s /usr/share/xpdf/japanese/Adobe-Japan1.cidToUnicode \
 /usr/share/poppler/cidToUnicode/Adobe-Japan1
# mkdir -p /usr/share/poppler/cMap
# ln -s /usr/share/fonts/cmap/adobe-japan1 /usr/share/poppler/cMap/Adobe-Japan1</pre>

これで、日本語のpdfも表示される筈だが、アルファベット部分のみしか表示されない。
調べると、poppler-dataが入っていない可能性があることが分かり、以下のようにしてインストール。
<pre># apt-get install poppler-data</pre>

これで、見事に表示されるようになった。

印刷に関しては、「システム」→「システム管理」→「印刷」と辿ると「PDF」の名前のプリンターができている。
Wordなどで印刷すると、HomeディレクトリーのPDFフォルダー内にpdfファイルが作られる。
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/002200.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/002200.html</guid>
         <category>ubuntu</category>
         <pubDate>Mon, 07 Dec 2009 08:59:03 +0900</pubDate>
      </item>
            <item>
         <title>Ubuntu 9.10のインストール</title>
         <description><![CDATA[以前にUbuntu 8.10をUSBメモリーからインストールする方法を備忘録として書いた。
その後、アップデートマネージャで9.10まで版数は上がっているが、クリーンインストールしたくなって実行した。方法が以前と少し違うところがあるので、改めて記述しておくこととした。

1. 準備
<blockquote>準備は普段使っているWindows XPが乗っているデスクトップPCを使った。

(1) ubuntuは<a href="http://www.ubuntulinux.jp/">ubuntu Japanese Team</a>のページから日本語版の最新の9.10のiso imageをダウンロード。

(2) インストール用のUSBメモリー作成ツールとして、<a href="http://unetbootin.sourceforge.net/">unetbootin</a>をダウンロード

(3) unetbootinはインストールする必要もなく、ダウンロードしたものを、そのままダブルクリックで起動。</blockquote>

<img alt="unetbootin2.jpg" src="http://uls.fam.cx/freebsd/archives/unetbootin2.jpg" width="500" />

<blockquote>a. Distributionでubuntuで9.10Liveを選択。
b. DiskimageでISOを選び、isoimageの場所を選択。
c. 最下段のTypeでUSB Driveを選び、Drive名が目的の
　USBメモリーであることを確認。</blockquote>
OKボタンを押すと、進行状況の表示画面になり、途中で止まったように見えてハングしたかと思ったが、10分程度経過の後急に進んで終了した。

(注) 以前は出来上がったUSBメモリーを開いてファイル名の修正などが必要であったが、今回は必要ない。(<strong>修正したらインストールできなくなる</strong>)

2. インストール
<blockquote>インストールが終わっても、無線LANは修正が必要とのことであるので、有線のLANケーブルを接続しておく。そして、出来上がったUSBメモリーをMini 9に挿し、Power ONして"0"キーをチョンチョンと押し続けるとブートの選択画面が出るので、USBを選択してEnterキーを押すと、インストール画面になる。後はCDからのインストールと同じである。既にWindowsXPを16GBのパーティションを作って入れてあるので、残りの16GB部分にインストールした。</blockquote>

3. 修正作業
<blockquote>以前、問題であったサウンドは修正の必要もなく動作したが、無線LANは動作しなかった。

(1) 無線LAN
システム→システム管理→ハードウェアーマ・ドライバーと進んでBroadcom STA無線ドライバーを有効にする。</blockquote>

4. インストール後の設定
<blockquote>(1)以前の<a href="http://uls.fam.cx/freebsd/archives/001766.html">記述を参照</a>

(2)デフォルトで入っているviは使い勝手が悪いので、vimに交換。
</blockquote>

Mini 9の有線LANケーブルを外して再起動。今度は無線LANが働くので、自分の無線LANのアクセスポイント名を選んでPassword Phraseを入れ接続する。</blockquote>
<img alt="mini9.jpg" src="http://uls.fam.cx/freebsd/archives/mini9.jpg" width="500" height="450" />
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/002185.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/002185.html</guid>
         <category>ubuntu</category>
         <pubDate>Tue, 24 Nov 2009 08:55:55 +0900</pubDate>
      </item>
            <item>
         <title>mount_smbfsの使用方法</title>
         <description><![CDATA[smbclientよりmount_smbfsでリモートのWindowsのディレクトリーをマウントする方が、良く使われると思われるので、これも書いておく。

<pre># 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</pre>

こちらの方が使い易いと思うのだが、好みの問題か。]]></description>
         <link>http://uls.fam.cx/freebsd/archives/002019.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/002019.html</guid>
         <category>FreeBSD</category>
         <pubDate>Sun, 16 Aug 2009 13:21:01 +0900</pubDate>
      </item>
            <item>
         <title>smbclientの使用方法</title>
         <description><![CDATA[極めて簡単なのだが、やはりしばらく使わないと使用方法を忘れてしまう。

まず、Windows XPで動いているデスクトップPCのホスト名がhogehogeとすると、下記のコマンドで、アクセス可能なディレクトリーを表示させる。

<pre># 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
        ---------            -------</pre>
この中で、共用設定をしているディレクトリーはE Drive内に作ったshareだけなので、そこをアクセスしてみる。
<pre># 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
#</pre>


]]></description>
         <link>http://uls.fam.cx/freebsd/archives/002018.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/002018.html</guid>
         <category>FreeBSD</category>
         <pubDate>Sun, 16 Aug 2009 13:03:12 +0900</pubDate>
      </item>
            <item>
         <title>dmesgのバッファーサイズを増やす</title>
         <description><![CDATA[<br>
FreeBSDやLinuxでは、bootの過程で何が起きたかをdmesgコマンドで見ることが出来る。
しかしながら、表示内容が長くなると最初の部分が消えて見ることができない。私の例では、Firewallを設定して韓国、中国からのアクセスをブロックした途端に、その表示の長さのために、boot過程は全く見えなくなってしまった。
これを解決するためには、dmesgのバッファーサイズを広げればよいが、このためには、MSGBUF_SIZE というオプションを指定してカーネルの再構築をする必要がある。
/usr/src/sys/i386/confに移動して、GENERICを別名(MYPCなど)でコピーして、編集する。
<pre># cd /usr/src/sys/i386/conf
# cp GENERIC MYPC
# vi MYPC</pre>
そして、下記のようにoptionsでMSGBUF_SIZE=xxxxxを追加する。
サイズはデフォルトでは4096であり、この整数倍に設定する。
<pre>options         STOP_NMI                # Stop CPUS using NMI instead of IPI
options         AUDIT                   # Security event auditing
<font color=#ff0000>options         MSGBUF_SIZE=409600</font></pre>
これで、kernelをコンパイルして入れ替えれば、バッファーサイズが増え、全てのメッセージを見ることが出来るようになる。
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001856.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001856.html</guid>
         <category>FreeBSD</category>
         <pubDate>Sat, 28 Mar 2009 18:05:08 +0900</pubDate>
      </item>
            <item>
         <title>atacontrolで故障HDDの交換</title>
         <description><![CDATA[FreeBSDではATAインターフェイスをコマンドでattach, detach出来る機能があり、gmirror構成したディスクの1台が壊れても、サーバの運用を続けながらhot replaceで交換きる。まず、root権限でatacontrolでlistを表示してみる。

<pre># 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</pre>

使用しているサーバは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してリストを表示すると、
<pre># 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   　　<font color=#ff0000>← HDDが消えた</font>
    Slave:       no device present</pre>
となり、ad6として動作していたHitachiの160GBのドライブが消える。
ここで、このドライブをサーバ運用のまま交換し、attachする。
<pre># 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:  <font color=#ff0000>ad6 <Hitachi HDP725025GLA380/GM2OA5CA> Serial ATA II</font>
    Slave:       no device present</pre>
ここの例では、Hitachの250GBのドライブに交換した。
あとはgmirrorを再構成するだけである。
<pre># gmirror statua　　　　　　　　　　　<font color=#ff0000>← statusの表示</font>
　   Name         Status   Components
  gmirror/gm0   DEGRADED      ad4
# gmirror forget gm0   　　　　　　　　<font color=#ff0000>← 構成情報のリセット</font>
# gmirror status　　　　　　　　　　　<font color=#ff0000>← 再度statusの確認</font>
　   Name         Status   Components
  gmirror/gm0   COMPLETE      ad4　　　<font color=#ff0000>← DEGRADEDからCOMPLETEになる</font>
# gmirror insert gm0 ad6　　　　　　　　<font color=#ff0000>← ad6の組み込み</font>
　   Name         Status   Components
  gmirror/gm0   DEGRADED      ad4
　　　　　　　　　　　　　　 ad6(1%)   <font color=#ff0000>← 進行が%で表示される</font>
</pre>
あとは、同期化が進行して完了する。
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001817.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001817.html</guid>
         <category>FreeBSD</category>
         <pubDate>Sat, 07 Mar 2009 06:14:22 +0900</pubDate>
      </item>
            <item>
         <title>FreeBSDのgmirrorでのHDD故障対応</title>
         <description><![CDATA[gmirrorでミラー構成が出来たので、故障状態を起こさせて、回復を試みる。

(1) FreeBSDを普通に起動した後に、最初にFreeBSDをインストールしたHDD(ad0)の供給電源ケーブルをHDDより引き抜いた。そのままでは、何も起こらなかったがviを起動しようとしたら、良く覚えてないがad0に書き込めないと言うようなメッセージが表示された。
下記のようにステータスを表示させると、DEGRADEDになっていた。
<pre># gmirror status
　   Name         Status   Components
  gmirror/gm0   DEGRADED      ad2</pre>
もちろん、この状態でもサーバは問題なく動作を続けている。

(2) Shutdownして起動すると正常に立ち上がった。

(3) もう一度Shutdownしてad0に電源ケーブルをつなぎ、起動する。
ログインしてstatusを見ると、既に同期化が始まっていた。
ad0に全く新しいディスクを取り付けて起動すると、(5)の状態になるはずである。
<pre># gmirror status
　   Name         Status   Components
  gmirror/gm0   DEGRADED      ad2
　　　　　　　　　　　　　　 ad0(1%)   <font color=#ff0000>← 進行が%で表示される</font></pre>

(4) gmirror作成で使用したLivefs CDで起動して、ad0に書き込まれたメタデータをクリアした。
<pre># chroot /dist
# kldload geom_mirror
# exit
# gmirror stop gm0　　　　<font color=#ff0000>← gmirrorの停止</font>
# gmirror clear ad0　　　　<font color=#ff0000>← ad0のメタデータのクリア</font></pre>

(5) Livefs CDを抜いて普通に起動してステータスを確認し、今度は同期化は始まらず、ミラーはDEGRADED状態であることを確認する。
<pre># gmirror status
　   Name         Status   Components
  gmirror/gm0   DEGRADED      ad2</pre>
(6)gm0の構成情報をリセットする。そしてステータスを確認する。DEGRADEDがCOMPLETEに変わる。
<pre># gmirror forget gm0　　　　　　　　　<font color=#ff0000>← 構成情報のリセット</font>
# gmirror status
　   Name         Status   Components
  gmirror/gm0   COMPLETE      ad2</pre>
(7) ここで、ad0を組み込む。
<pre># gmirror insert gm0 ad0  　　　　　　<font color=#ff0000>← ad0の組み込み</font>
GEOM_MIRROR:Device gm0:rebuilding provider ad0.</pre>
(8)上記メッセージの後、同期が始まり30分ほどで完了した。
<pre># gmirror status
　   Name         Status   Components
  gmirror/gm0   DEGRADED      ad2
　　　　　　　　　　　　　　 ad0(2%)   <font color=#ff0000>← 進行が%で表示される</font></pre>

<pre># gmirror status
　   Name         Status   Components
  gmirror/gm0   COMPLETE      ad2
　　　　　　　　　　　　　　 ad0</pre>]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001804.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001804.html</guid>
         <category>FreeBSD</category>
         <pubDate>Thu, 26 Feb 2009 20:49:25 +0900</pubDate>
      </item>
            <item>
         <title>FreeBSDでRAID1(mirror)の設定</title>
         <description><![CDATA[災害は忘れた頃にやってくる。24H運転のサーバを運営していると、何時か突然にHDDの故障に見舞われる。そのために、2台のサーバで真夜中にお互いのデーター領域をBackupするようにしているが、最悪故障前24時間のデータは失われるし、なによりもHDDを交換して、再度サーバを立ち上げ直すのは簡単な仕事ではない。優に１日ぐらいは必要である。

そこで、HDDをミラー構成にして突然の事故に備えることにした。
FreeBSDではgmirrorというソフトウェアミラーが備わっているので、これを用いる。
まず、空いているPCを用いてトライアルすることにし、以下はその記録である。

1. 準備
<blockquote>FreeBSD releaseの最新版である7.1版の7.1-RELEASE-i386-disc1.isoと7.1-RELEASE-i386-livefs.isoをダウンロードし、どちらもCDRを作成しておく。
実験用に用意したPCには2台のHDDを入れ、ad0(40GB)とad2(160GB)となっていて、ad0にはFreeBSD-7.1を普通にインストールしておいた。なお、DVDがacd1に割り付けられている。</blockquote>

2. gmirrorの設定
<blockquote>普通はLivefs CDで起動するが、テストに用いたPCでは何故か起動できなかったので、インストールCDで起動して、以下に示すように進めた。</blockquote>

<blockquote>(1) FreeBSDのインストールディスクで起動し、国の選択でJapanを選び、キーボードのコードはJapanese 106を選ぶ。ここで英文でも良いと思ってUSAのまま進めると、キーボードが日本語キーボードのとき、記号の配置が違い苦労する。</blockquote>

<img alt="mirror_01.jpg" src="http://uls.fam.cx/freebsd/archives/mirror_01.jpg" width="512" height="350" />

<img alt="mirror_02.jpg" src="http://uls.fam.cx/freebsd/archives/mirror_02.jpg" width="512" height="276" />

<blockquote>(2) キーボードを選んで現れる画面で、
Fixit: Repair mode with CDROM/DVD/Floppy or start shellを選択する。</blockquote>

<img alt="mirror_03.jpg" src="http://uls.fam.cx/freebsd/archives/mirror_03.jpg" width="512" height="275" />

<blockquote>(3) 現れた画面で、
CDROM/DVD：Use the "live" filesystem CDROM/DVD を選ぶ。</blockquote>

<img alt="mirror_04.jpg" src="http://uls.fam.cx/freebsd/archives/mirror_04.jpg" width="512" height="193" />

<blockquote>(4) Please insert a FreeBSD live filesystem CD/DVD and press return のメッセージがでたら、CDをFreBSD Live CD に交換してReturnを押す。</blockquote>

<img alt="mirror_05.jpg" src="http://uls.fam.cx/freebsd/archives/mirror_05.jpg" width="512" height="193" />

3. 設定
<blockquote># Fixitのプロンプトが表示されるので、下記のように設定する。
IDEではad0, ad2のようにprimaryとsecoondaryのMaster接続がよく、sataではad4, ad6がよい。dmesgでドライブ名を調べておくとよい。
なお、ミラーの形式のround-robinは負荷分散の方式の1つである。他にも幾つかの種類があるが、round-robinが最もポピュラーらしい。</blockquote>

<pre># chroot /dist
# kldload geom_mirror　　　　　　　　　　 <font color=#ff0000>← gmirrorのload</font>
# exit
# gmirror label -b round-robin gm0 ad0　<font color=#ff0000>← round-robinでmirrorを構成</font></pre> 

下記のメッセージが表示される。
<pre>Metadata value stored ad0.
Done.</pre> 

Statusを表示してみると、下記のように表示されmirror機能が出来ている。
<pre># gmirror status
　Name         Status   Components
  mirror/gm0  COMPLETE    gm0.</pre>

出来たミラーディスクを/mntにマウントしてfstabを書き換える。
sedの替わりに、eeで/mnt/etc/fstabを編集して/dev/ad4s1a → /dev/mirror/gm0s1aのように全ての　ad4をmirror/gm0に変更しても良い。なお、viはtemporary file領域がいるので使用不可。
<pre># mount /dev/mirror/gm0s1a /mnt
# sed -i bak s/ad0/mirror\\/gm0/ /mnt/etc/fstab/</pre>

geom_mirrorの読み込みを/boot/loader.confに設定し、/etc/rc.confも修正。
これは、eeを使った方が楽かもしれない。
<pre>echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
echo 'swapoff="YES"' >> /mnt/etc/rc.conf</pre>

CDRを抜いて、再起動する。立ち上がったらroot権限でad2を組み込む。
<pre># gmirror insert gmo ad2　　 <font color=#ff0000>← ad2の組み込み</font></pre>

これで、同期化が始まる、statusを見ると、
<pre># gmirror status
　　　Name　　　　　Status　　Components
　　mirror/gm0　　DEGRADED　　　 ad0
　　　　　　　　　　　　　　　　　 ad2(2%)</pre>

30分ほどでad2(100%)になりミラー構成は完了した。
<pre># gmirror status
      Name          Status   Components
   mirror/gm0     COMPLETE      ad0
　　　　　　　　　　　　　　　ad2</pre>

3. 状態の監視
<blockquote>ミラーで動作させていると、1台のHDDが故障してもサーバの動作は続行するが、1台が故障した時点で対処しないと、ミラーにしている意味がない。
このために、/etc/defaults/periodic.confを編集してミラーの状態を毎日メールで知らせてもらうようにする。

下記のようにDaily check項目の406番が"NO"になっているのを"YES"に変える。</blockquote>

<pre># 406.status-gmirror
daily_status_gmirror_enable="<font color=#ff0000>YES</font>"                # Check gmirror(8)</pre>

<blockquote>これで、毎日のdaily checkメールにgmirror statusの情報が載る。</blockquote>
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001802.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001802.html</guid>
         <category>FreeBSD</category>
         <pubDate>Wed, 25 Feb 2009 21:32:21 +0900</pubDate>
      </item>
            <item>
         <title>ubuntuのインストル後の設定</title>
         <description><![CDATA[ubuntuのインストールは比較的簡単に終わることができたが、DellのInspiron Mini 9はHDDレスで、Flash Memoryを使ったSSDであるため、設定もしくは修整を行う方が好ましいことがある。以下に設定した内容を記す。

(1) Swapの停止
<blockquote>SSDのFlash Memoryは書き込み回数の寿命が10万回から50万回と言われており、不要な書き込みは行わないようにしたい。RAMは2GBに交換したので、Swapの必要性もない。
インストール時にSwap領域を確保しなければ良かったのだが、自動で割り振ったため、Swapを行うようになってしまっている。
そこで、/etc/fstabを編集してSwap領域のマウントの行頭に#を付けてコメントアウトする。

# /dev/sda5
#UUID=0da6389d-3ed9-4378-887d-fff480f52ba4 none     swap    sw    0    0 

これで、rebootすれば、SWapはなされない。
</blockquote>(2) FirefoxのCacheもRAM diskを作って使用する。
<blockquote>まず、RAM diskをマウントするディレクトリーを作る。
 # mkdir /media/ramdisk

そして、fstabに下記の行を追加するとRAM diskが確保される。size=64mは64MB確保することを示す。

/dev/shm	/media/ramdisk	tmpfs　　size=64m	0	0

そして
# sudo mount -a
とすると、RAM diskがマウントされるので、Firefoxを起動して、アドレス欄に「about:config」と入力。
動作保証対象外になります！と警告文が表示され[細心の注意を払って使用する]と書かれたボタンが現れるので、クリックして「新規作成」→「文字列」を選択し、それぞれ次のように設定する。

設定名：「browser.cache.disk.parent_directory」
値：「/media/ramdisk」

設定後はFireFoxを再起動して、完了する。</blockquote>
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001766.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001766.html</guid>
         <category>ubuntu</category>
         <pubDate>Sat, 31 Jan 2009 18:05:27 +0900</pubDate>
      </item>
            <item>
         <title>ubuntu(ちょっと浮気です)インストール</title>
         <description><![CDATA[最近、FreeBSDで書くことが無くなってきて、更新が滞っていた。

ところで、最近Net  Noteと称する小型で安価なNote PCがASUS、HP、Dellなどから販売されたので、遊び道具にとDellのInspiron Mini 9を買ってしまった。4GBのSSDと512MBのRAMの一番安いモデルで39,480円であった。
やはり、メモリーとSSDは多くしたいと、Transcendの2GB(Transcend SODIMM DDR2 PC2-5300 2GB)とBUFFALOの32GBのSSDを買って交換した。

Mini 9はCDROMやDVDのドライブが付いていないので、USB接続の外付けのドライブを買ってきて、インストールすれば楽なのだが、インストールするためのみに外付けのCDROMドライブを買うのも能の無い話しなので、USBメモリーからインストールすることにした。以下はその手順である。

1. 準備
<blockquote>準備は普段使っているWindows XPが乗っているデスクトップPCを使った。

(1) ubuntuは<a href="http://www.ubuntulinux.jp/">ubuntu Japanese Team</a>のページから日本語版の最新の8.10のiso imageをダウンロード。

(2) インストール用のUSBメモリー作成ツールとして、<a href="http://unetbootin.sourceforge.net/">unetbootin</a>をダウンロード

(3) unetbootinはインストールする必要もなく、ダウンロードしたものを、そのままダブルクリックで起動。</blockquote>

<img alt="unetbootin.jpg" src="http://uls.fam.cx/freebsd/archives/unetbootin.jpg" width="500" />

<blockquote>a. Distributionでubuntuで8.10Liveを選択。
b. DiskimageでISOを選び、isoimageの場所を選択。
c. 最下段のTypeでUSB Driveを選び、Drive名が目的の
　USBメモリーであることを確認。</blockquote>
OKボタンを押すと、進行状況の表示画面になり、数分で終了する。

(4) USBメモリーのファイルに以下の修正が必要

<blockquote>a. USBメモリを開いて、「syslinux.cfg」という
　ファイル名称を、「syslinux.backup」と変更。
b. isolinuxフォルダに移動し、この中の「isolinux.cfg」ファイル
　の名称を、「syslinux.cfg」に変更。
c. 一番上のフォルダに移動して、「isolinux」フォルダの名称を
　「syslinux」に変更。</blockquote></blockquote>

2. インストール
<blockquote>インストールが終わっても、無線LANは修正が必要とのことであるので、有線のLANケーブルを接続しておく。そして、出来上がったUSBメモリーをMini 9に挿し、Power ONして"0"キーをチョンチョンと押し続けるとブートの選択画面が出るので、USBを選択してEnterキーを押すと、インストール画面になる。後はCDからのインストールと同じである。ubuntu以外にWindowsなどを入れる積りはないので、32GBのSSDを全部使用にしてインスートルを行った。</blockquote>

3. 修正作業
<blockquote>既知の問題として、無線LANとスピーカーから音が出ないことの修正を行う。

(1) 無線LAN
システム→システム管理→Synapticパッケージマネージャー と進んで
linux-backports-modules-intrepidをインストール。
なお、ubuntu Japanese Teamは問題を把握していたが、リリースのパッケージに修正版を入れられなかったようなので、次回リリースでは解決すると思われる。

(2) 音源ドライバー
/etc/modprobe.d内にあるalsa-baseを修正する。

「端末」を立ち上げ、
　　sudo gedit /etc/modprobe.d/alsa-base

　設定ファイルが立ちあがるので、一行を追加</blockquote>
<pre>　　options snd-usb-usx2y index=-2
　　options snd-usb-caiaq index=-2
　　<font color=#ff0000>options snd-hda-intel model=dell</font> ←ここに、この一行を追加！
　　# Ubuntu #62691, enable MPU for snd-cmipci
　　options snd-cmipci mpu_port=0x330 fm_port=0x388</pre>

<blockquote>保存して終了する。
Mini 9の有線LANケーブルを外して再起動。今度は無線LANが働くので、自分の無線LANのアクセスポイント名を選んでPassword Phraseを入れ接続する。</blockquote>
<img alt="mini9.jpg" src="http://uls.fam.cx/freebsd/archives/mini9.jpg" width="500" height="450" />
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001743.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001743.html</guid>
         <category>ubuntu</category>
         <pubDate>Mon, 12 Jan 2009 17:09:17 +0900</pubDate>
      </item>
            <item>
         <title>VMwareでFreeBSD 7.0を動かす</title>
         <description><![CDATA[サーバを7.0-RELEASEにしたので、Desk Topで使っているWindows XPマシンで動かしているVMware内のFreeBSDも7.0-RELEASEに変えた。

インストールは問題なく終わったが、以前に期間限定版のVMware Serverから抽出したVMware-Toolsをインストールしたら最後の方でエラーになった。
しかたがないので、vmware-tools-distribのbinディレクトリー内にあるvmware-uninstall-tools.plを使ってuninstallした。

幸い、portsにvmmouse driverがあるのでこれをインストール。
<pre>
# cd /usr/ports/x11-drivers/xf86-input-vmmouse
# make install clean</pre>
そして、xorg.confでmouse driverをvmmouseに変更。
<pre>
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "vmmouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection</pre>

次に、日本語入力の設定を行う。
長い間、cannaを入れてkinput2で入力変換を使っていたが、最近ではscimの方が高性能としてこれを使うのが一般化しているらしい。そこでpackageから
ja-anthy-9100C、ja-scim-anthy-1.2.4を入れる。

そしてhome directoryの.xinitrcの最後に次を付ける。
<pre>
LANG=ja_JP.eucJP; export LANG
LC_CTYPE=ja_JP.eucJP; export LC_CTYPE
XMODIFIERS=@im=SCIM;  export XMODIFIERS
GTK_IM_MODULE=scim;  export GTK_IM_MODULE
QT_IM_MODULE=scim;  export QT_IM_MODULE
scim -d &
exec startkde</pre>
Xwindowを立ち上げて、scimを起動するには、CTL-Spaceで行う。画面の左下に下図のようなMS IMEに似た表示が出る。
<img alt="scim.png" src="http://uls.fam.cx/freebsd/archives/scim.png" width="204" height="30" />
日本語とアルファベット入力の切り替えは[半角/全角・漢字]ボタンで行う。これもWindowsと同じで使いやすい。
なるほど、変換効率も良く、これなら文章を書いても良い。このブログもこれで書いている。

なお、[CTL-Shift]で言語圏を切り替えられるが、使う必要はないだろう。
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001500.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001500.html</guid>
         <category>FreeBSD</category>
         <pubDate>Sat, 05 Jul 2008 09:29:28 +0900</pubDate>
      </item>
            <item>
         <title>BIND 9.3.4 (DNSサーバ)</title>
         <description><![CDATA[FreeBSDの6.3で添付のbindが9.3.4になった。もちろん、7.0-RELEASEもbindは9.3.4だ。
大きな特徴は、named.confで外向きと内向きの記述を書き分けられるようになったことだ。外向きは必要ないので、内向きのみ作ったnamed.confと合わせて正逆zoneファイルの例を下記に示しておく。

1.named.conf
<pre>options {
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";

        forwarders {
            210.188.224.10;
        };
};

view "internal" {
        match-clients { 192.168.1.0/24; 127.0.0.0/8; };
        recursion yes;

zone "." {
        type hint;
        file "named.root";
        };

zone "localhost" {
        type master;
        file "master/localhost.zone";
        };

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "master/localhost.rev";
        };


zone "fam.cx" {
        type master;
        file "slave/canal.zone";
        allow-update { none; };
        };

zone "1.168.192.in-addr.arpa" {
        type master;
        file "slave/canal.rev";
        allow-update { none; };
        };
};</pre>

2. localhost.zone
<pre>$TTL    86400
@             IN      SOA   uls.fam.cx.  root.uls.fam.cx.(
                                2005071701      ; Serial
                                3600            ; Refresh
                                900             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
              IN      NS    uls.fam.cx.
localhost.    IN      A     127.0.0.1</pre>

3. localhost.rev
<pre>$TTL    86400
@             IN      SOA   uls.fam.cx.  root.uls.fam.cx.(
                                2005071701      ; Serial
                                3600            ; Refresh
                                900             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
              IN      NS    uls.fam.cx.
1             IN      PTR   localhost.</pre>

4. 正引きzone file(canal.zone)
<pre>$TTL 3600       ; 1 hour
@             IN      SOA   uls.fam.cx.  root.uls.fam.cx.(
                                2006121601 ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                3600000    ; expire (5 weeks 6 days 16 hours)
                                3600       ; minimum (1 hour)
                                )
               IN       NS      uls.fam.cx.
               IN       MX      10 uls.fam.cx.
uls            IN       A       192.168.1.5
www            IN       CNAME   uls
ftp            IN       CNAME   uls</pre>

5. 逆引きzone file(icanal.rev)
<pre>$TTL 3600       ; 1 hour
@             IN      SOA   uls.fam.cx.  root.uls.fm.cx.(
                                2006121602 ; serial
                                10800      ; refresh (3 hours)
                                900        ; retry (15 minutes)
                                3600000    ; expire (5 weeks 6 days 16 hours)
                                3600       ; minimum (1 hour)
                                )
                        IN NS   uls.fam.cx.
5                       IN PTR  uls.fam.cx.</pre>
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001444.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001444.html</guid>
         <category>FreeBSD</category>
         <pubDate>Sat, 24 May 2008 11:01:29 +0900</pubDate>
      </item>
            <item>
         <title>FreeBSD 7.0とMysql</title>
         <description><![CDATA[サーバを2台動かしているが、最近はただ動かしているだけで、弄り回す興味をなくしていた。ところが、ディスクが壊れて、1台のサーバがあえなくダウン。
スペアーのサーバを立ち上げるべくRELEASE-6.2のCDを入れて立ち上げ、便利なツール類をftp接続してpackageで入れようとするが、packageがないとのメッセージ。
別途FreeBSDのftpサイトにアクセスして調べたら、FreeBSDは6.3に加えて7.0がリリースされていた。最初6.3を入れたのだが、7.0の性能改善がすばらしいと言う記事があり、自信作のようなので7.0-RELEASEを入れた。
isoイメージのdisc1のみダウンロードしてCDRを作成して基本のみ入れた後に、ftpでports、packageなどを入れて、環境を整えた。方法は6.xと何も変わらない。

mysqlもportsからmysql51-serverとmysql51-clientを入れた。

<pre># cd /usr/ports/databases/mysql51-server
# make WITH_CHARSET=ujis WITH_XCHARSET=all install clean
# cd ../mysql51-client
# make WITH_CHARSET=ujis WITH_XCHARSET=all install clean</pre>

ここで、mysql51-clientを入れたとき、最後にmysql51-clientは既にあるとのメッセージが出てエラーになる。
ここで、make deinstallしてやり直すのが重要らしい。

<pre># make deinstall
# make WITH_CHARSET=ujis WITH_XCHARSET=all install clean</pre>

以前に、portsで入れて文字コードがujisにならず、sourceからコンパイルしたことがあったが、このdeinstallしてinstallし直すことをしなかったのが敗因のようだ(確かめたわけではないが)。
入れた以降の設定は以前と同じなので<a href="http://uls.fam.cx/freebsd/archives/000142.html">そちらを参照</a>願いたい。
php5もportsからで問題なし。
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001440.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001440.html</guid>
         <category>Database</category>
         <pubDate>Wed, 21 May 2008 22:06:47 +0900</pubDate>
      </item>
            <item>
         <title>Movabletypeの3.25から3.35へのUpdate</title>
         <description><![CDATA[MovabletypeはMT4が出て賑やかだが、大幅なUpdateで従来細工していた内容を入れ込むのは大変だし、デザインなども用意されているのを選んで使う場合は便利であるが、自分でデザインするのはかえって不便にも感じられた。もちろん慣れの問題であろうが。

3.25に加えて、修正したのはMT/tmpl/cms/upload.tmplで、アップロードしたときに格納するデフォルトのディレクトリーを入れたことぐらいである。

<pre><input name="extra_path" id="extra_path" value="archives"/></pre>

value="archives"を追加した。
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/001241.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/001241.html</guid>
         <category>Movabletype</category>
         <pubDate>Tue, 22 Jan 2008 21:03:45 +0900</pubDate>
      </item>
            <item>
         <title>コメントスパム攻撃</title>
         <description><![CDATA[<strong>1. 状況</strong>

攻撃、そう正に攻撃です。

昨年暮れに、HDDがおかしくなり、大急ぎで新しいHDDでサーバを立て直し、やれやれと安心していたら、年が明けてしばらくしてから、どうも調子が悪い。
日に２〜３回、外からWebページにアクセスしても無応答で、サーバがダウンしたかと思っていると１時間ぐらいで回復することが繰り返されていた。　最初のうちは、外からアクセスするばあいのproxy serverがbusyかなにかだろうと思っていたが、どうもそうでは無いらしいと気づいた。　が、しばらくすると回復するので忙しさにもかまけて放っておいたが、終に我慢の限界に達して、本格的に調べる決心をして待ち構えていた。

そして、それは起こった。　HDDのアクセスランプは点きっぱなしでなにやら激しくアクセスしている音が聞こえる。
早速、ログインしてtopでプロセスを見ようとしたが、ログインも出来ない。　pingには応答する。
以前にDOS攻撃やられたこともあり、とにかく、何かの攻撃らしいとみて、LANケーブルを抜いて、Localでログインしようとするが、一向に回復しない。　30分ぐらい経過して何とかログインできてtopコマンドを打って驚いた。
wwwが起動するperlプロセスのオンパレードで、まだキューに３５０ほど溜まっている。
もちろん、メモリーは全部食いつぶされて、HDDのswapを使って必死に実行しようとしているのだ。

<strong>2. 対策</strong>

ここで、ブログに対するコメントスパムの攻撃だろうと気づいたが、どう対策するか考える必要に迫られた。
MTに対するコメントスパムに対する対策はネットで調べると、沢山引っかかり、日本語文字の含まれていないコメントはリジェクトするとか、コメントの投稿formにhidden属性でキーワードを仕込んでおき、それをチェックすることで、ちゃんと投稿欄に書き込んだかをみるなどの方法が書かれている。

これらは有効な方法で過去には見事にスパムを撃退することも出来たが、今回はこれらは役に立たない。
何故なら、以前に取った対策は有効に機能していて、まったくコメントの投稿を防いでいるのだが、あまりのも激しい攻撃で、コメントの妥当性をチェックするに要する時間より短い間隔での攻撃だからだ。
ログを見ると１秒間に30回ぐらいの攻撃が延々と続く。

最初に思いつくのはコメント処理のcgiのファイル名を変えることであるが、ネットで調べると１週間ぐらいしか持たないらしい。　たしかにブログページを解析すれば、直ぐにcgiの新しいファイル名は知れるのだから、そうかも知れない。　１週間に１回の割合でファイル名を変え、mt-config.cgiのScript名を、それに直してすべてのブログを再構築するなどやっていられないですよね。

ここで、見つけたのが、
<a href="http://blog.thought-mesh.net/solidwallofcode/movable_type/mt_32_junk_slow.php">Junk Slowdown</a>というページです。
mt-comment.cgiの名前を変えると同時にmt-comment.cgiにアクセスしてきたら.htaccessのredirect機能で別のところに飛ばし、受け付けない旨のメッセージを返し、また30秒のDelayを入れることだ。

具体的に方法は、
(1) Movabletypeがインストールされているディレクトリーの.htaccessに次の2行を追加
<pre>RewriteEngine on
RewriteRule ^(mt-comments|mt-tb|mt-comcom|mt-tbtb)\.cgi$ /xyz/sand-trap.php [LAST]</pre>
/xyz/sand-trap.phpは、飛ばし先である。
(2) comments.cgiとmt-tb.cgiの名前を変更
ここでは、comments.cgi → mt-koment.cgi,  mt-tb.cgi → mt-back.cgi として例示する。
mt-config.cgiのコメントとトラックバックのScriptを変更。 もし、コメントとトラックバックに関するScript指定の記述がmt-config.cgiに無ければ、下記の2行を追加する。
<pre>CommentScript mt-koment.cgi
TrackbackScript mt-back.cgi</pre>
そして、<strong>全てのブログページを再構築</strong>。
(3) sand-trap.phpを作って　/xyz/ディレクトリーに入れる。　もちろん、phpの実行環境がない場合は、perlで記述してもよい。　下記はphpの例である。
<pre><body>

<div style="font-size:200%;
            text-align:center;
            background:#822;
            color:white;
            border:2px solid red;
            padding:1ex;
            margin-bottom:1ex;
            ">
Sand Trap
</div>

<p style="border:2px solid red;
          padding:1ex;
          ">
You have been redirected to this script because
you have used an obsolete resource to which
no references exist on this website. This makes
you presumably a junker, and therefore your
session has been bogged down with this webpage.
</p>

<?php
ob_flush();
flush();
sleep(30);
?>

<p style="text-align:center;
          border:2px solid red;
          padding:1ex;
          margin-top:1ex;
          ">
If you are going to abuse me, I will abuse you right back.
</p>

</body></pre>

適用したら、効果テキメン。　やっとサーバを安定稼動状態に保つことができた。
どうも、スパム対策は、妥当性のチェックの精度を上げることに血道をあげてもダメで、DOS攻撃ライクの集中攻撃に対する対策を考える必要の段階にきたようだ。
今回の方法も破られる時がくるのではと心配である。　次の対策もいまから策を練っておく必要がありそうだ。
]]></description>
         <link>http://uls.fam.cx/freebsd/archives/000596.html</link>
         <guid>http://uls.fam.cx/freebsd/archives/000596.html</guid>
         <category>Movabletype</category>
         <pubDate>Sat, 10 Feb 2007 21:46:42 +0900</pubDate>
      </item>
      
   </channel>
</rss>
