読者です 読者をやめる 読者になる 読者になる

LinuxでWindowsのシンクライアント的なPCを作る

Windows Linux Ubuntu

Ubuntu Server 12.04 LTSにいくつかの変更を加えてWindows 8 Proにリモートデスクトップ接続することでシンクライアント的に使用してみます。
Ubuntu Serverは余計なものが入ってなさそうなので少しスペックの低いものでも動いてくれそうな気がしたので。

実機はPentiumM 1.6GHzでメモリ512MBのWindowsXPが動いていたノートパソコンですが、今回は実験としてVMware上に仮想マシンを用意しました。

2014/04/04追記

////ココカラ
→PentiumMの一部ではPAEをサポートしていないため、Ubuntuの12.04以降は直接インストールできません。 LinuxでWindowsのシンクライアント的なPCを実機で作ったで回避方法を書いています。
////ココマデ

接続先のWindows 8 Proを動かしているマシンは自分が普段Windows 7からリモートデスクトップ接続しているThinkPad X200
いままで役員が来たときに使っていたWindowsXPのノートパソコンがサポート期限切れで使えなくなるのでWindows 8 Proマシンに接続するためだけのマシンとして利用することを目指します。

以下メモ
Windows側の設定と仮想マシンに最小構成でUbuntu Serverをインストールするのは省略して、キーボードが英語として認識されていたので日本語キーボードとして認識させます。

# dpkg-reconfigure keyboard-configuration

"generic 105key (Intl) PC"→"japan"と選択後は適当に選択しても大丈夫なはずです。
プロンプトに返ってくると日本語キーボードとして動作します。

次に軽量と言われているLXDEを入れてGUI環境で操作できるようにします。一応リモートでも管理できるようsshも突っ込んでおきました。

# apt-get install xorg lxde lxdm ssh

再起動するとグラフィカルログインができるようになります。

実験ということもあり、ログインが面倒なのでlxdmの設定で自動ログインを設定しました。

# nano -w /etc/lxdm/defautl.conf
[base]
autologin = %ユーザー名%

再起動させてみると自動的にログインしてくれます。

Windowsに接続するためにrdesktopをインストールします。

# apt-get install rdesktop

続いてrdesktopでWindowsに接続するシェルスクリプトを書きます。

# touch ./rdesk.sh
# nano -w ./rdesk.sh
# chmod +x ./rdesk.sh
#/bin/sh
rdesktop -a 16 -f -D -x l -z -k ja -u %ユーザー名% -p %パスワード% %IPアドレス%

実験で接続したときにまたキーボードが英語として認識されやがったので-kオプションでキーボードは日本語だと認識させています。

シェルスクリプトで接続できることが確認できたらスタートアップに登録します。

# lxshortcut -o .config/autostart/rdesk.desktop

コマンドの部分にブラウズなりなんなりでrdesk.shを登録します。
これで電源を入れれば自動でlxdeにログインして自動でWindowsにログインされます。

さて、RDPを切断した後にLinuxをシャットダウンさせないといけないわけですが、役員にシャットダウン方法を教えるのも面倒なので勝手にシャットダウンするようにします。
sudoでshutdownコマンドを実行するときにはパスワードを要求しないようにして、

# visudo
%ユーザー名% ALL=(ALL) PASSWD: ALL, NOPASSWD: /sbin/shutdown

さらに、先ほどのrdesk.shのrdesktopの行の次にシャットダウンのコマンドを追加します。

# nano -w ./rdesk.sh
#/bin/sh
rdesktop -a 16 -f -D -x l -z -k ja -u %ユーザー名% -p %パスワード% %IPアドレス%
sudo shutdown -h now

こうしておくと、RDPが切断されるとLinuxにシャットダウンが走ってノートパソコンは電源が切れます。

これでLinuxが使えなくてもLinuxマシンでWindowsを操作できるようになりました。
セキュリティ的にどうなのよって部分もあるので、実機で構築するときにはどこかでユーザー認証だけでもさせるようにしないといけませんね。