Messages in cipher reflected in the looking glass

http://blogs.sun.com/thaniwa/date/20080110 2008年 1月 10日 木曜日

(JA) Solaris Express XVM/Xen に CentOS 5.1 をインストールする

かなり久しぶりの更新です。今後もぼちぼちと更新していきたいと思います。^-^;
というのはさておき、Solaris Express(nevada) に xvm(xen) サポートが追加されて しばらく立ちますが、CentOS 5.1 のインストールをしてみたので、 そのログを残しておこうかと思います。
当初は Fedora 8 を入れてみようかと思ったのですが、 サポートされていないようで、うまくいきませんでした。

CentOS イメージの作成

Solaris Express(nevada)をxvm/xenカーネルで立ち上げた後、 ゲストOSをインストールしますが、インストール前に CentOSのインストールイメージをサーバ上に用意する必要があります。
簡単に言うと、DVD ISOの中身を展開して、 ネットワーク経由で見えるようにするだけです。 http, nfs, ftp のどれでも構いません。今回は nfs 経由(nfs_server:/export2/soft/CentOS)で見えるようにしてみました。
xvm/xen で OS イメージを作成する virt-install コマンドでは ISO イメージを直接読み込ませることが可能なんですが、 インストーラがこのイメージを認識出来ないようで、 サーバが無い場合、インストールが行えません。
ネットワーク経由で見えるようになれば、起動もそこから可能なので、 ISOイメージは不要です…。

OS イメージの作成は virt-install コマンドで行います。 オプション指定も可能ですが、 virt-install を起動すると、 設定が必要な項目を確認してくるので、それを利用するのも手です。
ここで設定しているのは

  • 仮想マシンの名前 = centos5
  • 仮想マシンのメモリ = 512MB
  • 仮想マシンのディスクイメージファイル = /export/centos5
  • ディスクイメージファイルの容量 = 4GB
  • グラフィックスを利用するか = no
    *** yes を指定するとGUIインストーラが起動するのですが、 Linux をインストールする場合は no を指定する必要があります。
    http://in.opensolaris.org/jive/thread.jspa?threadID=45427&tstart=45 にも出てますが、yes にすると virt-install が途中で終了し、 イメージ作成が行えません。
  • インストール元の場所 = nfs:nfs_server:/export2/soft/CentOS

bash-3.2# virt-install
What is the name of your virtual machine? centos5
 How much RAM should be allocated (in megabytes)? 512
 What would you like to use as the disk (path)? /export/centos5
 How large would you like the disk (/export/centos5) to be (in gigabytes)? 4
 Would you like to enable graphics support? (yes or no) no
 What is the install location? nfs:nfs_server:/export2/soft/CentOS


Starting install...
Creating storage file...  100% |=========================| 4.0 GB    00:00
Creating domain...                                                 0 B 00:16
Linux version 2.6.18-53.el5xen (mockbuild@builder6.centos.org) (gcc version 4.1.
2 20070626 (Red Hat 4.1.2-14)) #1 SMP Mon Nov 12 03:26:12 EST 2007
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000020800000 (usable)
0MB HIGHMEM available.

設定が終わると、テキストインストーラが起動します。

Welcome to CentOS

                   +---------+ Choose a Language +---------+
                   |                                       |
                   | What language would you like to use   |
                   | during the installation process?      |
                   |                                       |
                   |       Catalan                ^        |
                   |       Chinese(Simplified)    :        |
                   |       Chinese(Traditional)   #        |
                   |       Croatian               :        |
                   |       Czech                  :        |
                   |       Danish                 :        |
                   |       Dutch                  :        |
                   |       English                v        |
                   |                                       |
                   |                +----+                 |
                   |                | OK |                 |
                   |                +----+                 |
                   |                                       |
                   |                                       |
                   +---------------------------------------+

  <Tab>/<Alt-Tab> between elements  | <Space> selects | <F12> next screen

テキストベースのインストーラが起動しますので、オプションを選択してインストールします。この辺はCentOSのインストールそのものです。 上記のダイアログで日本語の選択もできますが、インストーラの表示は英語のままで、インストールを日本語で行うことはできません。
インストールが終わると、再起動し、設定画面が起動しますので、適切に設定します。 この際、SELinux と ファイアウォールの設定が出てきますが、 無効にしておく方が実験するには楽です。
ファイアウォールを有効にしておいても問題はありませんが、 必要に応じて設定を変更する必要が出てきます。 CentOS では system-config-securitylevel というコマンドでこの辺の設定が行えます。

xm コマンド

仮想マシンの起動などの操作は xm コマンドを利用するようです。
list, start, shutdown, console あたりを知っていれば、 最低限は使えそうです。

# xm start centos5

# xm list
Name                                      ID   Mem VCPUs      State   Time(s)
Domain-0                                   0   484     1     r-----    527.1
centos5                                    6   512     1     -b----     47.6

# xm console centos5
.....
CentOS release 5 (Final)
Kernel 2.6.18-53.el5xen on an i686

localhost.localdomain login:

CentOS の X を使う

一応、コンソールベースで使えるようになったのですが、 Xが使える方が便利です。 ということで、Xを使えるようにします。 Solaris Express では標準ではリモートからの接続できないように なっているので、変更する必要があります。

bash-3.2# svccfg -s x11-server listprop
options                                  application
options/default_depth                    integer  24
options/server                           astring  /usr/X11/bin/Xorg
options/server_args                      astring
options/stability                        astring  Evolving
options/value_authorization              astring  solaris.smf.manage.x11
options/tcp_listen                       boolean  false
.....

bash-3.2# svccfg -s x11-server setprop options/tcp_listen = true
svc:/application/x11/x11-server

後はXを再起動し、Solaris Express側で

# xhost + centos

としておき、CentOS側で

# export DISPLAY=solaris:0

としてやれば、xtermとかXアプリをSolaris Express上に表示できるようになります。
*** 上記の solaris, centos は 実際のホスト名もしくはIPアドレス

CentOSのgdmを使う(Xnest経由で)

ここまでやったのなら、ついでに CentOS のデスクトップを表示した方が 作業が楽になるだろうということで、ついでにそこまでやってしまいます。
デフォルトでは CentOS の gdm ではリモート接続不可になっているので、 接続できるようにする必要があります。 (XDMCP接続を有効にするというやつです。)
CentOS 5.1 では /etc/gdm/custom.conf を編集します。
赤い字の部分が無い場合は追加してください。
[security]項目のAllowRemoteRoot=trueは必須ではありません。 このオプションを入れることにより root でログインが出来るようになります。 今回はテスト作業を簡単にするために追加しています。

[daemon]
RemoteGreeter=/usr/libexec/gdmgreeter

[security]
AllowRemoteRoot=true

[xdmcp]
Enable=true

gdmの設定はこれで終わりです。 ファイアウォールを有効にしている場合は XDMCP (177 UDP) に 接続できるように設定を変更してください。
xen/xvmにインストールした CentOS はデフォルトでは コンソールモードになっており、gdm は起動していません。
runlevel コマンドで確認すると下のように runlevel 3 になっています。 (linux のグラフィカルユーザモードは runlevel 5)
/etc/inittab の id:3:initdefault: の 3 を 5 に変更しておけば、グラフィカルユーザモードがデフォルトになります (次回起動時以降)。

[root@localhost sbin]# runlevel
N 3

[root@localhost sbin]# cat /etc/inittab
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, 
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

上記のようなことはしなくても init コマンドでグラフィカルユーザモードに移行することも可能です。

[root@localhost sbin]# ps -ef | grep gdm

[root@localhost sbin]# init 5
[root@localhost sbin]# Intel CPU マイクロコードアップデートを適用中: [失敗]
Starting monitoring for VG VolGroup00:   2 logical volume(s) in volume group "Vo
lGroup00" monitored
[  OK  ]
readahead をバックグランドで起動中: [  OK  ]
irqbalance を起動中: [  OK  ]
anacron を起動中: [  OK  ]
readahead をバックグランドで起動中: [  OK  ]

[root@localhost sbin]# ps -ef | grep gdm
root      2231     1  0 20:29 ?        00:00:00 /usr/sbin/gdm-binary -nodaemon
root      2260     1  0 20:29 ?        00:00:00 /usr/sbin/gdm-binary -nodaemon
root      2338  1968  0 20:30 xvc0     00:00:00 grep gdm

後は、

# Xnest :1 -query centos

という感じで Xnest コマンドを Solaris Express 側で実行すれば、 CentOS のログイン画面が表示されます。
下図は、そのスクリーンショットと KDE にログイン後の画面です。





投稿されたコメント:

Thanks for your excellent report! What's the build number of SXCE are you running?

Also do you have plan in running SuSE 10.3 under xVM in the future?

Thanks again.

Posted by W. Wayne Liauh on 1月月 10日, 2008年 at 05:03 午後 JST #

Test environment is nevada b80,
I tried to install Fedora 8 on xvm, but
I got errors when running virt-install.
virt-install seems to be recognize fedora 8 boot image...

And I have no plan to test SuSE 10.3 on xvm now.

Thank you.

Posted by Yasuhiro Fujitsuki(thaniwa) on 1月月 11日, 2008年 at 10:18 午前 JST #

コメント
コメントは無効になっています。