在仅有CLI环境的情况下,进入KVM客户机虚拟机的控制台并使用Kickstart进行配置的方法如下

概要 – 总结

我打算从ISO创建一个KVM的qcow2镜像,为此我搭建了KVM主机的环境。然而,当我查找了一些网络资料时,发现虽然有关于通过图形界面进行配置的方法,但是在只有命令行界面的环境下进行配置的方法很少见。本次记录的是如何通过命令行界面从KVM主机使用ISO和Kickstart创建虚拟机并生成qcow2镜像。需要注意的是,KVM主机已经搭建好了。在本环境中,我将使用CentOS7.0.1406来创建一个来自CentOS6.3的ISO的qcow2镜像。

操作步骤 (Caozuo buzhou)

启动KVM的默认网络。 忘记启动默认网络将导致无法启动虚拟机,所以请记得这一点。

virsh net-start default

国际标准化组织获得

获取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,需要启动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大小创建,但由于采用了thin provisioning的qcow2格式,实际占用空间更小。

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会自动创建虚拟机。完成后,将其关机,并删除MAC地址信息,以及虚拟机的域和XML定义文件。

virt-sysprep -d centos-6.3
virsh undefine centos-6.3

这样一来,在/tmp目录下就创建了名为centos-6.3.qcow2的qcow2镜像。

请参考

OpenStack虚拟机镜像指南