当前位置: 首页 > news >正文

记录pve中使用libvirt创建虚拟机

pve中创建虚拟机

首先在pve网页中创建一个linux虚拟机,我用的是debian系统,过程省略
注意虚拟机cpu类型要设置为host

检查是否支持虚拟化

ssh分别进入pve和debian虚拟机

检查cpu是否支持虚拟化

egrep --color 'vmx|svm' /proc/cpuinfo
# 结果高亮显示vmx或svm则支持

检查是否支持嵌套虚拟化

# intel处理器,结果为Y表示已启用
cat /sys/module/kvm_intel/parameters/nested
# amd处理器,结果为1表示已启用
cat /sys/module/kvm_amd/parameters/nested

下载qcow2镜像

我这里下载了debian12的qcow2镜像

mkdir /data && cd /data
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2

自定义镜像(root密码、时区、软件源等)

在linux虚拟机中操作

# 先使用openssl生成个root用户的密码,备用
openssl passwd -1 123456# 安装guestfish工具
apt install guestfish # 使用guestfish编辑qcow2镜像内的文件
guestfish --rw -a  /data/debian-12-genericcloud-amd64.qcow2

进入guestfish后依次执行runlist-filesystemsmount /dev/sda1 /,然后开始修改文件

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.Type: ‘help’ for help on commands‘man’ to read the manual‘quit’ to quit the shell><fs> run
><fs> list-filesystems
/dev/sda1: ext4
/dev/sda14: unknown
/dev/sda15: vfat
><fs> mount /dev/sda1 /
><fs># 开始修改要自定义的文件
# 修改root密码, 把第一行root:*:19724:0:99999:7:::中的*改为上面openssl生成的密码
><fs> vi /etc/shadow# 修改时区为Shanghai
><fs> rm /etc/localtime
><fs> ln /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 修改sshd配置开启密码登录,把PasswordAuthentication值改为yes
vi /etc/ssh/sshd_config# 修改apt软件源,不同版本的配置路径可能不一样,这里忽略
vi /etc/apt/mirrors/# 退出编辑qcow2文件
quit

安装libvirt

# 安装包
apt install libvirt-daemon-system qemu-kvm# 启动默认的虚拟网卡
virsh net-start default
virsh net-autostart default

定义xml文件

新建文件/data/vm1.xml,内容如下:

<domain type='kvm'><name>vm1</name><memory unit='GiB'>1</memory>			<!-- 1G内存--><vcpu>1</vcpu>						<!-- 1个CPU --><os><type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type><boot dev='hd'/></os><devices><disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/data/debian-12-genericcloud-amd64.qcow2'/>		<!-- qcow2镜像文件路径 --><target dev='vda' bus='virtio'/></disk><interface type='network'><source network='default'/><model type='virtio'/></interface><console type='pty'><target type='serial' port='0'/></console></devices>
</domain>

启动虚拟机

# 定义虚拟机vm1
virsh define vm1.xml# 查看所有
virsh list --all# 启动vm1
virsh start vm1# 连接vm1,连接后敲回车,会提示输入root和密码
virsh console vm1
http://www.lryc.cn/news/532005.html

相关文章:

  • 【HTML性能优化】提升网站加载速度:GZIP、懒加载与资源合并
  • 三维空间全局光照 | 及各种扫盲
  • 数据库开发常识(10.6)——SQL性能判断标准及索引误区(1)
  • 网络爬虫js逆向之某音乐平台案例
  • Spark--算子执行原理
  • 事件驱动架构(EDA)
  • C++ 入门速通-第5章【黑马】
  • 2025春招,深度思考MyBatis面试题
  • 排序算法--冒泡排序
  • 简易C语言矩阵运算库
  • 通过C/C++编程语言实现“数据结构”课程中的链表
  • 【分布式架构理论3】分布式调用(2):API 网关分析
  • 基于Kamailio、MySQL、Redis、Gin、Vue.js的微服务架构
  • 6S模型的编译问题解决
  • C++11详解(二) -- 引用折叠和完美转发
  • 实验十四 EL和JSTL
  • 为什么在springboot中使用autowired的时候它黄色警告说不建议使用字段注入
  • DeepSeek大模型介绍、本地化部署与使用!【AI大模型】
  • 备考蓝桥杯嵌入式4:使用LCD显示我们捕捉的PWM波
  • 智能化转型2.0:从“工具应用”到“价值重构”
  • 机器学习之数学基础:线性代数、微积分、概率论 | PyTorch 深度学习实战
  • 9.PPT:儿童孤独症介绍【22】
  • 离散浣熊优化算法(DCOA)求解大规模旅行商问题(Large-Scale Traveling Salesman Problem,LTSP),MATLAB代码
  • Java 引入和使用jcharset,支持UTF-7字符集
  • rust安装笔记
  • 扣子平台的选择器节点:让智能体开发更简单,扣子免费系列教程(17)
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_sprintf_num 函数
  • Vue的状态管理:用响应式 API 做简单状态管理、状态管理库(Pinia )
  • AI工具如何辅助写文章(科研版)
  • LEED绿色建筑认证的重要意义