アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Debianを使ってシンクライアントっぽいものを作ってみました

この間、開発に使用していたWindows機(Thinkpad T23)のHDDが異音を発してお亡くなりになりました。
カッコン・・・カッコン・・・カッ・・カッ・・・カツン。
となって、何かアクセスしようとするとブルーバックになってしまいました。

こうなれば当然再起動しても無駄、HDD交換しか直す方法はありませんが、当然IDE2.5inなんて予備があるわけもなく、新品HDDを買って復活させるほど価値があるわけでも無いので、机の上に放置していました。

先日、プロジェクトの表示テストのため、リモートデスクトップWindowsにつないでIEのテストをしていましたが、
ひたすら、IE開く->確認->手直し->確認->ローカルのFireFox開く->確認・・・
仮想デスクトップ使っても切り替えが面倒なので、もう一つ画面がほしい。
リモートデスクトップが動く程度のマシンを探してまわりを見渡すと、壊れたThinkPadがふと目に入り、

「たかがハードディスクがやられただけだ!」

と台詞が浮かんできたので、これを使うことにしました。

さて、ハードディスクがやられた程度のThinkPadですが、割と致命的なところがやられています。
メインカメラの比ではありません。
むしろ足がなくなったようなものですが、

「あんなの飾りです!偉い人にはそれがわからんのですよ!」
要は、足の代わりにスラスターを使うと。

ということで、代用品を考えます。
ただし、お金はかけたくないということで自然と、

・ネットワークブート
・LiveCD
USBメモリにインストール
辺りになります。

・ネットワークブート -> DHCPの設定が必要なので、面倒+間違えると危険
・LiveCD -> メモリが128MBしか無いので、軽量化が必要なため面倒
USBメモリにインストール -> Debianからはscsiバイスとして見えるので、インストールは簡単、カスタマイズも簡単。

ということで、USBメモリのインストールを選択。


インストールは普通に、

まずUSBメモリをさします
lennyのCDを入れてます。
普通に最小インストールします。(ただし遅い)
 (゚д゚)ウマー

以上。

あとは細々とカスタマイズしていきます。
リモートデスクトップが使える程度のパッケージをインストールし、
synergyを入れて入力デバイスを共通化します。

インストール中のPC(命名:thinkpad)

マシン名設定


# hostname thinkpad
# echo thinkpad > /etc/hostname


sshのインストール


# apt-get install ssh


ネットワークの設定(/etc/network/interfaces)


auto eth0
iface eth0 inet static
address 192.168.xxx.xxx
network 192.168.yyy.yyy
netmask 255.255.255.0
gateway 192.168.yyy.yyy


(以下、sshで作業)

Xのインストール


# apt-get install xserver-xorg


rdesktopのインストール


# apt-get install rdesktop


synergyのインストール


# apt-get install synergy


起動スクリプトの準備


#!/bin/sh

if [ -z `pidof X` ]
then
  X  &
  sleep 8
fi
export DISPLAY=:0
kill -KILL `pidof synergyc`
synergyc 192.168.xxx.xxx    # メインPCのアドレス
rdesktop 192.168.yyy.yyy -f -u 'hoge-domain\hogeuser' -K -k ja  &   # リモートデスクトップ接続先のWindows機とアカウントを指定


このスクリプトを /usr/local/bin/startrdesktop あたりに配置し、

/etc/rc.localに


/usr/local/bin/startrdesktop  &

を追記すれば完成です。
これで、再起動すると自動的にXとrdesktopとsynergyが立ち上がります。


次に、メインPCにてsynergys(サーバー側)の設定をします。
こんな感じのファイルをホームディレクトリに保存し、


#thinkpad -> インストール中のPC
#main -> メインPC

#使用するスクリーンを指定
section: screens
    thinkpad:
    main:
end

#配置を設定
section: links
    thinkpad:
       right = main
    main:
       left = thinkpad
end

#画面の切り替えをキーボードするための設定
section: options
  keystroke(control+alt+j) = switchInDirection(left)
  keystroke(control+alt+k) = switchInDirection(right)
end


以下のコマンドでサーバー側を起動します。


synergys --config ~/.synergy.conf

.xsession辺りにこのコマンドを追加して自動起動するようにしておけば完成。


早速、thinkpadの方を再起動します。

ブートローダーをロードが遅い。(30秒)

・・・

やっとgrubを読んだと思ったら遅い。(1分)

・・・

カーネル読み込みが遅い(30秒)

・・・

さらにinitrdの読み込みが異様に遅い(2分)

・・・

起動はまあまあ(1分)

多分、USB1.1なため遅いのかと。2.0だったらもう少し早いのかもしれません。
ですが、
出社->起動->飲み物買ってくる->一息つく
辺りでXが起動するので、起動の遅さは許容範囲です。

さらに、起動さえしてしまえばメモリ上の作業なので快適です。


結果
思いつきでインストールしてみましたが、思いのほか快適に動いています。
リモートデスクトップのレスポンスですが、WindowsXP入れていた時よりもサクサク動いている気がします。

rdesktopまで起動後はこんな感じです


hoge@thinkpad:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           122         50         72          0          4         22
-/+ buffers/cache:         23         99
Swap:          196          0        196

hoge@thinkpad:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             749M  490M  221M  69% /
tmpfs                  62M     0   62M   0% /lib/init/rw
udev                   10M  140K  9.9M   2% /dev
tmpfs                  62M     0   62M   0% /dev/shm



おまけ
・rdesktopが起動してから一定時間でログインしないとrdesktopが終了するので注意。
(-p でパスワード設定してもいいですが、セキュリティのため省略してます)

Youtube再生してみました
リモートデスクトップの場合、最大化しなければ普通に再生できます。
Xフォワードの場合は、動きが多い画面の場合はだいぶカクカクします。
予想以上にリモートデスクトップのパフォーマンスにビックリしました。