跳转至

virt-install安装Ubuntu

更新于2021-01-27

起步用virsh创建虚拟机比较难搞.先用virt-install安装.
virt-install 是个便捷的命令行工具.

ubuntu下安装virt-install

Bash
1
sudo apt install virtinst 
详见:virtinst

virt-install参数详解

详见: linux.die.net--virt-install

创建虚拟机

由于ubuntu镜像原因[详见文章末尾],18.04,20.04建议用VNC方式安装. 16.04可以以串口模式安装.

查看os-variant

Bash
1
2
sudo apt install  libosinfo-bin
osinfo-query os

VNC模式

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
virt-install \
    --virt-type kvm \
    --name ubuntu18 \
    --vcpus 4 \
    --ram 4048 \
    --cdrom /path/to/ubuntu-18.04.5-server-amd64.iso \
    --disk /path/to/ubuntu18.qcow2,format=qcow2,size=16 \
    --network bridge=br0 \
    --os-type=linux \
    --os-variant=ubuntu18.04 \
    --graphics vnc,password=123456,listen=0.0.0.0,port=5900
打开VNC客户端,连接上宿主机,端口是5900
正常安装ubuntu
配置IP(默认dhcp分配)后,可以SSH连接了
启动串口服务,可以用virsh console命令连接了.

串口无显卡模式

这里使用串口的方式安装,无显卡

执行脚本

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
virt-install \
    --virt-type kvm \
    --name ubuntu20.01 \
    --vcpus 2 \
    --ram 2048 \
    --location /path/to/os.iso \
    --disk /path/to/image.qcow2,format=qcow2,size=16 \
    --network bridge=br0 \
    --os-type=linux \
    --os-variant=ubuntu20.04 \
    --graphics none \
    --extra-args='console=ttyS0'

安装SSH服务

安装时选择ssh安装ssh服务.

DHCP

默认guest会用DHCP获取IP
没有VNC的情况下可以在宿主机上用arp -a查看新增IP
然后SSH到guest.

启动串口服务

默认没有启动串口服务, 所以需要ssh进入系统后,手动启动串口服务.

Bash
1
2
sudo systemctl start serial-getty@ttyS0
sudo systemctl enable serial-getty@ttyS0

测试镜像

  • ubuntu16.04
  • ubuntu18.04
  • ubuntu20.04

错误

串口模式下LIVECD镜像安装会提示:RuntimeError: Couldn't find kernel for install tree.
详见: couldnt-find-hvm-kernel-for-ubuntu-tree
using-virt-install-to-install-ubuntu-server-18-04-but-hangs
所以还是VNC安装吧;
玩的开心.