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フォワードの場合は、動きが多い画面の場合はだいぶカクカクします。
予想以上にリモートデスクトップのパフォーマンスにビックリしました。