需依次验证cpu虚拟化支持、加载kvm模块、创建/dev/kvm设备并加入kvm组;virt-install必须指定--virt-type kvm、--disk size=和format=qcow2、--network及--graphics参数;ssh失败主因是sshd未启用或防火墙/nat配置不当;qcow2扩容后须在客户机内执行growpart与resize2fs等步骤。

如何确认宿主机支持 KVM 并启用内核模块
大多数现代 x86_64 CPU 都支持 KVM,但默认不一定加载模块或开启 BIOS 设置。先验证硬件和内核是否就绪,否则后续所有操作都会失败。
- 运行
egrep -c '(vmx|svm)' /proc/cpuinfo:结果为 0 表示 CPU 不支持(老机器)或 BIOS 中禁用了虚拟化(常见于笔记本,默认关闭) -
lsmod | grep kvm应输出kvm_intel或kvm_amd;若无输出,需手动加载:sudo modprobe kvm_intel(Intel)或sudo modprobe kvm_amd(AMD) - 模块加载后,
/dev/kvm必须存在且可读写;普通用户访问需加入kvm用户组:sudo usermod -aG kvm $USER,然后重新登录
用 virt-install 创建最小可用虚拟机的必要参数
virt-install 是最直接的命令行安装入口,但漏掉几个关键参数会导致启动失败、无网卡、磁盘不可写等“黑屏/卡住”现象。
- 必须指定
--virt-type kvm,否则可能回退到 QEMU 软模拟(极慢),尤其在嵌套虚拟化环境里容易误判 -
--disk至少要带size=和format=qcow2;裸file=路径不写扩展名或用raw格式,后续 resize 会麻烦 - 网络必须显式加
--network network=default(或--network bridge=br0),缺省值在某些发行版里是空的,导致装完无法联网 - 图形控制台建议加
--graphics none(纯串口)或--graphics vnc,listen=0.0.0.0;不加可能卡在 “Starting installer…” 无响应
虚拟机启动后无法 SSH 登录的典型原因
安装完成、能 ping 通 IP,但 ssh 连接被拒绝或超时,基本不是密码问题,而是网络或服务配置没对上。
cqcms通用企业建站介绍 cqcms蓝色通用企业网站源码(带手机端)后台非常简单,一个后台同时管理PC和wap。把图片和文字稍加修改,就可以使用。适合任何企业网站 安装步骤: 1、下载文件,并且解压到网站的根目录,配置好apache/IIS虚拟主机以及伪静态;2、安装网址http://localhost/(localhost为您网址地址)3、网站后台入口 http://localhost/ad
- 检查宿主机防火墙:
sudo iptables -L -n | grep :22—— libvirt 默认创建的virbr0网桥不自动放行外部 SSH 流量,需加规则或改用bridge模式 - 客户机内
sshd是否真正运行:sudo systemctl is-active sshd;很多精简镜像(如 Cloud images)默认禁用sshd,需手动sudo systemctl enable --now sshd - 确认客户机获取的是
virbr0网段 IP(如 192.168.122.0/24),而不是主机的物理网段;跨网段访问需额外路由或 NAT 规则 - Cloud-init 镜像首次启动会重置 SSH 密钥,
ssh-keygen -R [ip]清缓存再试,否则报WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
qcow2 镜像扩容后客户机看不到新空间
qcow2 文件可以在线 qemu-img resize,但客户机内部文件系统不会自动延伸,这是最常被跳过的一步。
- 先停机或确保客户机已关机,执行:
qemu-img resize /var/lib/libvirt/images/vm1.qcow2 +10G - 启动客户机后,用
lsblk查看磁盘设备(如/dev/vda)是否已识别新大小;若没变,说明未触发 udev 重扫描,可尝试echo 1 > /sys/block/vda/device/rescan - 分区表需手动扩展:
growpart /dev/vda 1(扩展第一个分区),再resize2fs /dev/vda1(ext4)或xfs_growfs /(xfs) - 若原始镜像是 LVM 分区,还需
pvresize→lvextend→resize2fs三步,顺序不能错
KVM 的坑不在安装本身,而在“以为装完了”的那一刻——网络、存储、权限、客户机初始化,每个环节都依赖前一步的精确状态。少一个 group、漏一行 resize、错一个网桥名,就会卡在看似无关的地方。









