创建虚拟机

概述

在Ubuntu上创建KVM虚拟机有以下几种方式:

推荐使用virt-install,主要原因是通用性 - 这个工具是RedHat开发,可以在RHEL和Ubuntu上使用,并且Ubuntu Server手册主要介绍这个工具。

ubuntu-vm-builder现在只是vmbuilder(属于pyton-vm-builder包)的wrpper,主要维护用于兼容旧的脚本。

创建虚拟机

参考在CentOS中部署KVM

安装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-installInstalling Virtual Machines with virt-install, plus copy pastable distro install one-linersvirt-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?