[Linux] Rocky Linux Install KVM
Tags: rockylinux, linuxkvm, centos, linux
Published: 2023-12-30 13:05:48

---
title: [Linux] Rocky Linux Install KVM
published: true
date: 2022-11-04 16:23:02 UTC
tags: 
- RockyLinux
- LinuxKVM
- CentOS
- Linux
canonical_url: https://www.kmp.tw/post/rockylinuxinstallkvm/
---

# Situation

### Install KVM In Rocky Linux 9.0

# How To
## Step 1 : Check CPU `Virtualization Extensions`
```
cat /proc/cpuinfo | egrep "vmx|svm"
```
### or
```
lscpu | grep Virtualization
```


## Step 2 : Install KVM Tools
```
dnf install qemu-kvm libvirt virt-manager virt-install -y
dnf install epel-release -y
dnf install bridge-utils virt-top libguestfs-tools bridge-utils virt-viewer -y
```


## Step 3 :  Start `libvirtd` And Enable That
```
systemctl start libvirtd
systemctl enable libvirtd
```

## Step 4 : Create Network Bridge
### Show Bridge Network
`brctl show`
```
bridge name bridge id       STP enabled interfaces
virbr0      8000.5254009de646   yes
```

### Show Connect Info
`nmcli connection show`
```
NAME                UUID                                  TYPE      DEVICE
enp2s0              3ed4465d-7f61-48c3-9ec6-59fb4aedfd22  ethernet  enp2s0
virbr0              0535364e-982c-4ee0-b2ce-bfd1ff6e47d4  bridge    virbr0
```

### `export` These Var
```
export BR_NAME="br0"
export BR_INT="enp2s0"
export SUBNET_IP="192.168.0.2/16"
export GW="192.168.0.254"
export DNS1="192.168.100.1"
export DNS2="192.168.100.6"
```

### Run Command `nmcli`  Setting Bridge Network
```
# add bridge
nmcli connection add type bridge autoconnect yes con-name ${BR_NAME} ifname ${BR_NAME}

# add ip address, gateway and dns
nmcli connection modify ${BR_NAME} ipv4.addresses ${SUBNET_IP} ipv4.method manual
nmcli connection modify ${BR_NAME} ipv4.gateway ${GW}
nmcli connection modify ${BR_NAME} ipv4.dns ${DNS1} +ipv4.dns ${DNS2}
```

### Add The Identified Network Device As A Slace To The Bridge
```
nmcli connection delete ${BR_INT}
nmcli connection add type bridge-slave autoconnect yes con-name ${BR_INT} ifname ${BR_INT} master ${BR_NAME}
```

### Start Network Bridge
```
nmcli connection up br0
```

### Verify Network
```
nmcli connectiob show br0
```
### Or
```
$ ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether fc:aa:14:e3:09:0e brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:9d:e6:46 brd ff:ff:ff:ff:ff:ff
    inet 10.0.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fc:aa:14:e3:09:0e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/16 brd 172.16.255.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
```

### Add Bridge For KVM Use
```
vim /etc/qemu-kvm/bridge.conf
```

### Add This
```
allow all
```

### Restart `libvirtd`
```
systemctl restart libvirtd
```
## Step 5 : Create VM
```
virt-install --name vm-temp --ram 2048 --vcpu 1 \
--disk <vm-disk-path-folder>.img,size=10 \
--os-variant centos-stream9 --os-type linux \
--network bridge=br0,model=virtio \
--graphics vnc,listen=0.0.0.0 \
--console pty,target_type=serial \
--location <iso-folder-path>.iso
```