ラベル vnc の投稿を表示しています。 すべての投稿を表示
ラベル vnc の投稿を表示しています。 すべての投稿を表示

2015/08/15

lxcのlxdeをvncする

前回はlxcで仮想ubuntuを立ち上げてみるところまでやってみた。IPアドレスもdnsmasqで名前解決できるようになった。
そこで思い立ったのが、ホストの環境を汚さずに、デスクトップ環境のためのコンテナを作って、そこへ外部からVNC接続してみようかなと。飽きたらポイっとまるごと捨てればいいし。

lxcクローン
$ lxc-clone master ubu01

なにか構築したいなって時にすぐ始められるように、予め必要最低限のことを終わらせてあるubuntuコンテナをmasterとして作っておいて、lxc-cloneする。

起動
$ lxc-start -n ubu01 -d

sshログイン
$ ssh ubuntu@ubu01

lxdeインストール
$ sudo apt-get install lxde

ubuntu-desktopじゃなくてlxde。メモリもディスクも少ないShuttleではlxdeの方が小さくてよい。
それでも500MB位は消費してしまうが。

vncserver インストール
$ sudo apt-get install vnc4server

他にも色々VNCサーバーはあるようだけれど、扱いが簡単なvnc4server。

~/.vnc/xstartup作成 (っていうか、デフォルトをリンクしておくだけ)
$ mkdir ~/.vnc
$ ln -s /etc/X11/Xsession ~/.vnc/xstartup

vncserver起動(vncserverでもvnc4serverでもいっしょ)
$ vncserver :0

最初の起動時には、xauthのパスワード設定を要求してきます。適当に設定。
vncが 5900 で待ち受け状態になりました。


ホストの5900ポートを ubu01:5900 へルーティングする
(ホスト側で)
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 5900 -j DNAT --to ubu01:5900

ホストとコンテナ間でのプライベートネットワークへ外部からアクセスできるようにするのに
一番お手軽な方法。

そしたら、外からホストの5900へVNC接続するとubu01:5900へルーティングされて、
めでたくlxdeのデスクトップへ到達します。

日本語化!

忘れてました。いつも端末ばっかりだったので、GUIには日本語化ってのがありました。
そもそも lxc で作った ubuntuコンテナってロケールがen_US.UTF-8だし・・・そこからか。

日本語フォント インストール(IPA入れとけばいいっしょ)
$ sudo apt-get install fonts-ipafont

とりあえずフォントさえ入れれば、lxdeで日本語が表示されます。

日本語パッケージインストール
$ sudo apt-get install language-pack-ja

ロケール設定
$ sudo update-locale LANG=ja_JP.UTF-8

/etc/default/localeに書き込まれる。が、今のシェルの環境変数はen_US.UTF-8のままです。

インプットメソッド
$ sudo apt-get install ibus-anthy

mozcの方が評判いいらしいが、自分にはぴんとこなかった。
ibusじゃなくてfcitxか?とも思って入れてみたけど、??な感じ。ibus-anthyで十分っす。

タイムゾーン変更(日本語化というより日本時間でってだけだけど)
$ sudo dpkg-reconfigure tzdata

CUIメニュー操作でAsiaからTokyo選ぶ

ここまでやったら、一度コンテナを再起動したほうが良い。環境変数とか変わるんで。
(ホストでリブート)
$ lxc-stop -n ubu01 -r

そしたら改めてコンテナ上で vncserver を起動して、そとからVNC接続すると lxdeデスクトップ自体も日本語表示になって、IMもibusで動いている状態に。


後処理
$ sudo iptables -t nat -D PREROUTING 1

遊び終わったら、DNAT設定を消しておこう。
コンテナも終わらせるか、vncserverを $ vncserver -kill :0 しておこう。
油断していると外から潜り込まれちゃうのでね。


2012/05/26

wavecast-01 省力化とか#2

省力化(無駄を省く)第2弾

gdm+X+Gnomeを殺し、CUI環境にする

自分も最初はRun Levelを操作すればいいんだよねって思って調べていったら、UbuntuのRunLevel操作でgdmなしにするのって何やらGRUBの設定を編集して update-grub
するってことらしいのだ。で、いろんな記事で書いてある通り編集してみてから
$ sudo update-grub
ってやったら、なんと、Illegal instructionってエラーになるじゃないですか。
編集内容元に戻してもおんなじ。なんで〜?

ということで、さっさとその方法をあきらめて、いいのを見つけました。

Disable GDM at System Boot (Ubuntu 10.10 Maverick)
ここに大変シンプルに解決する方法が!
自分も立ち上げようとしているところを全部コメントアウトしちゃえばいいんじゃね?
って思っていたので、このソリューションはとっても自分向きで好きです。

英語ページですが、簡単に日本語にすると
/etc/init/gdm.confの中で
    start on (filesystem
    and started dbus                                                                                                      
    and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
    or stopped udevtrigger))                    
というところを
    #start on (filesystem
    #          and started dubs
    #          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
    #               or stopped udevtrigger))
ってコメントアウト。こんだけ。

起動時にubuntuのスプラッシュは出ちゃうんだけど、XorgやらGnomeやらが起動せず
懐かしのコンソールプロンプトが出て、きれいにCUI環境になりました。
稼働プロセスが約220 => 145に減って、消費メモリも560MB=>330MBに減りました。
(リブート直後調べ)

VNCサーバーどうしようかな

上記の設定でもvnc-server(vino-server)がデーモン起動してるんで、外からVNC接続すると勝手にGnomeが立ち上がってリモートデスクトップが出来る。というか出来てしまう。
これも無駄と言えば無駄なんで、オフにしておこうかなと思って、
sysv-rc-confをインストールしてデーモン起動設定しようとしたら、そのリストの中にvino-serverが見当たらない。違う名前なのかな?よくわからないんで、普通に
デスクトップのシステムメニューから設定ー>自動起動するアプリケーションを選んで
リモートデスクトップのチェックを外す。

これで次回から起動しない事は確認したけど、たまに使いたいときがあるかも?と
結局今のところ、VNCサーバーは生かす事にしました。

そうそう、私のPC環境はiMacなので「サーバーに接続」でvnc://。。。ってやると本来はVNC接続が出来るんだけど暗号化を切れないのでWavecastには使えない。
(まあ色々設定直せば使えるように出来るんだろうけど)
なので、Chiken of the VNCを使用しています。これが一番らくちんですね。