2011-04-26 Updated

CentOS上にLDAPを構築しThunderbirdで共有しよう

アドレス帳の管理は面倒ですよね。特に、家のPCでwindows環境とlinux環境で利用するメーラーが違ったり、外出用のノートPCやスマホでもメールを利用することもあります。その場合、アドレス帳がバラバラになってしまい、これらの環境間で共有できずに不便な思いをします。また、会社等で部署間やグループ間で共有したいアドレスもあるのではないでしょうか。

会社の場合ではMicrosoftのExcange等を入れればアドレスの共有はできますが、これ自体がかなり高価でして、中々小規模の企業では導入が困難になります。その他、Scalix等に代表されるWEBメールもありますが、操作性や速度等が劣ってしまいます。いまの環境のままでアドレス帳を共有でき、なんとか便利にする方法はないのでしょうか?

LDAPが解決します

LDAPとは、Lightweight Directory Access Protpcolの略称で、ディレクトリーにアクセスするための仕組みです。ここでいうディレクトリーとは、例えば、会社の組織図やWindowsのフォルダー構成などのような状態を意味します。つまり、会社組織の場合には、まず「会社」があって、その下に「取締役会」があり、「社長」「役員」「部長」「課長」とつながっていきます。それぞれが枝葉に分かれていくわけです。

LDAPでは、このようなディレクトリー構造でユーザー情報やアドレス帳、プリンター情報や資源等あらゆる物を管理しようと1993年に規定され、現在は1997年規定されたLDAPv3を利用しています。

全体像イメージ

LDAPはLightweight(=軽量)と謳っていますが、かなり難解で完全に把握して使いこなすのはなかなか難しく、まずは概念から理解する必要があります。ここでは、LDAPができることの一つしてアドレス帳の連動を取り上げます。OSはCentOS5.6をApache2.2.3を利用します。

LDAPの属性とスキーマーについて

LDAPはディレクトリー構造で情報を管理することは先に述べました。では、具体的にはどのようになるのでしょうか。先の会社組織の例ですと、社長や部長などの登場人物がいました。これらをLDAPでは「エントリー」と呼びます。そして、このエントリーはDistinguishaedName(DN)と呼ばれる識別名で重複なく識別されます。また、エントリーには属性が含まれます。ここからが本題になるのですが、LDAPはこの属性の理解するのがとても重要になります。

属性自体は自分で定義することも可能なのですが、非常に多くの属性が予め定義されており、それぞれの用途の応じて利用されるようになっています。そして、この属性を定義したものをスキーマと呼びます。例えば、従業員名簿を例示するのであれば、会社名、部署名、ユーザーID、氏名、メールアドレス等を管理する必要があると思われます。LDAPでは以下のような言葉で表現します。

属性名 LDAPでの属性名
会社名 o(Organization)
部署名 ou(Organization Unit)
ユーザーID uid(UserID)
氏名 cn(Common Name)
メールアドレス mail(Mail Address)

そして、これらを管理しているスキーマをinetOrgPersonと言い、主に住所録等の管理に利用されます。このようなスキーマの多くが標準化されており、LDAPを利用しているアプリケーションでは「cn=氏名」と認識して適切に利用するようになっています。

CentOS5へのLDAPのインストールと設定

CentOS5へのLDAPのインストールはyumで簡単にできます。

yum -y install openldap-servers openldap-clients

これで、LDAP関連のパッケージはインストール完了です。openldap-serversの実態はslapdというデーモンです。このデーモンがLDAPのサーバーになります。設定ファイルは/etc/openldap/slapd.confになります。以下が編集箇所になります。

suffix "dc=[server],dc=[com]"
rootdn "cn=Manager,dc=[server],dc=[com]"

rootpw [secret]
・・ファイルの最後に・・
access to attrs=userPassword
    by self write
    by dn="cn=Manager,dc=[server],dc=[com]" write
    by anonymous auth
    by * none

access to *
    by dn="cn=Manager, dc=[server],dc=[com]" write
    by self write
    by * read

とします。赤色箇所はご自身の環境に合わせて変更願います。まず、suffixでこのサーバーのルートとなるディレクトリーを指定します。重複を避けることから通常はドメイン名になります。たとえば、dc=google,dc=comやdc=yahoo,dc=co,dc=jp等です。

次にrootdnを指定します。これは、このディレクトリーの管理者のことです。例えば、windowsの管理者はAdministratorになりますが、LDAPのこのサーバーの管理者はcn=Manager,dc=server,dc=comになります。少し長いですね。

rootpwはこの管理者がログインするときに利用するパスワードです。ここに平文で記載しても良いのですが、セキュリティー的に好ましくないので、ここではSSHA利用します。パスワードの生成にはslappasswdコマンドを利用します。

slappasswd -s [パスワード]
{SSHA}v6tYJVPSxUAw65tlWrV7CWZCwzVl7d9v

ここで作成されたパスワードの最初の「{」の部分から先ほどのrootpwの部分に記載します。

rootpw {SSHA}v6tYJVPSxUAw65tlWrV7CWZCwzVl7d9v

最後にこのディレクトリーのアクセス権を記載します。ここの詳細はこちらを参照ください。

これで、設定ファイルの編集は終わりです。次にデータベース用の設定ファイルをコピーします。基本的に編集する必要はありません。

cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

slapdのサービス起動と再起動時に自動的に起動する設定を行います。

/etc/rc.d/ldap start
chkconfig ldap on

ベーススキーマーの設定

ここまででLDAPのインストールと最低限の設定は完了です。しかし、LDAPのデータベース内はまだ空の状態です。まずは、これから情報を格納している「箱」になる部分を定義していきます。例示で利用するドメインをexample.comとします。これをLDAP表記にすると、dc=example,dc=comとなります。これからアドレス帳の管理を行うわけで、直接この場所に格納することもできますが、折角のLDAPですので、今後のアカウント管理やプリンター管理等を考慮し、ここではさらにaddressディレクトリー以下に登録することにします。つまり、ou=address,dc=example,dc=comになります。それでは、以下のようなLDIFファイルを作成してLDAPに登録します。

dn: ou=address,dc=example,dc=com
ou: address
objectclass: organizationalUnit

これを、適当な名称で保存します。筆者はinitdb.ldifで保存しました。次にこのファイルをLDAPに登録します。

ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f initdb.ldif

これで、アドレス帳を登録する箱が完成しました。

Thunderbird用スキーマの入手

LDAPのインストール時からデフォルトで存在するinetOrgPersonスキーマーを利用しても対応は可能なのですが、Thunderbirdのすべての属性を表現するまでには至っていません。インストール時には自動的に導入されませんが、mozillaAbPersonAlphaというスキーマが存在します。これを導入することで、よりThunderbirdと親和性が高い形になります。

mozillaAbPersonAlphaからThunderbird用のスキーマを入手します。このファイルを/etc/openldap/schema以下に保存し、slapd.confにincludeします。

include /etc/openldap/schema/mozillaAbPersonAlpha.schema

そして、slapdを再起動します。

/etc/init.d/slapd restart

phpldapadminのインストールと設定

phpldapadminとは、WEBベースのLDAP管理ツールです。LDAPにはデフォルトでコマンドベースの管理ツールは利用可能ですが、直感的な操作はできません。日頃の更新を考えるとWEBベースのツールがある方が便利だと思います。

phpldapadminを利用するためには、ApacheとPHP環境が必須です。未インストールの場合には、事前にインストールを行って下さい。

phpldapadminは公式サイトからダウンロードできます。今回は1.2.0.5を利用します。

ダウンロードしたファイルは/usr/local/share以下に保存し、シンボリックリンクを作成します。

cd /usr/local/share
tar xvzf phpldapadmin-1.2.0.5.tar.gz
ln -s phpldapadmin-1.2.0.5 phpldapadmin

設定は、configディレクトリー内のconfig.phpで行います。設定箇所は以下の箇所になります。

$servers->setValue('server','name','LDAP');
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port','389');
$servers->setValue('server','base','dc=example,dc=com');

Apacheの設定

/etc/httpd/conf.d以下にphpldapadmin.confを作成します。内容は以下のようになります。

Alias /phpldapadmin /usr/local/share/phpldapadmin

この設定により、http://example.com/phpldapadminにアクセスした段階で、phpldapadminが利用されます。なお、必要があれば、LocationディレクティブでBasicまたはDigest認証を掛けるとより安全になると思います。

ThunderbirdへのLDAPの設定

長くなりましたが、ここまでの設定でLDAPのインストールと設定が完了し、phpldapadminのインストールとapacheとの連動が構築できました。最後にLDAPをThunderbirdに設定する方法です。

アドレス帳画面でアドレス帳のファイル→新規作成→LDAPディレクトリーを選択します。

名前欄は適当にいれます。ホスト名はサーバーのホスト名または、IPアドレスをいれます。ベース識別名にはou=address,dc=example,dc=comとトップになるDNを指定します。ポート番号は初期値で問題ないと思われます。最後にバインド識別名です。これは、最初のslapd.confで設定したものでOKです。つまり、cn=Manager,dc=example,dc=comになります。これでLDAPの読み込みは完了です。次に、補完リストにLDAPの内容が表示されるようにします。ツール→オプション→編集→アドレス入力にて自動補完の設定箇所でLDAPを選択すればOKです。

 

 

2011-04-20 Updated

Tracの複数プロジェクトをApache2で連動させる

Tracはプロジェクト毎に、trac-adminを実行して新しいプロジェクト作成する必要があります。Apacheと連動させている場合には、その設定作業が手間になりますし、設定ファイルの肥大化してしまいます。ここでは、Tracの複数プロジェクトをApacheで管理する設定ファイルの書き方を記載します。

実施する上での環境

・Tracのプロジェクトディレクトリーは/usr/local/trac以下を想定。つまり、このディレクトリー以下にproject1、project2が存在する。

・apacheのユーザー/グループはwww-dataとなる。先ほどのフォルダーはこれらの権限で読み書き可能にする。

・apacheのDocumentRootを/usr/local./wwwとし、trac-adminのdeproy先は/usr/local/www/trac/とする。つまり、/usr/local/www/trac以下にcgi-binとhtdocsがある事になる。

・apacheとtracの連動にはwsgiを利用する。

・apacheのバージョンは2.2.16

・Tracのバージョンは0.12.2

・OSはDebian/GNU Linux 6.0(squeeze)

apache2の設定ファイルの編集

筆者の環境では/etc/apache2/mods-enabled/wsgi.conを編集します。環境によってはhttpd.confになります。

#WSGIのエイリアスの指定 /trac以下とする
WSGIScriptAlias /trac /usr/local/www/trac/cgi-bin/trac.wsgi

#エイリアスのパターンマッチ /trac/<プロジェクト名>にマッチさせる
AliasMatch ^/trac/[^/]+/chrome/(.*) /usr/local/www/trac/htdocs/$1
<Directory /usr/local/www/trac>
 WSGIApplicationGroup %{GLOBAL}
 Order deny,allow
 Allow from all
</Directory>

#ここが重要。trac.wsgiではtrac.env_parent_dirが指定されて
#いない場合には、#deployした時のプロジェクトが自動的に読み込
#まれます。この環境変数をセットすることで#Tracのプロジェクト
#フォルダーが参照され、プロジェクトをリストから選択可能になります
<Location "/trac">
 SetEnv trac.env_parent_dir "/usr/local/trac"
</Location>

#各プロジェクト統一の認証設定です。LocationMatchではなく
#Locationディレクティブ#を利用してプロジェクト毎に個別設定
#も可能です
<LocationMatch "/trac/[^/]+/login">
 AuthType Basic
 AuthName "Trac"
 AuthUserFile /usr/local/.htpasswd
 Require valid-user
</LocationMatch>
2011-04-18 Updated

Tracとgitのapache2の連動

開発作業にバージョン管理ソフトウェアとバグトラッキングツールは必須です

開発の仕事を行っていると、どうしてもプロジェクト毎のソースファイルの管理や、進捗管理が億劫になります。特に、仕様変更やプロトタイプレビュー等を行っていると、管理も大変です。そこで、役に立つのがバージョン管理ソフトウェアとBTS等というバグトラッキングツールです(ここで、紹介しなくても既に利用中の方の方が多い気もします)。

バージョン管理ソフトウェアでは、CSVやSubversion等が有名ですが、分散環境で利用可能なgitやmercurial等が近年注目されています。筆者はgitを利用しています。元々はSubversionを利用していたため、最初は戸惑いもありましたが慣れると速度も高速なのと、ブランチ作成が瞬間的にできるため大変便利です。ちなみに、gitはlinuxのソースコード管理用として誕生した経緯がありますので多くのプロジェクトで利用されています。オフライン環境で利用できるのもメリットの一つです。

バグトラッキングツールは、現在の問題点や進捗、タスク等を一元管理できる優れものです。修正が必要な箇所等を体系的に管理でき、前述のバージョン管理ソフトウェアとも連動できます。例えば、#5という問題点(チケットといいます)を修正した場合、バージョン管理側のコミットログに#5 closed等を記載すると、自動的に処理完了になります。本記事に記載するtracを初め、mantisやredmine等が有名です。近年では、redmineの評価が高くなっています。

本記事ではdebian squeeze環境でtracをapache2の上で動作させ、gitリポジトリーの閲覧を行います。

各ソフトウェアのバージョン

今回は以下のバージョンを利用しました。

TRAC :0.12.2
git:1.7.2.5
trac-git:masterブランチ
apache2.6.16
python:2.6

Tracと関連ライブラリーのインストール

残念ながら、squeezeに含まれるtracは0.11と少し古いため、pythonのeasy_installを利用して、インストールをすすめます。

apt-get install python-setuptools
easy_install Babel
easy_install Pygments
easy_install Genshi

Trac自体もeasy_installでインストールできますが、筆者の環境では日本語化がうまくできませんでした。したがって、ここでは、本家サイトから最新安定版である0.12.2をダウンロードしてインストールを行います。本家サイトのFTPはこちらになります。ここでは、Trac-0.12.2.tar.gzを利用します。

まず、wget等でダウンロードし、適当な場所/tmpや/usr/local/src等に解凍します。その後、解凍されたディレクトリーにあるsetup.pyからeggファイルを作成してインストールします。

wget http://ftp.edgewall.com/pub/trac/Trac-0.12.2.tar.gz
tar xvzf Trac-0.12.2.tar.gz
cd Trac-0.12.2
./setup.py bdist_egg
easy_install dist/Trac-0.12-2-py2.6.egg

以上の作業でTracのインストールが完了です。日本語も正常に表示されます。

Trac-gitプラグインの導入

trac-gitプラグインはTracのバージョンに応じて3種類存在します。詳細はこちらの公式サイトを確認されるとして、今回Tracのバージョンは0.12.2なので、masterブランチのものを利用します。インストール自体はeasy_installで簡単にできます。

easy_install http://github.com/hvr/trac-git-plugin/tarball/master

Tracで新しいプロジェクトを開始する

/usr/local/tracに新しいプロジェクトを作成する事を想定します。まず、このフォルダーに移動し

trac-admin [プロジェクトフォルダ] initenv

とします。これでいくつか質問がありますので適当に答えます。これで新しいプロジェクトが作成可能です。あとで、apacheとの連動を行うので、apacheから利用できるようapacheのユーザーに変更しましょう。

chown -R www-data:www-data [プロジェクトフォルダ]

また、gitプラグインを利用するので、conf以下のtrac.iniにcomponentsセクションを追加してプラグインを登録とtracセクションを修正しましょう

[components]
tracext.git.* = enabled

[trac]
repository_dir = /path/to/repository
repository_sync_par_request =
repository_type = git

その他の項目は先ほどの公式サイトを確認ください。

apacheとの連動

apacheと連動させる前に先ほど作成したTracのプロジェクトをapacheが見える場所にdeployします。この作業で後述するwsgi用のスクリプト等も自動的に生成されます。この作業は以下のコマンドで行います。

trac-admin [プロジェクトフォルダ] deploy /usr/local/www/trac/myproject

この作業で、/usr/local/www/trac/myproject以下に環境がdeployされます。apacheのDocumentRootが/usr/local/wwwだとした場合には、http://127.0.0.1/trac/myprojectで接続できるようになります。

実際のapacheとの連動は、wsgiを利用します。これは、aptで簡単に導入できます。debianのパッケージではlibapache2-mod-wsgiになりますので、以下のコマンドでインストールできます。※apache2は既にインストールされているものをします。

apt-get install libapache2-mod-wsgi

その後、/etc/apache2/mod-availableにwsgi関連の設定ファイルが生成されますので、これを有効にします。

a2enmod wsgi

後は、適当に設定を行います。設定はwsgi.confを編集します。設定箇所は以下の赤字部分です。必要があれば、その他部分も適時変更しましょう。この例では先ほどのmyprojectを指定しています。また、後半のLocationディレクティブでBasic認証の設定を行っております。Tracでは、管理用画面を開くためにはTRAC_ADMINのパーミッションを持ったユーザーで接続する必要があります。その為には、予めBasic認証やDigest認証などでログインさせる必要があります。

WSGIScriptAlias /trac/myproject /usr/local/www/trac/myproject/cgi-bin/
trac.wsgi 
<Directory /usr/local/www/trac/myproject>
 WSGIApplicationGroup %{GLOBAL}
 Order deny,allow
 Allow from all
</Directory>
<Location "/trac/myproject">
 AuthType Basic
 AuthName "trac"
 AuthUserFile /usr/local/.htpasswd
 Require valid-user
</Location>

管理者権限を付与する

ここまでで、TracのインストールとGitとの連動および、Apache2との連動が完了しました。最後にTrac内での設定を行うためにそのプロジェクトに管理者権限を付与します。これもtrac-adminコマンドで行います。以下の通りです。

trac-admin [プロジェクトフォルダ] permission add [user] TRAC_ADMIN

最後に

いかがでしょうか?かなり駆け足なのと、筆者の備忘録でもあるため、少々分かりにくい部分があるかと思います。昨今ではredmine等が人気を博していますが、まだまだTracも現役なのではないでしょうか。特に、使い慣れるとチケットビューのカスタマイズが直接SQLで記載できるため、便利です。また、ガントチャートプラグインも便利な機能の一つです。機会があれば触れて行きたいと考えております。仕事でもプライベートでもTracとgitを活用してみてはいかがでしょうか?

 

2011-04-17 Updated

debianのlennyからsqueezeにアップグレードしてみた

debianの新しいメジャーリリースが2011/2/6にあり、バージョンが6.0.0になりました。その後、3/19に6.0.1に約1ヶ月が経過し、そろそろバージョンアップでもしようかなと休日に思いつき、作業を進めました。ちなみに、6.0.0のコード名はsqueezeといい、トイストーリーに登場する三つ目のキャラクター(エイリアン?)の事です。debianのコード名は以前よりトイストーリーのキャラクターに由来しています。

結論!5.0から6.0は簡単だが、いくつか注意点も・・・

基本的には、/etc/apt/sources.listを更新し、apt-get dist-upgradeで簡単にできます。しかし、6.0からファームウェア関連のライブラリーがnon-freeになったため、場合によっては、再起動後にLAN等が利用できなくなる場合があります。特に、XENのDOMAIN-0になっている場合には、XENカーネルで起動しなくなる恐れがありますので注意しましょう。

/etc/apt/sources.listの更新

lennyに部分をsqueezeに置換します。また、mainのみの場合には、併せてcontribとnon-freeを追加しておくと良いと思われます。

まずは、最小限のアップグレードを

いきなり、dist-upgradeで全てをアップグレードするのはちょっとリスキーなので、最小限のパッケージのアップグレードを行います。

apt-get update
apt-get upgrade

尚、lennyで推奨されていたaptitudeは本アップグレード作業では推奨されません。また、6.0以降はapt-getを推奨するとのことです。以前のアップグレード作業ではaptitudeが推奨されていたため注意が必要です。

kernelとudevの更新作業

次に、kernelとudevの更新作業を行います。

apt-get install linux-image-2.6-[flavor]

として、カーネルのインストールを行います。このflavorは環境により異なります。筆者の環境では、xenを利用しているため、linux-image-2.6-xen-amd64となりました。その後にudevをインストールします。

apt-get install udev

squeezeのバージョンのudevではCONFIG_SYSFS_DEPRECATEDが無効となっており、CONFIG_INOTIFY_USERとCONFIG_SIGNALFDオプションが有効な2.6.26以降のカーネルが必要です。lennyのカーネルでは全て備わっていないため、起動不能に陥る恐れがあります。

また、一見正常に起動したように見えても、ネットワークデバイス名への名前割り当てやブロックデバイスへの特定のパーミッションの追加に失敗していることがあります。再起動前にカーネルの更新とudevの更新は行いましょう。

それと、前述したとおり、各種ファームウェアがnon-freeセクションに移動しました。例えば、筆者の環境ですと、rtl_nicが標準では不足していました。手動でapt-get install firmware-realtekとしてインストールを行いました。

再起動とdist-upgrade

ここまでで、一旦再起動を行います。正常に起動しない場合には、grubでカーネルを旧バージョンに変更して適時修正を行います。

無事起動できたら、

apt-get dist-upgrade

でその他の部分のアップグレードを行います。

postfix+courier imapの環境でimap接続ができない

筆者の環境では、上記の環境でメールサーバーを構築しています。アップデート後にメールクライアントで接続しようとすると、Filesystem notification initilization errorなるエラーが発生しました。調査をしてみると、今まで利用していたlibfamが悪さをしているようでした。squeezeからはlibfamの代わりにgaminを利用する必要があります。

apt-get install gamin

とすることで、libfamは削除され、gaminが利用できるようになります。これらは、ファイルシステムの管理ライブラリーです。筆者以外の環境では不明ですが、備忘録としての意味も含め記載しました。

xenのDOMAIN-Uが起動時にエラーになってしまう

元々の環境ではDOMAIN-U側に割り当てているデバイスが/dev/sda1と/dev/sda2でした。ところが、この名称がsqueezeでは競合(?)してしまうらしく、/dev/xvda1と/dev/xvda2に変更した対応しました。

DOMAIN-Uのホスト名にアンダーラインは利用できない

hostnameにアンダーラインを利用してるサーバーが/etc/init.d/hostname.shスクリプトで正常に反映されず、(none)になってしまいました。アンダーラインを消したホスト名にすることで修正できました。

 

2011-04-16 Updated

DebianのXEN上にCentOS5のDOMAIN-Uを構築する

Debian上でCentOSのDOMAIN-Uを作成するために、RINSEを利用します。そのために、先ず/etc/xen-tools/xen-tools.confを設定します。

xen-tools.confの設定

install-method = rinse #インストールにrinseを利用する
size = 4Gb # ディスクサイズ
memory = 128Mb # メモリーサイズ
swap = 128Mb # スワップサイズ
fs = ext3 # ファイルシステム
dist = centos-5 # インストールするディストリビューション
image = sparse # ディスクイメージタイプ。
gateway = 192.168.0.1 #ゲートウェイ
netmask = 255.255.255.0 #ネットマスク
broadcast = 192.168.0.255 #ブロードキャストアドレス 

kernel = /boot/vmlinuz-2.6.26-2-xen-amd64
initrd = /boot/initrd.img-2.6.26-2-xen-amd64
arch=amd64 #マシンアーキテクチャ
mirror = http://ftp.jp.debian.org/debian/
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
reiser_options = defaults
serial_device=xvc0
disk_device=xvda 

その後、以下のコマンドでDOMAIN-Uを作成します。

xen-create-image --config /etc/xen-tools/xen-tools.conf
 --hostname [hogehoge] --ip 192.168.0.10 --dir /etc/xen
 --force --dist centos-5 --install-method rinse --passwd
※実際には一行で

先程の設定ファイルで設定した内容はデフォルトで適応されます。設定内容を変更したい場合には、上記コマンド内の–distや–install-method等のように項目をオーバーライドすることで対応できます。

これで、/etc/xen/domain以下にhostnameで指定されたフォルダーが作成され、その中にdisk.imgとswap.imgが作成されているはずです。尚、インストール途中でパスワードを求められますので(–passwdオプションによる)rootのパスワードを指定してください。

環境にもよりますが、このままでは起動できない場合があります。以下2セクションを確認下さい。

CentOSのDOMAIN-U起動時にSSHの部分でフリーズしてしまう

筆者の環境では、起動時にSSHサービス起動部分でフリーズしてしまう現象が発生しました。原因はttyの値が適切ではないためでした。旦xenでの起動を停止し、イメージをmountして直接inittabを修正することで対応しました。以下の通りです。

mount /etc/xen/domains/[hogehoge]/disk.img /mnt
vi /mnt/etc/inittab
1:2345:respawn:/sbin/mingetty tty0を

1:2345:respawn:/sbin/mingetty tty1に変更する

これで、起動時にフリーズが回避されました。

xm consoleで接続できない

これは、作成したDOMAIN-Uのconsoleとttyの設定によるものです。以下の設定をDOMAIN-Uの設定ファイル最下部に追記することで接続が可能になります。

extra='console=hvc0 xencons=tty'

以上の設定でDebian上のXENにCentOS5のDOMAIN-Uが作成され、起動可能になります。

お問い合わせ