Skip to content

Rancher Rocky Linux 9 虚拟机操作文档

1. 环境概述

项目说明
宿主机 OSLinux
虚拟化平台KVM + libvirt
虚拟机名称rancher-rocky9-vm1
操作系统Rocky Linux 9
用途Rancher/Kubernetes 节点
vCPU8
内存32 GiB
网络模式libvirt default NAT(192.168.122.0/24
存储池kvm
系统盘kvm/rancher-rocky9-vm1.qcow2
cloud-init seedkvm/rancher-rocky9-vm1-seed.iso

2. 一键创建虚拟机

2.1 脚本位置

bash
/home/xxx/create-rancher-rocky9-vm.sh

2.2 默认创建

bash
/home/xxx/create-rancher-rocky9-vm.sh

2.3 自定义参数

bash
# 创建第二台 VM,4 vCPU / 16GB 内存
/home/xxx/create-rancher-rocky9-vm.sh \
  -n rancher-rocky9-vm2 \
  -c 4 \
  -m 16384

2.4 支持的参数

参数说明默认值
-n, --name NAME虚拟机名称rancher-rocky9-vm1
-c, --vcpus NUMvCPU 数量8
-m, --memory MB内存大小(MB)32768
-p, --pool POOL存储池名称kvm
-d, --disk VOL系统盘卷名rancher-rocky9-vm1.qcow2
-s, --seed VOLcloud-init seed ISO 卷名rancher-rocky9-vm1-seed.iso
--network SPEC网络配置network=default,model=virtio
-h, --help显示帮助-

2.5 脚本前置要求

  • 已安装 virt-installvirsh
  • kvm 存储池中已存在:
    • rancher-rocky9-vm1.qcow2
    • rancher-rocky9-vm1-seed.iso
  • libvirt default 网络已激活

3. 日常运维命令

3.1 查看虚拟机状态

bash
# 查看所有虚拟机
virsh list --all

# 查看指定 VM 详情
virsh dominfo rancher-rocky9-vm1

# 查看 VM IP 地址
virsh domifaddr rancher-rocky9-vm1

3.2 电源管理

bash
# 开机
virsh start rancher-rocky9-vm1

# 正常关机(发送 ACPI 信号)
virsh shutdown rancher-rocky9-vm1

# 强制关机
virsh destroy rancher-rocky9-vm1

# 重启
virsh reboot rancher-rocky9-vm1

# 设置开机自启
virsh autostart rancher-rocky9-vm1

# 取消开机自启
virsh autostart --disable rancher-rocky9-vm1

3.3 连接虚拟机

3.3.1 串口控制台

bash
virsh console rancher-rocky9-vm1

退出控制台快捷键:Ctrl + ]

3.3.2 VNC 远程桌面

bash
# 查看 VNC 端口
virsh domdisplay rancher-rocky9-vm1

输出示例:vnc://localhost:4,对应宿主机端口 5904

本地直接连接:

bash
vncviewer localhost:5904

通过 SSH 隧道从外部访问:

bash
ssh -L 5904:localhost:5904 user@<宿主机IP>
# 然后在本地用 VNC 客户端连接 localhost:5904

3.3.3 SSH 连接

VM 位于 NAT 网络,需从宿主机 SSH 登录:

bash
# 先获取 IP
virsh domifaddr rancher-rocky9-vm1

# 从宿主机 SSH 登录
ssh root@192.168.122.249

如需从外部访问 VM,可通过 SSH 端口转发:

bash
ssh -L 2222:192.168.122.249:22 user@<宿主机IP>
# 外部连接:ssh -p 2222 root@localhost

4. 存储管理

4.1 查看存储卷

bash
# 列出 kvm 池中的所有卷
virsh vol-list kvm

# 查看卷详情
virsh vol-info --pool kvm rancher-rocky9-vm1.qcow2

4.2 扩容系统盘

bash
# 1. 关闭虚拟机
virsh shutdown rancher-rocky9-vm1

# 2. 扩容卷(例如增加到 100G)
virsh vol-resize --pool kvm rancher-rocky9-vm1.qcow2 100G

# 3. 启动虚拟机
virsh start rancher-rocky9-vm1

# 4. 进入系统后扩展文件系统
ssh root@<VM_IP>
# Rocky Linux 使用 LVM 时:
pvresize /dev/vda3
lvextend -l +100%FREE /dev/mapper/rl-root
xfs_growfs /

注意:扩容前请确认文件系统布局,命令可能因分区方式不同而变化。

4.3 创建快照

bash
# 创建快照
virsh snapshot-create-as rancher-rocky9-vm1 snap-2026-07-14 \
  --description "安装完成后的初始状态"

# 列出快照
virsh snapshot-list rancher-rocky9-vm1

# 恢复快照
virsh snapshot-revert rancher-rocky9-vm1 snap-2026-07-14

# 删除快照
virsh snapshot-delete rancher-rocky9-vm1 snap-2026-07-14

5. 网络配置

5.1 当前网络:default NAT

VM 通过 libvirt 默认 NAT 网络访问外网,IP 段为 192.168.122.0/24

bash
# 查看 default 网络详情
virsh net-info default
virsh net-edit default

5.2 如需改为桥接网络

如果后续创建了 br0 网桥,可修改 VM XML:

bash
virsh edit rancher-rocky9-vm1

将网络接口部分改为:

xml
<interface type='bridge'>
  <source bridge='br0'/>
  <model type='virtio'/>
</interface>

或使用一键脚本重新创建:

bash
/home/xxx/create-rancher-rocky9-vm.sh --network bridge=br0,model=virtio

6. 备份与恢复

6.1 备份虚拟机磁盘

bash
# 关闭 VM 后备份
virsh shutdown rancher-rocky9-vm1
virsh vol-download --pool kvm rancher-rocky9-vm1.qcow2 \
  /backup/rancher-rocky9-vm1-$(date +%Y%m%d).qcow2

6.2 备份 VM XML 配置

bash
virsh dumpxml rancher-rocky9-vm1 > /backup/rancher-rocky9-vm1.xml

6.3 从备份恢复

bash
# 重新定义 VM
virsh define /backup/rancher-rocky9-vm1.xml

# 替换磁盘卷后启动
virsh start rancher-rocky9-vm1

7. 故障排查

7.1 虚拟机无法启动

bash
# 查看 VM 日志
virsh logs rancher-rocky9-vm1

# 查看 libvirt 日志
sudo journalctl -u libvirtd -f

# 查看 QEMU 日志
sudo cat /var/log/libvirt/qemu/rancher-rocky9-vm1.log

7.2 获取不到 IP

bash
# 确认 default 网络已激活
virsh net-list --all

# 必要时重启 default 网络
virsh net-destroy default
virsh net-start default

# 查看 VM 网卡 MAC 地址
virsh domiflist rancher-rocky9-vm1

# 查看 libvirt DHCP 租约
sudo cat /var/lib/libvirt/dnsmasq/virbr0.status

7.3 VNC 无法连接

bash
# 确认 VNC 端口
virsh domdisplay rancher-rocky9-vm1

# 确认防火墙是否放行 590x 端口
sudo ss -tlnp | grep 590

# 临时放行(如需要)
sudo firewall-cmd --add-port=5904/tcp

7.4 存储卷不存在错误

bash
# 确认卷存在
virsh vol-list kvm

# 如不存在,需重新准备系统盘和 seed ISO

8. 销毁虚拟机

bash
# 强制关机并删除定义及磁盘
virsh destroy rancher-rocky9-vm1 2>/dev/null || true
virsh undefine rancher-rocky9-vm1 --remove-all-storage --nvram

--remove-all-storage 会同时删除关联的存储卷,请谨慎使用。


9. 相关文件清单

文件路径说明
一键创建脚本/home/xxx/create-rancher-rocky9-vm.sh创建/重建 VM
操作文档/home/xxx/docs/rancher-rocky9-vm/operations.md本文档
VM 磁盘kvm/rancher-rocky9-vm1.qcow2系统盘
cloud-init seedkvm/rancher-rocky9-vm1-seed.iso初始化配置

10. 常用命令速查

bash
# 查看所有 VM
virsh list --all

# 查看 VM 信息
virsh dominfo rancher-rocky9-vm1

# 查看 VM IP
virsh domifaddr rancher-rocky9-vm1

# 开机/关机/重启
virsh start rancher-rocky9-vm1
virsh shutdown rancher-rocky9-vm1
virsh destroy rancher-rocky9-vm1
virsh reboot rancher-rocky9-vm1

# 控制台/VNC
virsh console rancher-rocky9-vm1
virsh domdisplay rancher-rocky9-vm1

# 一键重建
/home/xxx/create-rancher-rocky9-vm.sh