环境说明

操作系统镜像:ubuntu-22.04.1-live-server-amd64.iso

可以直接去官网下载Get Ubuntu Server | Download | Ubuntu

宿主机OS使用的是最小化安装ubuntu-22.04

参考如下链接执行:

Ubuntu 22.04 之 KVM 安装手札-ubuntu20.04安装kvm

  1. 更新 Ubuntu 22.04
  2. 检查虚拟化是否开启
3、在 Ubuntu 22.04 上安装 KVM
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

参考链接:

KVM hypervisor: a beginners’ guide | Ubuntu

Install KVM Ubuntu 22.04 - Step-by-Step - Virtualization Howto

创建虚拟网桥
sudo virsh net-define /dev/stdin <<EOF
<network>
  <name>virbr0</name>
  <forward mode="bridge"/>
  <bridge name="virbr0"/>
</network>
EOF
sudo virsh net-start virbr0
sudo virsh net-autostart virbr0
4、创建 KVM虚拟机
virt-install --name=k8s01 --ram 1024 --vcpus=2 --disk path=~/k8s01.img,size=30 --accelerate --cdrom ~/CentOS-7-x86_64-DVD-2009.iso

virt-install --name=k8s02 --ram 1024 --vcpus=2--disk path=~/k8s02.qcow2,size=10,format=qcow2,bus=virtio --location=~/CentOS-7-x86_64-DVD-2009.iso --network network=default,model=virtio --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
5、登录 KVM虚拟机
virt-viewer --connect qemu:///system --wait k8s01

=========================================================================

报错记录

视图通过下面的这些方式创建ubuntu22.04虚拟机均失败

  sudo virt-install --name=rke2-master-0-1 --disk path=ubuntu22.04-test.qcow2,size=20 --ram=8096 --vcpus=4 --os-variant ubuntu22.04 --network bridge=virbr0 --graphics vnc,listen=0.0.0.0 --noautoconsole --location 'http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/' --extra-args 'console=ttyS0,115200n8 serial'

sudo virt-install --name=rke2-master-0-1 --disk path=ubuntu22.04-test.qcow2,size=20 --ram=8096 --vcpus=4 --os-variant ubuntu22.04 --network bridge=virbr0 --graphics vnc,listen=0.0.0.0 --noautoconsole --location 'http://archive.ubuntu.com/ubuntu/dists/jammy' --extra-args 'console=ttyS0,115200n8 serial'

sudo virt-install --name=rke2-master-0-1 --disk path=ubuntu22.04-test.qcow2,size=20 --ram=8096 --vcpus=4 --os-variant ubuntu22.04 --network bridge=virbr0 --graphics vnc,listen=0.0.0.0 --noautoconsole --cdrom ubuntu-22.04.3-live-server-amd64.iso --extra-args 'console=ttyS0,115200n8 serial'

sudo virt-install --name=rke2-master-0-1 --disk path=ubuntu22.04-test.qcow2,size=20 --ram=8096 --vcpus=4 --os-variant ubuntu22.04 --network bridge=virbr0 --graphics vnc,listen=0.0.0.0 --noautoconsole --location ubuntu-22.04.3-live-server-amd64.iso --extra-args 'console=ttyS0,115200n8 serial'

sudo virt-install --name rke2-master-0-1 --os-variant ubuntu22.04 --vcpus 4 --memory 8096 --location ubuntu-22.04.3-live-server-amd64.iso,kernel=/mnt/casper/vmlinuz,initrd=/mnt/casper/initrd --network bridge=virbr0,model=virtio --disk path=ubuntu22.04-test.qcow2,size=20 --graphics none --extra-args='console=ttyS0,115200n8 --- console=ttyS0,115200n8' --debug

报错如下

[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (guest:330) Setting Guest osinfo name <_OsVariant name=generic>
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (guest:330) Setting Guest osinfo name <_OsVariant name=ubuntu22.04>
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urlfetcher:71) Using scratchdir=/var/lib/libvirt/boot
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urldetect:285) Finding distro store for location=ubuntu-22.04.3-live-server-amd64.iso
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urldetect:875) variant=ubuntu22.04 has distro=ubuntu, looking for matching distro store to prioritize
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urldetect:884) Prioritizing distro store=<class 'virtinst.install.urldetect._UbuntuDistro'>
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urlfetcher:34) Generating iso filelist: ['xorriso', '-indev', 'ubuntu-22.04.3-live-server-amd64.iso', '-print', 'VIRTINST_BEGINLIST', '-find']
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urldetect:45) Failed to acquire file=current/images/MANIFEST: Couldn't acquire file /current/images/MANIFEST: iso doesn't have file=/current/images/MANIFEST
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urldetect:45) Failed to acquire file=current/legacy-images/MANIFEST: Couldn't acquire file /current/legacy-images/MANIFEST: iso doesn't have file=/current/legacy-images/MANIFEST
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urldetect:45) Failed to acquire file=daily/MANIFEST: Couldn't acquire file /daily/MANIFEST: iso doesn't have file=/daily/MANIFEST
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urlfetcher:46) Extracting iso file: ['xorriso', '-osirrox', 'on', '-indev', 'ubuntu-22.04.3-live-server-amd64.iso', '-extract', '/.disk/info', '/var/lib/libvirt/boot/virtinst-isoaog43vow-info']
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urlfetcher:105) Fetching URI: /.disk/info
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (urldetect:298) Detected class=_UbuntuDistro osvariant=None
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (installer:544) installer.detect_distro returned=None
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (osdict:216) No recommended value found for key='n-cpus', using minimum=1 * 2
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (guest:535) Prefer EFI => False
[Thu, 19 Oct 2023 15:32:19 virt-install 813519] DEBUG (cpu:282) Using default cpu mode=host-passthrough
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (guest:1094) Using num_pcie_root_ports=14
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (disk:236) DeviceDisk.check_path_search path=/var/lib/libvirt/boot
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (disk:236) DeviceDisk.check_path_search path=ubuntu-22.04.3-live-server-amd64.iso
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] WARNING (cli:309) ubuntu-22.04.3-live-server-amd64.iso may not be accessible by the hypervisor. You will need to grant the 'libvirt-qemu' user search permissions for the following directories: ['/home/test']
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (disk:236) DeviceDisk.check_path_search path=/home/test/ubuntu22.04-test.qcow2
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] WARNING (cli:309) /home/test/ubuntu22.04-test.qcow2 may not be accessible by the hypervisor. You will need to grant the 'libvirt-qemu' user search permissions for the following directories: ['/home/test']
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (disk:236) DeviceDisk.check_path_search path=/home/test/ubuntu-22.04.3-live-server-amd64.iso
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] WARNING (cli:309) /home/test/ubuntu-22.04.3-live-server-amd64.iso may not be accessible by the hypervisor. You will need to grant the 'libvirt-qemu' user search permissions for the following directories: ['/home/test']
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (cli:265)
Starting install...

Starting install...
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (urlfetcher:174) hasFile(/mnt/casper/vmlinuz) returning False
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (cli:255)   File "/usr/bin/virt-install", line 8, in <module>
    virtinstall.runcli()
  File "/usr/share/virt-manager/virtinst/virtinstall.py", line 1220, in runcli
    sys.exit(main())
  File "/usr/share/virt-manager/virtinst/virtinstall.py", line 1213, in main
    start_install(guest, installer, options)
  File "/usr/share/virt-manager/virtinst/virtinstall.py", line 961, in start_install
    fail(e, do_exit=False)
  File "/usr/share/virt-manager/virtinst/cli.py", line 255, in fail
    log.debug("".join(traceback.format_stack()))

[Thu, 19 Oct 2023 15:32:20 virt-install 813519] ERROR (cli:256) Couldn't find kernel for install tree.
[Thu, 19 Oct 2023 15:32:20 virt-install 813519] DEBUG (cli:258)
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtinst/virtinstall.py", line 941, in start_install
    domain = installer.start_install(
  File "/usr/share/virt-manager/virtinst/install/installer.py", line 685, in start_install
    self._prepare(guest, meter)
  File "/usr/share/virt-manager/virtinst/install/installer.py", line 391, in _prepare
    self._prepare_treemedia(guest, meter, unattended_scripts)
  File "/usr/share/virt-manager/virtinst/install/installer.py", line 364, in _prepare_treemedia
    kernel, initrd, kernel_args = self._treemedia.prepare(guest, meter,
  File "/usr/share/virt-manager/virtinst/install/installertreemedia.py", line 279, in prepare
    kernel, initrd = self._prepare_kernel_url(guest, cache, fetcher)
  File "/usr/share/virt-manager/virtinst/install/installertreemedia.py", line 211, in _prepare_kernel_url
    kernelpath, initrdpath = _check_kernel_pairs()
  File "/usr/share/virt-manager/virtinst/install/installertreemedia.py", line 208, in _check_kernel_pairs
    raise RuntimeError(  # pragma: no cover
RuntimeError: Couldn't find kernel for install tree.

使用virsh-manager基于iso创建虚拟机

$ sudo apt install -y virt-manager

$ virt-manager

$ virsh shutdown ubuntu22.04

Domain 'ubuntu22.04' is being shutdown

$ virsh list --all

 Id   Name          State

------------------------------

 -    ubuntu22.04   shut off

克隆虚拟机

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐