Sebagian masyarakat memilih untuk dualboot atau bahkan multiboot dalam berkomputer. Satu Perangkat komputer diinstall lebih dari satu sistem operasi. Alhasil, harddisk pasti terbagi menjadi paling sedikit 2 partisi. Tak jarang, sistem operasi tersebut adalah linux dan windows. Kelemahan dari model seperti ini adalah pengguna harus memilih salah satu, mana sistem yang akan dijalankan. Namun, tidak demikian bila ada qemu.
Qemu memungkinkan sistem operasi windows dipanggil atau dijalankan dari linux. Untuk dapat menjalankannya perlu install qemu (tentu saja) dan edk2-ovmf. Keduanya tersedia di SBo.
Akan diinstall sebagai guest os slackware, dengan file iso slackware.iso, disk image slackware.qcow dan virtual RAM 5GB. Maka command yang dijalankan dengan qemu adalah
$ qemu-system-x86_64 -enable-kvm -m 5120 -cdrom slackware.iso -drive file=slackware.qcow2 -boot d
Untuk membuat disk image sebagai storage sistem oprasi yang akan divirtualisasikan dengan qemu, bisa menggunakan command yang mudah. Misalkan nama file adalah slack.img dengan size 100G
#penggunaan: qemu-img create file_disk_imagenya sizenya
$ qemu-img create slack.img 100G
Untuk konversi file dd/img menjadi vdi mudah. Pastikan sudah install virtualbox. Misalkan akan mengubah file1.dd menjadi file2.vdi,
$ VBoxManage convertfromraw file1.dd --format VDI file2.vdi
Setelah install virtualbox menggunakan binary .run, ketika dijalankan via terminal mengalami sgfault:
bash-5.2$ virtualbox
(process:7040): GLib-GObject-WARNING **: 00:53:14.710: cannot register existing type 'NMAgentManagerError'
(process:7040): GLib-CRITICAL **: 00:53:14.710: g_once_init_leave: assertion 'result != 0' failed
(process:7040): GLib-GObject-WARNING **: 00:53:14.710: cannot retrieve class for invalid (unclassed) type 'invalid'
Segmentation fault
Solusinya:
bash-5.2$ VBoxManage setextradata global GUI/UpdateDate never
Docker image yang suah tidak digunakan sebaiknya dihapus saja, agar storage lebih longgar. Pastikan docker daemon aktif
List docker imagenya
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
qgis/qgis release-3_16 ee28ddd8c37a 4 days ago 7.43GB
qgis/qgis <none> c84657a1e2f6 3 weeks ago 7.43GB
Hapus
$ docker rmi -f ee28ddd8c37a c84657a1e2f6
Ingin menghapus semua container, image, dll
$ docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N] y
Catatan kali ini melanjutkan catatan sebelumnya tentang install QGIS menggunakan flatpak. Sekarang berbeda, install dan jalankan QGIS menggunakan docker. Dengan slackware (dan linux pada umumnya), banyak jalan untuk menjalankan software/aplikasi.
Install docker dan docker-cli
QGIS akan dijalankan menggunakan docker tentu saja membutuhkan docker. Jika belum terinstall silahkan install dulu docker dan docker-cli. Keduanya ada di SBo.
Install docker QGIS
Install image qgis dari repo docker. OS yang digunakan dalam image ini adalah ubuntu 20.04 LTS. Yang harus diperhatikan, versi qgis yang digunakan adalah versi 3.16 LTR, sedangkan yang disediakan repo resmi ubuntu 20.04 masihi versi 3.10.
Tiba-tiba terlintas keinginan mencoba fedora. Sejak mengenal linux tahun 2005an, saya belum pernah menggunakan fedora. Entah kalau saat itu warnetnya pakai fedora wkwkwkwk. Pertama memakai linux memang di warnet. Saat itu warnetnya menawarkan pakai Windows atau linux, saya pilih linux karena tarifnya 50% lebih murah.
Kembali ke topik. Berikut akan install fedora secara virtual via lxc.
$ lxc-create -n fedora -t download
Opsi n adalah untuk memberi nama containernya, t template yang digunakan. Karena akan mendownload dari reponya gunakan template download.
Untuk mengaitkan/mount berkas qcow2 ternyata tidak bisa langsung di- mount begitu saja. Ada beberapa tahapan yang semuanya membutuhkan hak akses root
Modul kernel NBD aktifkan dulu. Secara default modul NBD nonaktif. Untuk mengaktifkannya
max_part=N isikan jumlah partisi yang ingin ditangani pada N. Misalnya, qcow2 tersebut kalau dijalankan dengan qemu berisi 8 partisi, maka nilai N adalah 8.
Melanjutkan [catatan kemarin]({% post_url 2016-07-04-virtmanager-no-module-requests %}), ternyata Virtual Manager belum bisa berjalan dengan baik. Sudah ada kemajuan sih dibanding yang kemarin, sudah bisa terbuka graphical front-end-nya, tapi ternyata kemudian muncul kotak dialog Virtual Machine Manager Connection Failure dengan detail sebagai berikut
Unable to connect to libvirt.
internal error: Cannot find suitable emulator for x86_64
Libvirt URI is: qemu:///system
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/connection.py", line 979, in _open_thread
self._populate_initial_state()
File "/usr/share/virt-manager/virtManager/connection.py", line 941, in _populate_initial_state
logging.debug("conn version=%s", self._backend.conn_version())
File "/usr/share/virt-manager/virtinst/connection.py", line 316, in conn_version
self._conn_version = self._libvirtconn.getVersion()
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3984, in getVersion
if ret == -1: raise libvirtError ('virConnectGetVersion() failed', conn=self)
libvirtError: internal error: Cannot find suitable emulator for x86_64
Cek qemu apakah masih terinstall atau tidak. Harusnya sih memang terinstall karena saya belum pernah menghapusnya.
Setelah [upgrade slackbuilds]({% post_url 2016-07-03-upgrade-slackbuilds %}) kemarin ternyata Virtual Machine Manager tidak bisa dijalankan.
$ virt-manager
Traceback (most recent call last):
File "/usr/share/virt-manager/virt-manager", line 33, in <module>
from virtinst import util as util
File "/usr/share/virt-manager/virtinst/__init__.py", line 89, in <module>
from virtinst.distroinstaller import DistroInstaller
File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 23, in <module>
from . import urlfetcher
File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 34, in <module>
import requests
ImportError: No module named requests
Ternyata, ada masalah dependensi. ImportError: No module named requests menunjukkan tidak adanya modul requests, atau tidak terinstall paket python-requests. Ini dibuktikan dengan output ls /var/log/packages|grep python-request yang kosong.
Secara default, format hardisk virtual pada virtualbox adalah VDI. Format ini tidak bisa digunakan di vmware. Agar bisa digunakan di vmware harus dikonversi dulu menjadi VMDK. Kalau sudah terpasang virtualbox konversi VDI ke VMDK ini mudah.
Misalkan hardisk01.vdi akan dikonversi menjadi hardisk02.vmdk, maka caranya
$ VBoxManage clonehd hardisk01.vdi hardisk01.vmdk --format VMDK
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 3127e4c2-6a88-4af6-838a-871cd534b5fa
Hardisk virtualnya sudah terkonversi.