qemu-kvm
本文最后更新于:2024年11月5日 晚上
qemu-kvm
book
virt-manager
How to Install and Configure KVM on Debian 11 Bullseye Linux
1
2
3
4sudo apt install virt-manager -y
sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart defaultuos20-1060 arm64建议通过下方命令安装:
1
2
3
4sudo apt-get install libvirt0 libvirt-daemon qemu virt-manager bridge-utils libvirt-clients python-libvirt qemu-efi uml-utilities virtinst qemu-system libvirt-daemon-system
sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart default
libvirt
- KVM虚拟化解决方案系列之KVM管理工具-libvirt介绍篇
- CentOS创建KVM虚拟机-在Edit→Preferences里面开启XML文件编辑功能
- libvirt的virsh命令和qemu参数转换
- libvirt and QEMU 基础篇
- KVM虚拟化解决方案系列之KVM管理工具-libvirt介绍篇
- CentOS创建KVM虚拟机-在Edit→Preferences里面开启XML文件编辑功能
- libvirt的virsh命令和qemu参数转换
- libvirt and QEMU 基础篇
virsh
- virsh命令来创建虚拟机
- 虚拟化部署和管理指南
- 15.5 更改引导选项
- libvirt-使用iso镜像创建主机&修改启动盘&启动
- Libvirt: how to pass qemu command line args?
qemu-img
如果你需要创建一个新的虚拟磁盘镜像,你可以使用 qemu-img
工具来完成。
1 |
|
virt-format
如果你已经有一个存在的 qcow2
格式的虚拟磁盘镜像,但希望对其进行格式化(即清空数据,重置为初始状态)。
安装
libguestfs-tools
包:首先确保你已经安装了
libguestfs-tools
包,这个包中包含了virt-format
工具。1
sudo apt-get install libguestfs-tools # 对于基于 Debian/Ubuntu 的系统
或者
1
sudo yum install libguestfs-tools # 对于基于 CentOS/RHEL 的系统
使用
virt-format
命令格式化qcow2
虚拟磁盘镜像:假设你要格式化的虚拟磁盘镜像是
/var/lib/libvirt/images/mydisk.qcow2
,可以通过以下命令来执行格式化:1
virt-format --format=qcow2 -a /var/lib/libvirt/images/mydisk.qcow2
--format=qcow2
:指定要格式化为qcow2
格式。-a /var/lib/libvirt/images/mydisk.qcow2
:指定要操作的虚拟磁盘镜像文件路径。
确认格式化结果:
格式化完成后,你可以使用
virt-df
命令来查看虚拟磁盘镜像的分区和使用情况,确认数据已经被清空并且恢复到初始状态。1
virt-df -a /var/lib/libvirt/images/mydisk.qcow2
virt-install
CentOS
创建一个名为 yql-openeuler 的虚拟机,配置了适当的内存、CPU、磁盘、安装位置以及启动参数,以便正确连接到串口控制台和控制台输出:
1 |
|
参数说明:
--name yql-openeuler
:设置虚拟机的名称为yql-openeuler
。--ram 32768
:分配 32GB 内存给虚拟机(单位为 MB)。--vcpus 64
:分配 64 个虚拟 CPU 给虚拟机。--disk path=/inf/yql/yql-openeuler.qcow2,size=200
:指定虚拟机的磁盘文件路径和大小为 200GB。--location /inf/yql/openeuler-22.09-240618-x86_64-dvd.iso
:指定用于安装的 ISO 文件的位置。--os-type generic
:指定操作系统类型为通用类型。--network default
:指定虚拟机的网络接口为默认网络。--graphics none
:禁用图形界面。--console pty,target_type=serial
:设置虚拟机的控制台类型为串口控制台。-x 'console=ttyS0,115200n8 console=tty0'
:启动参数,设置串口控制台和控制台输出。--extra-args 'console=ttyS0,115200n8'
:额外的启动参数,设置串口控制台输出。
fedora
1 |
|
1 |
|
debian
1 |
|
/dev/vda
qemu一般将--disk path=/data/yql/fedora.qcow2,size=300
挂在到虚拟机的/dev/vda
或/dev/sda
。
1 |
|
1 |
|
这里假设/dev/vda
,现在我们来创建上面lsblk展示的分区结构。
1. 分区创建
使用 parted
创建分区:
1 |
|
2. 配置文件系统
接下来,为 vda1
和 vda2
创建文件系统:
1 |
|
3. 设置 LVM
创建物理卷、卷组和逻辑卷:
1 |
|
在设置 LVM 时,创建的逻辑卷可以放置在 /dev/mapper/
下。这实际上是 LVM 的默认行为,LVM 逻辑卷会在 /dev/mapper/
目录下自动创建符号链接,指向 /dev/<卷组名>/<逻辑卷名>
。
- 卷组名称为
ctyunos
。 - 逻辑卷名称为
root
和home
。
会看到以下两个设备路径:
/dev/ctyunos/root
和/dev/mapper/ctyunos-root
/dev/ctyunos/home
和/dev/mapper/ctyunos-home
这两个路径实际上指向同一个逻辑卷设备。
4. 格式化 LVM 逻辑卷
为逻辑卷创建 XFS 文件系统:
1 |
|
5. 挂载分区
挂载分区和逻辑卷:
1 |
|
6. 更新 /etc/fstab
在安装完成或手动配置时,将这些挂载点添加到 /etc/fstab
以便系统启动时自动挂载:
1 |
|
这些命令确保了 EFI 分区使用 vfat
文件系统,并且所有剩余空间都分配给 vda3
,用于 LVM 管理。
这一章节只是为了展示qumu如何将--disk path=/data/yql/fedora.qcow2,size=300
挂在到虚拟机的/dev/vda
或/dev/sda
,并在磁盘/dev/sda
上创建了用uefi
引导的完整文件系统,/
、/home
是 lvm
逻辑卷。
kickstart
ks.cfs位于/root目录下。
1 |
|
1 |
|
克隆一个虚拟机
1 |
|
启动虚拟机
1 |
|
将虚拟机vcpu扩充到16核心
1 |
|
重启虚拟机后验证是否16核心:
1 |
|
删除虚拟机
使用 virsh
命令中取消定义一个带有 NVRAM 的虚拟机:
1 |
|
参数说明:
undefine
表示取消定义(即删除)一个虚拟机。--nvram
选项用于指示虚拟机具有 NVRAM(非易失性随机存储器),需要一并删除。wujing
是要删除的虚拟机的名称或定义文件的路径。
vcpupin
共享剪切板
How can I copy&paste from the host to a KVM guest?
在虚拟机上安装spice-vdagent即可:
1
sudo apt install spice-vdagent
共享目录
在宿主机查看虚拟机共享目录配置:
在虚拟机上执行下方命令:
1 |
|
如果在虚拟机上想启动就默认挂载,可以写入 /etc/fstab:
1 |
|
在虚拟机上重新挂载/etc/fstab:
1 |
|
时间
-
1
sudo apt install systemd-timesyncd
网络虚拟化
- QEMU用户模式网络
- QEMU 网络配置
- Linux 内核调试 七:qemu网络配置
- 详解QEMU网络配置的方法
- 详解:VirtIO Networking 虚拟网络设备实现架构
- 虚拟化技术 — Libvirt 异构虚拟化管理组件
- Ubuntu 20.04 物理机 QEMU-KVM + Virt-Manager 创建桥接模式的虚拟机
- [Debian10]使用KVM虚拟机并配置桥接网络
显示虚拟化
KVM性能优化
ksm
VIFO透传
qemu
qemu monitor
x86_64下qemu虚拟x86_64
arm64下qemu虚拟arm64
- ARM平台检测是否支持虚拟化的几种常见方法
- X86_64 环境下使用 QEMU 虚拟机安装 ARM 版 EulerOS 小记
- 利用qemu-system-aarch64调试Linux内核(arm64)
- QEMU搭建arm64 Linux调试环境
x86_64下qemu虚拟arm64
kunpeng 920
1 |
|
该命令配置和启动一个基于 ARM 架构(aarch64)的虚拟机,并将所有输出重定向到当前终端。以下是该命令的详细解析:
/usr/libexec/qemu-kvm
:指定使用qemu-kvm
可执行文件来启动虚拟机,通常位于/usr/libexec/
目录下。-smp 8
:为虚拟机分配 8 个虚拟 CPU。-enable-kvm
:启用 KVM 硬件加速,利用主机的 CPU 资源来提升虚拟机的性能。-cpu host
:配置虚拟机的 CPU 设置,使其与主机的 CPU 一致,以便最大限度地利用主机 CPU 的特性。-m 16G
:分配 16GB 内存给虚拟机。-machine virt-rhel7.6.0,gic-version=3
:指定虚拟机的机器类型为virt-rhel7.6.0
,并设置 ARM 架构的中断控制器 GIC 的版本为 3。-drive file=/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw,if=pflash,format=raw
:指定用于 UEFI 引导的固件文件(这是一个 pflash 设备),通常用于 ARM 架构系统的引导。-drive file=/var/lib/libvirt/qemu/nvram/wujing_VARS.fd,if=pflash,format=raw
:指定虚拟机的 NVRAM 文件(另一个 pflash 设备),用于存储 UEFI 固件变量和配置。-hda /data_vm/wujing/virsh/wujing/wujing.qcow2
:指定虚拟机的硬盘镜像文件为wujing.qcow2
,这是虚拟机的主存储设备,包含操作系统和数据。-nographic
:禁用虚拟机的图形输出,将所有输出(包括引导信息和操作系统日志)重定向到当前终端,使其适合在非图形界面或远程 SSH 环境中使用。
Mac OSX
- 使用Qemu在Mac上安装虚拟机
- 使用QEMU在macOS上创建Ubuntu 20.04桌面虚拟机
- Running virt-manager and libvirt on macOS
- Mac安装Linux的KVM管理工具virt-manager
- homebrew-virt-manager
- macOS系统和mac装Windows系统开启虚拟化
- macOS | nvram boot-args的作用及设置方式
- GitHub - kholia/OSX-KVM: Run macOS on QEMU/KVM. With OpenCore + Big Sur + Monterey + Ventura support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.
- Linux kernel debug on macOS 搭建可视化内核debug环境
- UTM - Virtual machines for iOS and macOS
- Parallels Desktop 19.2.1 54832 破解教程(pd19永久授权)
- 如何轻松扩展Parallel Desktop下的Ubuntu虚拟机磁盘空间
buildroot
error: 'ARPHRD_MCTP' undeclared (first use in this function)#20694
buildroot/board/qemu/aarch64-virt/readme.txt
qemu_aarch64_virt_defconfig:
1
qemu-system-aarch64 -M virt -cpu cortex-a53 -nographic -smp 1 -kernel output/images/Image -append "rootwait root=/dev/vda console=ttyAMA0" -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -drive file=output/images/rootfs.ext4,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0
loongarch
openstack
- 什么是OpenStack?
- OpenStack是什么?
- OpenStack Installation Guide for Ubuntu
- 超详细ubuntu20安装搭建openstack
- Ubuntu 20使用devstack快速安装openstack最新版
vmware
VMware 共享文件夹
- 安装 Open VM Tools
- open-vm-tools使用共享文件夹
- open-vm-tools工具的安装与使用
- vmware使用open-vm-tools配置ubuntu共享文件夹
- VMware中Linux虚拟机挂载主机共享文件夹的方法
列出共享文件夹:
1
2vmware-hgfsclient
code- 这个命令列出所有在 VMware 虚拟机中配置的共享文件夹。在你的情况下,它显示了名为
code
的共享文件夹。
- 这个命令列出所有在 VMware 虚拟机中配置的共享文件夹。在你的情况下,它显示了名为
创建挂载点目录:
1
mkdir -p /mnt/hgfs
- 这个命令创建了一个挂载点目录
/mnt/hgfs
,如果目录已经存在则不会有任何效果。-p
选项确保目录的父目录也被创建(如果不存在)。
- 这个命令创建了一个挂载点目录
挂载共享文件夹:
1
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
- 这个命令使用
vmhgfs-fuse
挂载 VMware 虚拟机中的共享文件夹到/mnt/hgfs
目录。 .host:/
表示挂载主机的共享文件夹。-o subtype=vmhgfs-fuse,allow_other
是挂载选项,subtype
指定了文件系统的类型,allow_other
允许其他用户访问挂载点。
- 这个命令使用
取消挂载共享文件夹:
1
umount /mnt/hgfs
- 这个命令取消了之前挂载到
/mnt/hgfs
目录的文件系统。
- 这个命令取消了之前挂载到
将挂载设置添加到
/etc/fstab
:1
.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
- 这个命令将挂载配置添加到
/etc/fstab
文件中,以便在系统启动时自动挂载共享文件夹。 fuse.vmhgfs-fuse
是文件系统类型,defaults,allow_other
是挂载选项,0 0
表示不进行文件系统检查,也不进行备份。
- 这个命令将挂载配置添加到
总结:这些命令用于配置 VMware 的共享文件夹,使其在虚拟机中可用,并在系统启动时自动挂载。