KVM Virtualization Installation and Configuration Report
System: openEuler 25.09 (x86_64)
CPU: AMD (SVM hardware virtualization support)
Date: 2026-07-12
Physical NIC: enp2s0 (30:85:a9:a3:66:47)
Host IP: 192.168.3.88/24
Table of Contents
- Environment Check
- Install Software Packages
- Bridge Network Configuration
- Service Management
- Verification Results
- Usage Guide
- Troubleshooting
1. Environment Check
1.1 CPU Virtualization Support
The CPU flags include svm (AMD SVM virtualization extension), indicating hardware acceleration support.
1.2 KVM Kernel Modules
Loaded modules before installation:
kvm_amd 241664 0
ccp 196608 1 kvm_amd
kvm 1449984 1 kvm_amd
irqbypass 12288 1 kvm
1.3 Original Network Configuration
enp2s0: 192.168.3.88/24, gateway 192.168.3.1, DNS 192.168.3.1
2. Install Software Packages
2.1 Installation Command
dnf install -y qemu-kvm qemu-img libvirt libvirt-daemon \
libvirt-daemon-driver-qemu virt-manager bridge-utils \
virt-install libguestfs-tools
2.2 Package List
| Package | Version | Description |
|---|---|---|
qemu / qemu-img |
8.2.0 | KVM virtualization engine and disk image tools |
libvirt |
9.10.0 | Virtualization management library |
libvirt-daemon |
9.10.0 | Virtualization management daemon |
libvirt-daemon-driver-qemu |
9.10.0 | QEMU driver |
virt-manager |
4.1.0 | Graphical management interface |
virt-install |
4.1.0 | Command-line VM creation tool |
bridge-utils |
1.7.1 | Bridge networking utilities |
libguestfs |
1.56.2 | VM disk editing tools |
Total: 135 packages installed (including dependencies), download size 65 MB, disk usage 227 MB.
3. Bridge Network Configuration
3.1 Network Topology
┌──────────────────┐
│ br0 │ ← 192.168.3.88/24, GW 192.168.3.1
│ (Linux Bridge) │
└────────┬─────────┘
│
┌────────┴─────────┐
│ enp2s0 │ ← Physical NIC (bridge slave)
│ (slave/port) │
└──────────────────┘
│
┌─────────┴──────────┐
│ Local Network Switch │
│ (192.168.3.0/24) │
└────────────────────┘
3.2 Configuration Steps
Use nmcli to create the bridge:
# 1. Create bridge connection br0 with static IP
nmcli connection add type bridge con-name br0 ifname br0 \
ipv4.addresses 192.168.3.88/24 \
ipv4.gateway 192.168.3.1 \
ipv4.dns 192.168.3.1 \
ipv4.method manual
# 2. Add enp2s0 as a bridge port
nmcli connection add type ethernet con-name br0-port-enp2s0 \
ifname enp2s0 master br0
# 3. Restart network service
systemctl restart NetworkManager
3.3 Persistent Configuration Files
| File | Purpose |
|---|---|
/etc/sysconfig/network-scripts/ifcfg-br0 |
Bridge interface configuration (IP, gateway, DNS) |
/etc/sysconfig/network-scripts/ifcfg-br0-port-enp2s0 |
Physical NIC bridge slave configuration |
/etc/sysconfig/network-scripts/ifcfg-enp2s0.bak |
Backup of original enp2s0 configuration |
4. Service Management
4.1 Start and Enable Services
systemctl start libvirtd
systemctl enable libvirtd
4.2 Service Status
| Service | Port/Socket | Purpose | Startup Enabled |
|---|---|---|---|
libvirtd.service |
— | Main daemon | |
libvirtd.socket |
/var/run/libvirt/libvirt-sock | Client connections | |
libvirtd-ro.socket |
Read-only socket | Read-only management | |
libvirtd-admin.socket |
Admin socket | Administrator interface | |
virtlockd.socket |
— | VM lock management | |
virtlogd.socket |
— | VM logging management |
4.3 Default libvirt Network
- Name: default
- Mode: NAT
- Subnet: 192.168.122.0/24
- DHCP Range: 192.168.122.2 – 192.168.122.254
- Status: Active
5. Verification Results
5.1 Check Summary
| Check Item | Command | Result |
|---|---|---|
| KVM kernel module | lsmod | grep kvm |
kvm_amd loaded |
| libvirtd service | systemctl is-active libvirtd |
|
| Bridge IP | ip addr show br0 |
|
| Bridge member status | bridge link show |
|
| Default route | ip route |
|
| Gateway connectivity | ping 192.168.3.1 |
|
| virsh available | virsh list --all |
|
| virt-manager available | which virt-manager |
|
| virt-install available | which virt-install |
5.2 Detailed Output
=== Bridge Interface Status ===
br0: UP 192.168.3.88/24
=== Bridge Members ===
enp2s0: master br0 state forwarding
=== Routing Table ===
default via 192.168.3.1 dev br0
192.168.3.0/24 dev br0
=== Default libvirt Network ===
default (NAT) 192.168.122.0/24 — Active
6. Usage Guide
6.1 Graphical Management (Recommended)
virt-manager
Requires desktop environment (GNOME/KDE/Xfce, etc.). When creating a VM in virt-manager, select network
br0to use bridged mode.
6.2 Command-Line VM Creation
virt-install \
--name vm-name \
--memory 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/vm-name.qcow2,size=20 \
--network bridge=br0 \
--cdrom /path/to/installer.iso \
--graphics vnc \
--os-variant detect=on,name=generic
6.3 Common virsh Commands
virsh list --all # List all VMs
virsh start <vm-name> # Start VM
virsh shutdown <vm-name> # Graceful shutdown
virsh destroy <vm-name> # Force stop
virsh dominfo <vm-name> # View VM info
virsh vncdisplay <vm-name> # View VNC port
virsh net-list --all # List networks
virsh net-info default # View network details
6.4 VM Disk Path
Default storage pool: /var/lib/libvirt/images/
7. Troubleshooting
7.1 Bridge Interface DOWN
# Check if physical NIC is attached to bridge
bridge link show
# Reload NetworkManager config
nmcli connection reload
systemctl restart NetworkManager
7.2 libvirtd Fails to Start
# View detailed logs
journalctl -u libvirtd -n 50 --no-pager
# Check configuration syntax
virsh net-dumpxml default
7.3 VM Cannot Obtain IP (Bridged Mode)
- Confirm physical Ethernet cable is connected
- Ensure upstream switch does not have port security or MAC filtering enabled
- Check logs in
/var/lib/libvirt/dnsmasq/
7.4 Restore Original Network Configuration
# Remove bridge configuration
nmcli connection delete br0
nmcli connection delete br0-port-enp2s0
# Restore physical NIC config
cp /etc/sysconfig/network-scripts/ifcfg-enp2s0.bak \
/etc/sysconfig/network-scripts/ifcfg-enp2s0
# Restart network
systemctl restart NetworkManager
Appendix
A. Backup Files
ifcfg-enp2s0.bak— Original physical NIC configuration, located at/etc/sysconfig/network-scripts/
B. Key Ports
| Port | Purpose |
|---|---|
| 16509/TCP | libvirt TLS |
| 5900-59xx/TCP | VNC console |
| 16514/TCP | libvirt TCP |
| 69/UDP | DHCP (dnsmasq) |
C. Log Locations
| Log | Path |
|---|---|
| libvirt logs | /var/log/libvirt/libvirtd.log |
| QEMU VM logs | /var/log/libvirt/qemu/<vm-name>.log |
| dnsmasq logs | /var/lib/libvirt/dnsmasq/ |
| System logs | journalctl -u libvirtd |