概要
ISOからKVMのqcow2イメージを作成しようと思ってKVMホストの環境を作った。その際、ネットをいろいろ調べるとGUIによる設定の方法は掲載されているが、CLIしかない環境で行う方法があまり見当たらなかった。今回は、CLI環境でKVMのホストからISOでゲストVMをKickstartで構築しqcow2イメージを作成する方法を記す。なお、KVMホストは構築済みであることが前提。本環境では、CentOS7.0.1406を利用して、CentOS6.3のISOからqcow2イメージを作成する。
手順
KVMのdefaultネットワークを起動する。defaultネットワークが起動していないとVMが上がってことないので忘れないこと。
virsh net-start default
ISO取得
ISOイメージを取得する。CentOS6.XのISOイメージはhttp://archive.kernel.org/
のcentos-vaultという場所にある。
cd /usr/loca/src/
wget http://archive.kernel.org/centos-vault/6.3/isos/x86_64/CentOS-6.3-x86_64-bin-DVD1.iso
取得できたらマウントする。
mkdir /mnt/centos-6.3
mount /usr/loca/src/CentOS-6.3-x86_64-bin-DVD1.iso /mnt/centos-6.3
Kickstart設定
Kickstart用にApacheを起動する。なお、Kickstartファイルは、/var/www/html/centos-6.3-x86_64
直下に設置する。
yum install httpd
mkdir -p /var/www/html/centos-6.3-x86_64
cd /var/www/html/centos-6.3-x86_64
ln -s /mnt/centos-6.3 iso
systemctl start httpd
KVMゲスト起動
qcow2イメージを生成してからKVMゲストを起動する。10GBで作るがqcow2はthinプロビジョニングされるので実際のサイズはもっと小さい。
qemu-img create -f qcow2 /tmp/centos-6.3.qcow2 10G
virt-install --virt-type kvm \
--name centos-6.3 \
--ram 1024 --hvm --connect qemu:///system \
--nographics --accelerate --network network:default \
--disk /tmp/centos-6.3.qcow2,format=qcow2 \
--os-type=linux --os-variant=rhel6 \
--location=/var/www/html/centos-6.3-x86_64/iso \
--extra-args="ks=http://127.0.0.1/centos-6.3-x86_64/ks.cfg console=ttyS0,115200n8 serial"
後処理
あとは、Kickstartが勝手にVMを構築してくれる。完了したらshutdownして、MACアドレス情報を削除してVMのドメインとXML定義ファイルを削除する。
virt-sysprep -d centos-6.3
virsh undefine centos-6.3
これで、/tmp
配下にcentos-6.3.qcow2
というqcow2イメージが作成された。