mirror of
https://github.com/ditatompel/insights.git
synced 2025-01-08 03:12:06 +07:00
Compare commits
No commits in common. "f83b171781a618a25684d678bfec8c14fa226cf4" and "f7f8475ecd026deeb174b2cc760e1d8edba7da2e" have entirely different histories.
f83b171781
...
f7f8475ecd
4 changed files with 0 additions and 298 deletions
Binary file not shown.
Before Width: | Height: | Size: 48 KiB |
|
@ -1,148 +0,0 @@
|
||||||
---
|
|
||||||
title: Cara Install Virt-Manager (Libvirt GUI) di Arch Linux
|
|
||||||
description: Tutorial cara instalasi Virt-Manager, sebuah libvirt GUI untuk mempermudah kita dalam melakukan manajemen mesin virtualiasi atau emulator (KVM/QEMU) di komputer kita.
|
|
||||||
summary: Tutorial cara instalasi Virt-Manager, sebuah libvirt GUI untuk mempermudah kita dalam melakukan manajemen mesin virtualiasi atau emulator (KVM/QEMU) di komputer kita.
|
|
||||||
date: 2024-09-11T03:08:45+07:00
|
|
||||||
lastmod:
|
|
||||||
draft: false
|
|
||||||
noindex: false
|
|
||||||
nav_weight: 1000
|
|
||||||
categories:
|
|
||||||
- Self-Hosted
|
|
||||||
- SysAdmin
|
|
||||||
tags:
|
|
||||||
- KVM
|
|
||||||
- libvirt
|
|
||||||
- QEMU
|
|
||||||
images:
|
|
||||||
authors:
|
|
||||||
- ditatompel
|
|
||||||
---
|
|
||||||
|
|
||||||
Saya sudah beberapa kali menulis artikel yang berhubungan dengan
|
|
||||||
[**KVM**][kvm_web]/[**QEMU**][qemu_web] dan [**Virt-Manager**][virtmanager_web],
|
|
||||||
tapi saya belum punya tulisan tentang bagaimana cara menginstall dan
|
|
||||||
mengkonfigurasi Virt-Manager di Arch Linux. Maka ijinkan saya untuk
|
|
||||||
mendokumentasikannya disini.
|
|
||||||
|
|
||||||
**Virt-Manager** adalah GUI untuk `libvirt` yang dapat mempermudah kita dalam
|
|
||||||
melakukan manajemen mesin virtualiasi/emulator di komputer kita.
|
|
||||||
|
|
||||||
## Pengantar: Antara KVM dan QEMU
|
|
||||||
|
|
||||||
Sebelum memulai dan agar lebih memahami opsi apa saja yang nantinya bisa
|
|
||||||
digunakan di _virt-manager_, saya ingin sedikit membahas mengenai **KVM**
|
|
||||||
dan **QEMU**. Banyak orang beranggapan bahwa KVM dan QEMU adalah suatu hal
|
|
||||||
yang sama. Hal ini tidak benar.
|
|
||||||
|
|
||||||
**KVM merupakan _full-virtualization_** dimana dia menggunakan _hardware_ untuk
|
|
||||||
teknologi virtualisasinya. Agar dapat menggunakan tekologi KVM, CPU Anda harus
|
|
||||||
mensupport virtualisasi (dalam hal ini `Intel VT-x` untuk prosesor **Intel**
|
|
||||||
dan `AMD-V` untuk prosesor **AMD**).
|
|
||||||
|
|
||||||
Sedangkan **QEMU merupakan sebuah emulator**. Dia dapat melaukan emulasi sistem
|
|
||||||
secara penuh meskipun _hardware_ yang Anda miliki tidak mensupport virtualiasi.
|
|
||||||
QEMU dapat melakukan emulasi perangkat seperti _storage_, _network device_,
|
|
||||||
dan lain-lain. Dia juga dapat melakukan emulasi ke arsitektur CPU yang berbeda,
|
|
||||||
misalnya: host `x86_64` melakukan emulasi arsitektur ARM pada
|
|
||||||
_guest virtual machine_-nya.
|
|
||||||
|
|
||||||
Jika dilihat dari sisi performa, KVM jauh lebih unggul dibandingkan QEMU karena
|
|
||||||
KVM langsung menggunakan hardware. KVM juga sangat optimal untuk virtualiasi
|
|
||||||
sistem Linux dan menyediakan manajemen sumber daya yang lebih baik daripada
|
|
||||||
QEMU.
|
|
||||||
|
|
||||||
Dari segi kompatibilitas, QEMU lebih unggul karena dia dapat melakukan emulasi
|
|
||||||
ke banyak arsitektur CPU, emulasi ke perangkat seperti _storage_, _network_,
|
|
||||||
_display adapter_, dan lain-lain. QEMU juga tidak memerlukan hardware yang
|
|
||||||
mensupport teknologi virtualiasi untuk menjalankannya.
|
|
||||||
|
|
||||||
Untuk melakukan pengecekan apakah CPU yang Anda gunakan mensupport virtualisasi
|
|
||||||
dapat menggunakan perintah:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
lscpu | grep Virtualization
|
|
||||||
```
|
|
||||||
|
|
||||||
Jika perintah diatas tidak menghasilkan output apapun, maka Anda hanya dapat
|
|
||||||
menggunakan QEMU.
|
|
||||||
|
|
||||||
Jika CPU Anda mensupport virtualiasi Anda dapat menggunakan KVM+QEMU yang
|
|
||||||
mengkombinasikan akselerasi hardware serta virtualiasi CPU dan RAM secara penuh.
|
|
||||||
|
|
||||||
> **Catatan**: Kebanyakan CPU _mid-range_ hingga _high-end_ yang diproduksi 10
|
|
||||||
> tahun terakhir seharusnya mensupport virtualisasi. Jika dari pengecekan
|
|
||||||
> `lscpu` diatas tidak menghasilkan apapun, silahkan cek konfigurasi BIOS dan
|
|
||||||
> mengaktifkan fitur tersebut.
|
|
||||||
|
|
||||||
## Instalasi Software Yang Dibutuhkan
|
|
||||||
|
|
||||||
Pertama, install `libvirt`, `dnsmasq`, `qemu-desktop` dan `virt-manager`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo pacman -S libvirt dnsmasq qemu-desktop virt-manager
|
|
||||||
```
|
|
||||||
|
|
||||||
Disini, `dnsmasq` diperlukan untuk konektifitas jaringan untuk guest (DHCP).
|
|
||||||
Sedangkan `qemu-desktop` diperlukan untuk desktop GUI.
|
|
||||||
|
|
||||||
Jika Anda hanya menjalankan _virtual machine_ secara _headless_, Anda bisa
|
|
||||||
mengganti `qemu-desktop` dengan `qemu-base`. Baik `qemu-base` dan
|
|
||||||
`qemu-desktop` hanya support emulasi `x86_64`. jika Anda akan menggunakan
|
|
||||||
arsitektur seperti ARM di _virtual machine_, Anda perlu menginstall
|
|
||||||
`qemu-emulators-full`.
|
|
||||||
|
|
||||||
## Konfigurasi Hak Akses
|
|
||||||
|
|
||||||
Supaya user biasa dapat menggunakan `virt-manager`, tambahkan user Anda ke
|
|
||||||
group `libvirt` dengan perintah :
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo usermod -aG libvirt <username_anda>
|
|
||||||
```
|
|
||||||
|
|
||||||
Kemudian ubah atau tambahkan konfigurasi berikut ke `/etc/libvirt/libvirtd.conf`:
|
|
||||||
|
|
||||||
```plain
|
|
||||||
unix_sock_group = "libvirt"
|
|
||||||
unix_sock_ro_perms = "0770"
|
|
||||||
```
|
|
||||||
|
|
||||||
konfigurasi diatas mengubah kepemilikan **libvirt UNIX socket** ke group
|
|
||||||
`libvirt` dan mereka yang berada di dalam group `libvirt` dapat melakukan
|
|
||||||
_read_ maupun _write_.
|
|
||||||
|
|
||||||
## Menggunakan Virt-Manager
|
|
||||||
|
|
||||||
Sebelum menjalankan GUI (`virt-manager`), jalankan `libvirtd` dengan perintah:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo systemctl start libvirtd
|
|
||||||
```
|
|
||||||
|
|
||||||
Hal ini supaya kita dapat menggunakan QEMU/KVM tidak pada **user session**
|
|
||||||
sehingga _guest machine_ nantinya dapat terkoneksi ke jaringan.
|
|
||||||
|
|
||||||
{{< youtube Y01SwRqkX8I >}}
|
|
||||||
|
|
||||||
Setelah _libvirt daemon_ berjalan, Anda bisa menjalankan `virt-manager` dan
|
|
||||||
mulai menambahkan koneksi `QEMU/KVM`. Setelah itu cobalah membuat
|
|
||||||
_virtual machine_ yang ingin dicoba. Jika mengalami kesulitan, mengikuti video
|
|
||||||
yang saya sertakan diatas mungkin sedikit banyak dapat membantu.
|
|
||||||
|
|
||||||
Untuk menjalankan Windows VM, Anda memerlukan `swtpm` dan mengkonfigurasi
|
|
||||||
TPM hardware. Silahkan baca artikel saya sebelumnya:
|
|
||||||
["Menjalankan Windows 11 VM (TPM dan Secure-Boot) di Linux"]({{< ref "/tutorials/run-windows-11-tpm-and-secure-boot-on-kvm" >}}).
|
|
||||||
|
|
||||||
## Referensi
|
|
||||||
|
|
||||||
- [KVM Arch Wiki][kvm_aw]
|
|
||||||
- [QEMU Arch Wiki][qemu_aw]
|
|
||||||
- [Virt-Manager Arch Wiki][virtmanager_aw]
|
|
||||||
|
|
||||||
[kvm_web]: https://linux-kvm.org/page/Main_Page "KVM Website"
|
|
||||||
[kvm_aw]: https://wiki.archlinux.org/title/KVM "KVM Arch Wiki"
|
|
||||||
[qemu_web]: https://www.qemu.org/ "QEMU Website"
|
|
||||||
[qemu_aw]: https://wiki.archlinux.org/title/QEMU "QEMU Arch Wiki"
|
|
||||||
[virtmanager_web]: https://virt-manager.org/ "Virt-Manager official website"
|
|
||||||
[virtmanager_aw]: https://wiki.archlinux.org/title/Virt-manager "Virt Manager Arch Wiki"
|
|
|
@ -1,148 +0,0 @@
|
||||||
---
|
|
||||||
title: How to Install Virt-Manager (Libvirt GUI) on Arch Linux
|
|
||||||
description: Tutorial on how to install Virt-Manager, a graphical user interface for libvirt that makes it easier for us to manage KVM/QEMU virtualization machines on our computers.
|
|
||||||
summary: Tutorial on how to install Virt-Manager, a graphical user interface for libvirt that makes it easier for us to manage KVM/QEMU virtualization machines on our computers.
|
|
||||||
# linkTitle:
|
|
||||||
date: 2024-09-11T03:08:45+07:00
|
|
||||||
lastmod:
|
|
||||||
draft: false
|
|
||||||
noindex: false
|
|
||||||
# comments: false
|
|
||||||
nav_weight: 1000
|
|
||||||
categories:
|
|
||||||
- Self-Hosted
|
|
||||||
- SysAdmin
|
|
||||||
tags:
|
|
||||||
- KVM
|
|
||||||
- libvirt
|
|
||||||
- QEMU
|
|
||||||
images:
|
|
||||||
authors:
|
|
||||||
- ditatompel
|
|
||||||
---
|
|
||||||
|
|
||||||
I have written several articles related to [**KVM**][kvm_web]/[**QEMU**][qemu_web]
|
|
||||||
and [**Virt-Manager**][virtmanager_web], but I have not written about how to
|
|
||||||
install and configure Virt-Manager on Arch Linux. This is a tutorial that will
|
|
||||||
cover both aspects.
|
|
||||||
|
|
||||||
**Virt-Manager** is a graphical user interface (GUI) for `libvirt` that makes
|
|
||||||
it easier for us to manage virtualization machines or emulators on our
|
|
||||||
computers.
|
|
||||||
|
|
||||||
## Introduction: Between KVM and QEMU
|
|
||||||
|
|
||||||
Before we begin and to better understand the options available in
|
|
||||||
`virt-manager`, I would like to discuss a brief overview of KVM and QEMU.
|
|
||||||
Many people assume that KVM and QEMU are one and the same thing. However,
|
|
||||||
this is not true.
|
|
||||||
|
|
||||||
**KVM is a full virtualization** technology that utilizes hardware for its
|
|
||||||
virtualization capabilities. To use KVM, your CPU must support virtualization
|
|
||||||
(in this case, `Intel VT-x` for **Intel processors** and `AMD-V` for
|
|
||||||
**AMD processors**).
|
|
||||||
|
|
||||||
On the other hand, **QEMU is an emulator**. It can emulate a complete system
|
|
||||||
even if the hardware you have does not support virtualization. QEMU can emulate
|
|
||||||
devices such as storage, network interfaces, and others. Moreover, it can also
|
|
||||||
emulate different CPU architectures: for example, an `x86_64` host can emulate
|
|
||||||
the `ARM` architecture on a guest virtual machine.
|
|
||||||
|
|
||||||
In terms of performance, KVM is significantly superior to QEMU because it
|
|
||||||
utilizes hardware directly. As such, KVM is very optimal for Linux system
|
|
||||||
virtualization and provides better resource management than QEMU.
|
|
||||||
|
|
||||||
In terms of compatibility, QEMU is superior due to its ability to emulate many
|
|
||||||
CPU architectures, emulate devices such as storage, network, display adapters,
|
|
||||||
and others. Additionally, QEMU does not require hardware that supports
|
|
||||||
virtualization technology to run it.
|
|
||||||
|
|
||||||
To verify whether the CPU you are using supports virtualization, you can use
|
|
||||||
the command:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
lscpu | grep Virtualization
|
|
||||||
```
|
|
||||||
|
|
||||||
If the command above produces no output, then you can only use QEMU. However,
|
|
||||||
if your CPU does support virtualization, you can utilize KVM + QEMU, which
|
|
||||||
combines hardware acceleration with full CPU and memory virtualization.
|
|
||||||
|
|
||||||
> **Note:** Most mid-range to high-end CPUs manufactured within the last 10
|
|
||||||
> years should support virtualization. If the `lscpu` check above does not
|
|
||||||
> produce any output, please check your BIOS configuration and ensure that
|
|
||||||
> the feature is enabled.
|
|
||||||
|
|
||||||
## Required Software Installation
|
|
||||||
|
|
||||||
First, install `libvirt`, `dnsmasq`, `qemu-desktop`, and `virt-manager` using
|
|
||||||
the following command:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo pacman -S libvirt dnsmasq qemu-desktop virt-manager
|
|
||||||
```
|
|
||||||
|
|
||||||
Here, `dnsmasq` is necessary for guest network connectivity (DHCP).
|
|
||||||
Additionally, `qemu-desktop` is required to enable GUI desktop support. If you
|
|
||||||
plan to run virtual machines headless only, you can replace `qemu-desktop` with
|
|
||||||
`qemu-base`. Note that both `qemu-base` and `qemu-desktop` are limited to
|
|
||||||
`x86_64` emulation. However, if you intend to use architectures like ARM in
|
|
||||||
your virtual machines, you will need to install the `qemu-emulators-full`
|
|
||||||
package.
|
|
||||||
|
|
||||||
## Access Rights Configuration
|
|
||||||
|
|
||||||
To enable regular users to use `virt-manager`, add your user to the `libvirt`
|
|
||||||
group using the following command:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo usermod -aG libvirt <your_username>
|
|
||||||
```
|
|
||||||
|
|
||||||
Next, modify or add the following configuration to `/etc/libvirt/libvirtd.conf`:
|
|
||||||
|
|
||||||
```plain
|
|
||||||
unix_sock_group = "libvirt"
|
|
||||||
unix_sock_ro_perms = "0770"
|
|
||||||
```
|
|
||||||
|
|
||||||
The above configuration sets the group access rights for
|
|
||||||
**libvirt UNIX socket** to the `libvirt` group, allowing members of this group
|
|
||||||
to perform read and write operations.
|
|
||||||
|
|
||||||
## Using Virt-Manager
|
|
||||||
|
|
||||||
Before running `virt-manager` in GUI mode, start the **libvirt daemon** using
|
|
||||||
the following command:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo systemctl start libvirtd
|
|
||||||
```
|
|
||||||
|
|
||||||
This is necessary to enable QEMU/KVM operations outside of your **user session**
|
|
||||||
and allow the guest machine to connect to the network later.
|
|
||||||
|
|
||||||
{{< youtube Y01SwRqkX8I >}}
|
|
||||||
|
|
||||||
Once the libvirt daemon is running, you can run `virt-manager` and begin adding
|
|
||||||
QEMU/KVM connections. After that, try creating the virtual machine you want to
|
|
||||||
test. If you encounter difficulties, referring to the video included above may
|
|
||||||
provide some assistance.
|
|
||||||
|
|
||||||
To run Windows VM, you will need `swtpm` and configure TPM. For more
|
|
||||||
information, please refer to my previous article:
|
|
||||||
["Running Windows 11 VM (TPM And Secure-Boot) On Linux"]({{< ref "/tutorials/run-windows-11-tpm-and-secure-boot-on-kvm" >}}).
|
|
||||||
You can also use VirtIO-FS for [sharing data between the host and guest virtual machines]({{< ref "/tutorials/virt-manager-sharing-data-between-host-and-guests-libvirt-virtio-fs" >}}).
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
- [KVM Arch Wiki][kvm_aw]
|
|
||||||
- [QEMU Arch Wiki][qemu_aw]
|
|
||||||
- [Virt-Manager Arch Wiki][virtmanager_aw]
|
|
||||||
|
|
||||||
[kvm_web]: https://linux-kvm.org/page/Main_Page "KVM Website"
|
|
||||||
[kvm_aw]: https://wiki.archlinux.org/title/KVM "KVM Arch Wiki"
|
|
||||||
[qemu_web]: https://www.qemu.org/ "QEMU Website"
|
|
||||||
[qemu_aw]: https://wiki.archlinux.org/title/QEMU "QEMU Arch Wiki"
|
|
||||||
[virtmanager_web]: https://virt-manager.org/ "Virt-Manager official website"
|
|
||||||
[virtmanager_aw]: https://wiki.archlinux.org/title/Virt-manager "Virt Manager Arch Wiki"
|
|
2
go.sum
2
go.sum
|
@ -104,7 +104,6 @@ github.com/hbstack/hb v0.14.0 h1:YYjSwIrjpLFSMkyHHDbh7xMf8dyEQba4XhIafAS7avs=
|
||||||
github.com/hbstack/hb v0.14.0/go.mod h1:FJilVCHtkVpfXZT+Ii2OFCVeu9wQh/YGgRMuPKX5ycA=
|
github.com/hbstack/hb v0.14.0/go.mod h1:FJilVCHtkVpfXZT+Ii2OFCVeu9wQh/YGgRMuPKX5ycA=
|
||||||
github.com/hbstack/hb v0.15.1 h1:bQxZrwDwPTw9ZIpq4rJkjmUAIYQifYnIL3z7yESwlvs=
|
github.com/hbstack/hb v0.15.1 h1:bQxZrwDwPTw9ZIpq4rJkjmUAIYQifYnIL3z7yESwlvs=
|
||||||
github.com/hbstack/hb v0.15.1/go.mod h1:FJilVCHtkVpfXZT+Ii2OFCVeu9wQh/YGgRMuPKX5ycA=
|
github.com/hbstack/hb v0.15.1/go.mod h1:FJilVCHtkVpfXZT+Ii2OFCVeu9wQh/YGgRMuPKX5ycA=
|
||||||
github.com/hbstack/hb v0.15.3 h1:Q7XKGYLJobkRYKiMd4tLmmBQDaIBX7n3f8QlwAohKvA=
|
|
||||||
github.com/hbstack/hb v0.15.3/go.mod h1:FJilVCHtkVpfXZT+Ii2OFCVeu9wQh/YGgRMuPKX5ycA=
|
github.com/hbstack/hb v0.15.3/go.mod h1:FJilVCHtkVpfXZT+Ii2OFCVeu9wQh/YGgRMuPKX5ycA=
|
||||||
github.com/hbstack/header v0.14.5 h1:TGjaudDop6df38A0K8hjMOdmcD1WpUN03xenpgR7tJw=
|
github.com/hbstack/header v0.14.5 h1:TGjaudDop6df38A0K8hjMOdmcD1WpUN03xenpgR7tJw=
|
||||||
github.com/hbstack/header v0.14.5/go.mod h1:W7eolpYJctsTD8GVFEj09Ogbqqy8OAqcxBEbW3ZTYIg=
|
github.com/hbstack/header v0.14.5/go.mod h1:W7eolpYJctsTD8GVFEj09Ogbqqy8OAqcxBEbW3ZTYIg=
|
||||||
|
@ -250,7 +249,6 @@ github.com/hugomods/search v0.15.0 h1:ogfxmTiQXi2IKRFb+1NiKa7y1ytEnuMxmO15+5H2re
|
||||||
github.com/hugomods/search v0.15.0/go.mod h1:xPnDGjP/HCdEWJrJBwwdI2mEtdxFxp+wHBwSl/r2m00=
|
github.com/hugomods/search v0.15.0/go.mod h1:xPnDGjP/HCdEWJrJBwwdI2mEtdxFxp+wHBwSl/r2m00=
|
||||||
github.com/hugomods/search v0.16.0 h1:0ShUxexNrhkZTYrfwUO2I0kfQiAmae6Y0DS1VzVgZ/M=
|
github.com/hugomods/search v0.16.0 h1:0ShUxexNrhkZTYrfwUO2I0kfQiAmae6Y0DS1VzVgZ/M=
|
||||||
github.com/hugomods/search v0.16.0/go.mod h1:xPnDGjP/HCdEWJrJBwwdI2mEtdxFxp+wHBwSl/r2m00=
|
github.com/hugomods/search v0.16.0/go.mod h1:xPnDGjP/HCdEWJrJBwwdI2mEtdxFxp+wHBwSl/r2m00=
|
||||||
github.com/hugomods/search v0.17.1 h1:2pL3pVGmdzF0JxD/EEmE7/xDMPd7Y4eDTMNPxvKHYWw=
|
|
||||||
github.com/hugomods/search v0.17.1/go.mod h1:xPnDGjP/HCdEWJrJBwwdI2mEtdxFxp+wHBwSl/r2m00=
|
github.com/hugomods/search v0.17.1/go.mod h1:xPnDGjP/HCdEWJrJBwwdI2mEtdxFxp+wHBwSl/r2m00=
|
||||||
github.com/hugomods/seo/modules/alternatives v0.1.1 h1:Y8NdyBhvkSfr43ZKtXvQBgOW9lHL0a6vC1UIZFNbMpo=
|
github.com/hugomods/seo/modules/alternatives v0.1.1 h1:Y8NdyBhvkSfr43ZKtXvQBgOW9lHL0a6vC1UIZFNbMpo=
|
||||||
github.com/hugomods/seo/modules/alternatives v0.1.1/go.mod h1:y/VmIbVDnJWgcbhw0Rp8PP4RtvLhAx+URfvwl5SrWg0=
|
github.com/hugomods/seo/modules/alternatives v0.1.1/go.mod h1:y/VmIbVDnJWgcbhw0Rp8PP4RtvLhAx+URfvwl5SrWg0=
|
||||||
|
|
Loading…
Reference in a new issue