torutkのブログ

ソフトウェア・エンジニアのブログ

KVMゲストOSにCentOS 6をコマンドラインからインストールしようとしたが・・・

注)本日記は試行錯誤の途中状況を記録したものです。

仮想化のホストマシンは、サーバー室等に置かれていることが多く、物理的に直接デスクトップを操作することが難しく、また、デスクトップ自体がインストールされていないことも普通にあります。

リモートからコンソールで仮想化ゲストOSをインストールできるととても便利です。

そこで、virt-installコマンドを使ってコマンドラインからゲストOSとしてCentOS 6をインストールできるか試してみました。

最初の試み(virt-installCentOS 6をテキストモードインストール)

# virt-install -n centostmpl -r 768 -s 64 --vcpus=1 \
--os-type=linux --os-variant=rhel6 \
--network bridge=br0 --nographics \
--location='http://ftp.riken.jp/Linux/centos/6/os/x86_64/' \
--extra-args='console=tty0 console=ttyS0,115200n8' \
-f /var/lib/libvirt/images/centostmpl.img

Starting install...
ファイル .treeinfo を読出中...                   |  796 B     00:00 ...
ファイル vmlinuz を読出中...                     | 7.6 MB     00:01 ... TA
ファイル initrd.img を読出中...                  |  60 MB     00:13 ... ETA
割り当て中 'centostmpl.img'                      |  64 GB     00:00
ドメインを作成中...                              |    0 B    00:00
ドメイン centostmpl に接続しました
エスケープ文字は ^] です
       
gPXE (http://etherboot.org) - 00:03.0 C100 PCI2.10 PnP BBS PMM2FE0@10 C100

この後、テキストモードでCentOSインストーラが立ち上がり、NetworkManagerでネットワークを設定しようとしてエラーになってしまいました。ブリッジ接続をNetworkManagerが認識できないことが原因と思われます。

また、CentOS 6のインストーラはtextモードではファイルシステム構成、インストールするソフトウェア構成を設定できないという問題があるため、KVMゲストOSの構成を自由に設定したい場合には不向きです。

VNCなどでvirt-installでもGUI環境でのインストールができるようですが、うまく使いこなすことができませんでした*1

次の試み:キックスタートを使う

CentOS 6のテキストモードインストールはだめっぽいので、キックスタートを使ってみます。

まず、ホストOSの/var/www/html下にCentOSディレクトリを作成し、そこにCentOS 6 DVDの中身を丸ごとコピーします。
次に、/var/www/html/ks.cfg(キックスタートの設定ファイル)を作成します。この設定ファイルの書き方はぐぐった見よう見まねです。

install
url --url http://192.168.1.1/CentOS
lang ja_JP.UTF-8
keyboard jp106
timezone --utc Asia/Tokyo
network --device eth0 bootproto dhcp

zerombr
clearpart --all --initlabel
part /boot --fstype ext4 --size=500
part swap --size=1024
part pv.2 --size=0 --grow
volgroup VolGroup00 --pesize=32768 pv.2
logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow

%packages --nobase
@core
$end

virt-installを実行します。

# virt-install -n centostmpl -r 768 -s 64 --vcpus=1 --os-type=linux --os-variant=rhel6 --network bridge=br0 --noautoconsole --location /var/www/html/CentOS --extra-args "ks=http://bouchard/ks.cfg" -f /var/lib/libvirt/images/centostmpl.img

virsh consoleでも無反応なので、どうなっているか状況が分からないので、シリアル設定を追加します。

# virt-install -n centostmpl -r 768 -s 64 --vcpus=1 --os-type=linux --os-variant=rhel6 --network bridge=br0 --noautoconsole --location /var/www/html/CentOS --extra-args "ks=http://bouchard/ks.cfg console=tty0 console=ttyS0,115200n8" -f /var/lib/libvirt/images/centostmpl.img

virsh consoleで接続すると、テキストモードインストーラと同じような画面でNetworkManagerがhttp://192.168.1.1/ks.cfgにアクセスできないとエラーを出して対話入力待ちになっていました。

ここらで今年は時間切れ、続きは来年?

*1:virt-viewerが必要になり、結局ホストマシンのデスクトップが必要となるような気がしますが、詳しくはよく分かりません。