创建虚拟机
概述
在Ubuntu上创建KVM虚拟机有以下几种方式:
virt-manager: GUI工具
virt-install: Red Hat开发的python脚本,需要安装
virtinst包ubuntu-vm-builder
推荐使用virt-install,主要原因是通用性 - 这个工具是RedHat开发,可以在RHEL和Ubuntu上使用,并且Ubuntu Server手册主要介绍这个工具。
ubuntu-vm-builder现在只是vmbuilder(属于
pyton-vm-builder包)的wrpper,主要维护用于兼容旧的脚本。
创建虚拟机
安装Ubuntu 18.04 LTS (Bionic Beaver)
赞!终于找到正确的串口安装方法(
--console pty,target_type=serial --extra-args 'console=ttyS0,115200n8 serial')
virt-install \
--name ubuntu1804 \
--ram 2048 \
--disk path=/var/lib/libvirt/images/ubuntu1804.qcow2,size=10 \
--vcpus 1 \
--os-type linux \
--os-variant ubuntu16.04 \
--network bridge=virbr0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://mirrors.163.com/ubuntu/dists/bionic/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'不过要注意,这个串口安装过程完成后,操作系统启动后依然不是默认从串口输出的,需要定制内核启动参数。虚拟机串口输出设置请参考访问VM控制台
参考 Easy headless KVM deployment with virt-install 和 Installing Virtual Machines with virt-install, plus copy pastable distro install one-liners ,virt-install(1) - Linux man page
我尝试采用了
--console pty,target_type=virtio表明采用virtio类型串口,--extra-args 'console=tty0 console=ttyS0,115200',但是无法在控制台输入,提示
然而,我修改成 --extra-args 'console=hvc0 console=ttyS0,115200'依然是相同提示信息,只不过终端输出了更多的启动硬件检测信息,但是没有登陆控制台。
所以还是按照Easy headless KVM deployment with virt-install设置。
终端安装模式
最初我使用的参数是
--extra-args="console=tty0 console=ttyS0,115200"(模拟原先设置KVM虚拟机串口输出的参数)报错
WARNING Did not find 'console=ttyS0' in --extra-args, which is likely required to see text install output from the guest.参考 KVM Guest installed from console. But how to get to the guest's console? 和 KVM Install from Console 应该改成
--extra-args="console=tty0"。不过依然报错,但是只有终端输出没有终端输入。
上述采用了控制台方式安装
但是出现报错
在打印超时日志后,进入终端修复模式
删除重建虚拟机
尝试
如果使用
--os-variant centos7会出现ERROR Error validating install location: Distro 'centos7' does not exist in our dictionary报错,原来这个参数是根据osinfo-query os输出确定的。可以使用rhl7.3参考 Installing Virtual Machines with virt-install, plus copy pastable distro install one-liners
可以尝试一下参考前面Ubuntu串口安装方法
改为采用VNC方式,通过图形界面处理:
但是这次没有启动consle,只显示
参考
Last updated
Was this helpful?