xen-create-imageコマンドからのVine4.2イメージの作成環境を構築するために必要な作業は以下の流れで行ないます。
- Vine4.2用の/etc/xen-tools/xen-tools.confの準備
- /usr/lib/xen-tools/vine42.dディレクトリともろもろセットアップスクリプトの配置
Vine4.2用の/etc/xen-tools/xen-tools.confの準備
"xen-create-image"コマンドを使って導入しますが、どうも"--dist"オプションを指定してもちゃんと動いてくれないので、原因は調べずにVine用のxen-tools.confファイルを別に準備します。
$ cp /etc/xen-tools/xen-tools.conf /etc/xen-tools/xen-tools.vine.conf変更した点はdistributionに"vine42"を加えて、install-methodに"debootstrap"に変えて"rinse"を指定しています。
$ diff xen-tools.conf xen-tools.vine.conf 83c83 < install-method = debootstrap --- > install-method = rinse 133c133 < dist = etch # Default distribution to install. --- > dist = vine42 # Default distribution to install.ここまでで、"xen-create-image"コマンドはrinseを呼び出してディスクイメージを作成してくれるようになります。
/usr/lib/xen-tools/vine42.dディレクトリともろもろセットアップスクリプトの配置
rinseのセットアップでは具体的なサーバー名やら、IPアドレスやらの設定はしてくれません。そのため具体的なサーバーインスタンスの情報を設定するためのスクリプトが/usr/lib/xen-tools/ 以下に各ディストリビューション毎に分けられています。
とりあえずfedora-core-6.dをディレクトリ毎コピーしてきて、順番にyum関連の処理をapt-getで置き換えるといった変更をしていきます。
20-setup-yum -> 20-setup-apt
yumではなくapt-getを使うのですが、元々がRedHat Linuxの系統ですから、内部構造はfedoraと似ているので、20-setup-yumを20-setup-aptに変更して進めていきます。
43c43
< chroot ${prefix} /usr/bin/yum update
---
> chroot ${prefix} /usr/bin/apt-get update
でも、ここでupdateする必要性がわからないんですよね。
元々のイメージがrinseとrpmstrapのどちらで導入されたかわからないから、
何か前提があるのかなぁ…。
35-setup-users
このファイルでは、現在このXen dom0が稼働しているUbuntu 8.04の/etc/passwdと/etc/shadowの中から"--accounts"オプションで指定したユーザーについて、ゲストOSの/etc/passwd, /etc/shadowに内容をコピーするところです。 いまのところ使っていないので、ここはスルーします。
55-create-dev
いろいろ細かいところにツッコミを入れていると先にすすまないので、例としてひとつだけ。一連のスクリプトの中には間違いが沢山あります。
大抵はどうでも良いので修正していませんが、これはないと困るデバイスファイルを作っているところです。
まだこの時点ではrpm2cpioで展開されただけなので、シンボリックリンクは正確に張られていません。rinseの方で"apt-get upgrade"なんかをちゃんとやっていなかったせいではありますが…。そのため"/dev/MAKEDEV"はまだ存在しないはずで、"/sbin/MAKEDEV"を実行するようにします。
また$iを展開させたいのに、シングルクオートで囲ってしまっているところをダブルクオートに変更します。
45,47c45,47
< chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV console'
< chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV null'
< chroot ${prefix} /bin/sh -c 'cd /dev && ./MAKEDEV zero'
---
> chroot ${prefix} /bin/sh -c 'cd /dev && /sbin/MAKEDEV console'
> chroot ${prefix} /bin/sh -c 'cd /dev && /sbin/MAKEDEV null'
> chroot ${prefix} /bin/sh -c 'cd /dev && /sbin/MAKEDEV zero'
50c50
< chroot ${prefix} /bin/sh -c 'mknod /dev/xvda$i b 202 $i'
---
> chroot ${prefix} /bin/sh -c "mknod /dev/xvda$i b 202 $i"
60-copy-host-files
続いて/etc/hostsファイルをコピーしているのかと思いきや、sudoパッケージを導入しています。とりあえずファイル毎なくなってもらいます。
$ sudo rm 60-copy-host-files
70-install-ssh
なぜかopenssh-serverとpasswdパッケージを明示的に導入しています。 うーん、なんでだろう。なので、ここは消してしまいます。
$ sudo rm 70-install-ssh
99-clean-image
単純にyumを置き換えます。
44c44
< chroot ${prefix} /usr/bin/yum clean all
---
> chroot ${prefix} /usr/bin/apt-get clean
ここまでの結果を確認
"xen-create-image"コマンドで新しいdomUを作成します。
$ sudo xen-create-image --config /etc/xen-tools/xen-tools.vine.conf --hostname xen68 --ip 192.168.1.68 --arch i386
General Information
--------------------
Hostname : xen68
Distribution : vine42
Partitions : swap 128Mb (swap)
/ 4Gb (ext3)
Image type : sparse
Memory size : 128Mb
Kernel path : /boot/vmlinuz-2.6.24-23-xen
Initrd path : /boot/initrd.img-2.6.24-23-xen
Networking Information
----------------------
IP Address 1 : 192.168.1.68 [MAC: xx:xx:xx:xx:xx:xx]
Netmask : 255.255.255.0
Broadcast : 192.168.1.255
Gateway : 192.168.1.1
Creating partition image: /home/xen/domains/xen68/swap.img
Done
Creating swap on /home/xen/domains/xen68/swap.img
Done
Creating partition image: /home/xen/domains/xen68/disk.img
Done
Creating ext3 filesystem on /home/xen/domains/xen68/disk.img
Done
Installation method: rinse
Done
Running hooks
Done
No role scripts were specified. Skipping
Creating Xen configuration file
Done
All done
Logfile produced at:
/var/log/xen-tools/xen68.log
次に起動してみます。
$ sudo xm create -c /etc/xen/xen68.cfg
Using config file "/etc/xen/xen68.cfg".
Started domain xen68
[ 0.000000] Linux version 2.6.24-23-xen (buildd@crested) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Mon Jan 26 03:09:12 UTC 2009 (Ubuntu 2.6.24-4.6-generic)
[ 0.000000] Command line: root=/dev/xvda2 ro 2 console=xvc0
....
とりあえず無事にログインできて成功しました。


0 件のコメント:
コメントを投稿