- Quickemu adalah wrapper untuk QEMU yang secara otomatis menangani konfigurasi yang diperlukan untuk membuat mesin virtual, sehingga Anda cukup memilih sistem operasi yang ingin dijalankan untuk dengan cepat membuat dan menjalankan VM Windows, macOS, dan Linux
quickget secara otomatis mengunduh image OS upstream dari sistem operasi yang diinginkan dan membuat file konfigurasi VM, sementara quickemu mendeteksi perangkat keras dan menjalankan VM dengan konfigurasi yang sesuai untuk komputer tersebut
- Tujuan awalnya adalah agar distribusi Linux dapat diuji dengan cepat, dan VM beserta konfigurasinya dapat ditempatkan di lokasi mana pun seperti penyimpanan USB eksternal atau direktori home, tanpa memerlukan hak akses istimewa untuk menjalankannya
- Saat ini mendukung hampir 1000 edisi sistem operasi termasuk macOS, Windows, sebagian besar BSD, FreeDOS, Haiku, KolibriOS, OpenIndiana, ReactOS, dan lainnya
- Berjalan di host Linux dan macOS serta menyediakan fitur yang dibutuhkan untuk penggunaan VM seperti SPICE, berbagi file, QEMU Guest Agent, VirGL, USB passthrough, port forwarding, audio, boot EFI dan Legacy BIOS, dan lainnya
Apa yang dilakukan Quickemu
- Quickemu adalah wrapper yang membungkus QEMU dan secara otomatis menangani konfigurasi yang diperlukan saat membuat mesin virtual
- Pengguna hanya perlu memilih sistem operasi yang ingin dijalankan, tanpa harus menentukan banyak opsi konfigurasi secara manual
- Ada dua alat inti
quickget: secara otomatis mengunduh OS upstream yang diinginkan dan membuat file konfigurasi VM
quickemu: menginventarisasi perangkat keras host lalu menjalankan mesin virtual dengan konfigurasi optimal yang sesuai untuk komputer tersebut
Titik awal proyek dan cakupan saat ini
- Tujuan awalnya adalah memungkinkan pengujian distribusi Linux dilakukan dengan cepat
- VM dan konfigurasi dapat disimpan di lokasi mana pun seperti penyimpanan USB eksternal atau direktori home
- Menjalankan mesin virtual tidak memerlukan hak akses istimewa
- Saat ini cakupan dukungannya telah melampaui distribusi Linux ke macOS, Windows, sebagian besar BSD, dan sistem operasi non-Linux
- Contoh yang didukung antara lain FreeDOS, Haiku, KolibriOS, OpenIndiana, ReactOS
Sistem operasi dan host yang didukung
- Host yang didukung adalah Linux dan macOS
- Sistem operasi guest mencakup berikut ini
- macOS Sequoia, Sonoma, Ventura, Monterey, Big Sur, Catalina, Mojave
- Windows 10 dan 11, termasuk TPM 2.0
- Windows Server 2022, 2019, 2016
- Ubuntu dan semua Ubuntu flavour resmi
- Sebagian besar BSD dan berbagai sistem operasi non-Linux
- Mendukung guest ARM64 untuk menjalankan VM aarch64
- Pada host ARM, berjalan secara native
- Pada host x86_64, berjalan melalui emulasi
- Jumlah edisi sistem operasi yang didukung mencapai hampir 1000
Fitur VM
- Menyediakan dukungan penuh SPICE, termasuk berbagi clipboard host/guest
- Mendukung berbagai metode berbagi file tergantung sistem operasi guest
- VirtIO-webdavd: berbagi file untuk guest Linux dan Windows
- VirtIO-9p: berbagi file untuk guest Linux dan macOS
- Samba: berbagi file untuk guest Linux, macOS, dan Windows, dan mengharuskan
smbd terpasang di host
- Mendukung QEMU Guest Agent, sehingga agen tingkat sistem dapat diakses melalui perintah QMP standar
- Untuk grafis dan perangkat, mendukung akselerasi VirGL, USB device passthrough, dan smartcard passthrough
- Fitur jaringan dan I/O juga disertakan
- Port forwarding SSH otomatis ke guest
- Network port forwarding
- Audio full-duplex
- Dukungan braille
- Boot EFI dengan atau tanpa SecureBoot
- Boot Legacy BIOS
Alur mulai cepat
- Setelah menginstal Quickemu, VM dibuat dan dijalankan dalam dua langkah
- Gunakan
quickget untuk mengunduh image ISO dan membuat file konfigurasi VM
quickget nixos unstable minimal
- Gunakan
quickemu untuk memulai VM dengan file konfigurasi yang dibuat quickget
quickemu --vm nixos-unstable-minimal.conf
- Menjalankan
quickget tanpa argumen akan menampilkan daftar semua sistem operasi yang didukung
Dokumentasi dan referensi
- Wiki membahas cara memulai, konfigurasi lanjutan, dan penggunaan
1 komentar
Komentar Hacker News
Dulu saya selalu memakainya saat sering mengelola host VM yang berbeda-beda dan VM lokal
Memang perlu sedikit memahami istilah dasar tentang VM, tetapi ini mengingatkan pada GUI gaya lama yang padat fitur dan bertenaga
Jika kebutuhan Anda sederhana atau Anda kurang akrab dengan VM, Gnome Boxes memakai backend yang sama tetapi menawarkan GUI yang rapi. Karena lebih sederhana, fleksibilitasnya juga lebih sedikit, tetapi bagusnya jika nanti perlu mengubah pengaturan yang tidak diekspos di Boxes, Anda bisa membuka VM Gnome Boxes itu di virt-manager
Jika dijalankan di sistem jarak jauh lewat SSH, ia akan “meneruskan X” konsol QEMU ke sesi Wayland lokal Fedora
Awalnya saya kira akan berjalan dalam mode headless, jadi cukup terkejut saat jendelanya muncul :)
Ini membuat saya membayangkan bagaimana jika konfigurasi dipisahkan dari software yang dikonfigurasi. Alih-alih mempelajari cara tiap program UI menciptakan ulang rodanya sendiri, kita bisa memilih manajer konfigurasi favorit untuk dipakai
Hal terdekat saat ini adalah file konfigurasi teks. Semua program yang memakainya harus memilih bahasa tertentu dan lokasi penyimpanan tertentu
Ide yang belakangan sering saya pikirkan adalah lapisan perantara konfigurasi. UI konfigurasi yang terlihat oleh pengguna bisa memakai bahasa/format apa pun yang diinginkan, lalu data itu dijadikan satu-satunya sumber kebenaran untuk menghasilkan file konfigurasi yang dibaca software
Memang ada juga fitur manajemen yang berguna seperti start/stop berbasis file konfigurasi atau akses konsol serial, tetapi hal seperti itu juga sangat mudah diimplementasikan sendiri dengan shell script. Penanganan storage di libvirt sangat bertele-tele dan rumit, tetapi tetap tidak bisa menangani thin LV atau ZFS dengan baik
Jika Anda tidak harus menjalankannya dengan cara standar ala enterprise, tidak berniat mempelajari software dasar seperti QEMU atau shell, atau memang tidak butuh fitur-fitur samar milik libvirt, saya sarankan memakai QEMU langsung di atas KVM dan menulis skrip sendiri. Anda akan belajar lebih banyak tentang QEMU dibanding memakai wrapper Python yang kurang bagus, dan kontrol atas sistem juga lebih besar
Selain itu, IBM/Red Hat tampaknya pada dasarnya telah menelantarkan virt-manager sambil mendorongnya ke antarmuka web baru bernama Copilot
Quickemu terasa lebih menarik karena Anda bisa langsung menyalakan VM baru setelah sekilas melihat contoh, tanpa menghabiskan waktu mempelajari UI besar yang rumit
Alat ini mengunduh file arbitrer dari internet, lalu mencocokkan checksum-nya dengan file arbitrer lain di internet[2]
Ini bukan praktik keamanan terbaik. Cara yang benar adalah meng-commit kunci GPG pengembang distro ke dalam repositori lalu memverifikasi semua file dengan kunci tersebut
Meski begitu, ini bukan upaya untuk meremehkan kerja proyek ini dalam menemukan flag yang benar untuk diberikan ke QEMU agar bisa mem-boot berbagai OS
[1] https://news.ycombinator.com/item?id=28797129
[2] https://github.com/quickemu-project/quickemu/blob/0c8e1a5205...
Bahkan ini menambahkan pemeriksaan kecocokan hash yang kebanyakan orang juga tidak lakukan
Pada era FTP, checksum dan GPG itu wajib. Dengan HTTP/TCP, penanganan retry dan checksum dilakukan oleh TCP, jadi kebutuhan GPG justru lebih besar, tetapi keduanya tetap diperlukan karena serangan man-in-the-middle
Namun kalau HTTPS, kenapa ini masih penting? Bukankah HTTPS menggantikan kedua verifikasi itu sekaligus pengecekan tanda tangan
Semoga perhatian Hacker News tahun ini mendorong seseorang untuk mengimplementasikan verifikasi tanda tangan untuk Linux
0. https://mac.getutm.app/
https://docs.getutm.app/installation/ios/
Contoh Alma Linux terbaru seperti berikut
$ virt-install --name alma9 --memory 1536 --vcpus 1 --disk path=$PWD/alma9.img,size=20 --cdrom alma9.iso --unattendedKalau ditinggal minum secangkir kopi, saat kembali VM Alma Linux sudah selesai terpasang dan berjalan. Daftar OS yang didukung bergantung pada versi libvirt, dan bisa dicek dengan berikut
$ osinfo-query osJika membutuhkan image disk Fedora 39, ada juga virt-builder
$ virt-builder fedora-39Nanti bisa diimpor ke libvirt dengan
virt-install --importApakah virt-install mengunduh ISO secara otomatis? Jika dicoba, muncul pesan seperti ini
$ virt-install --name alma9 --memory 1536 --vcpus 1 --disk path=$PWD/alma9.img,size=20 --cdrom alma9.iso --unattendedERROR Validating install media 'alma9.iso' failed: Must specify storage creation parameters for non-existent path '/home/foo/alma9.iso'.Tidak jelas seperti apa hasil akhirnya. Saya penasaran hostname-nya akan jadi apa, bagaimana disk dipartisi, paket apa yang dipasang, serta timezone dan layout keyboard akan diatur menjadi apa
Untuk melakukan ini, saya harus memasang libosinfo-bin
Kemudahan alat seperti ini memang luar biasa, tetapi jika dua skrip utamanya digabung, totalnya sekitar 5000 baris Bash
Saya ingin meninjaunya sebelum menjalankan, tetapi saya juga tidak ingin membaca 5000 baris Bash
Entah ini akan meyakinkan atau tidak, tetapi saya membaca skrip Bash-nya sebelum menjalankannya dan strukturnya cukup baik. Fungsinya dipisahkan dengan rapi, nama variabelnya masuk akal, ada komentar yang berguna, tidak ada alur kontrol aneh atau pemanggilan tidak langsung, dan penggunaan perintah yang sulit dipahami juga minim. Ini termasuk salah satu skrip shell yang paling mudah dibaca yang pernah saya lihat
Jika memikirkan apa yang sebenarnya dilakukan skrip ini, masuk akal juga kalau kodenya relatif lurus. Intinya hanya menjalankan satu perintah untuk memulai QEMU. Sisanya adalah kode untuk memeriksa sistem lokal guna menentukan argumen apa yang harus diberikan ke perintah itu, atau mengunduh beberapa file bila perlu
Ini bukan berarti semuanya harus dijalankan secara membabi buta, tetapi kriteria kita saat memilih perangkat lunak untuk dijalankan biasanya tidak bergantung pada apakah kita akrab dengan source code-nya
“You are a linux guru, and you have extensive experience with bash and all forms of unix/linux. I am going to be pasting a large amount of code in a little bit at a time. Every time I paste code and send it to you, you are going to add it to the previous code and ask me if I am done. When I am done we are going to talk about the code, and you are going to help me break it down and understand what is going on. If you understand you will ask me to start sending code, otherwise ask me any questions before you ask for the code.”
Saya pernah memakai cara ini untuk kode yang lebih pendek, meski tetap kurang dari 1000 baris yang melampaui batas prompt, dan hasilnya cukup baik. Saya akui ChatGPT akhir-akhir ini jadi lebih malas, dan kadang perlu ditegaskan agar jangan malas dan berikan seluruh output yang diminta, tetapi secara keseluruhan penjelasan kodenya cukup bagus
Ungkapan “banyak mata membuat semua bug menjadi dangkal” tampak seperti klise yang membuat sebagian pengguna berhenti berpikir. Karena terbuka dan bisa ditinjau, mereka menganggap semuanya aman, lalu membayangkan ada gerombolan auditor kode yang memeriksa semuanya, padahal dalam kenyataannya saya justru lebih mengharapkan niat jahat daripada niat baik
Di dunia Windows, utilitas tweak sudah ada secara konsisten selama puluhan tahun. Ini menarik orang-orang yang percaya bahwa pengembang “perusahaan besar” tidak termotivasi untuk memaksimalkan performa sistem, dan bahwa mereka sengaja menyisakan opsi mudah yang berguna untuk semua orang di balik pengaturan cepat atau tweak registry. Saya jadi teringat TronScript yang kadang terlihat; melihat sejarah dan tingkat partisipasinya, saya cenderung menilai lolos uji bau, tetapi tetap menyembunyikan detail atas nama otomatisasi dan membuat pengguna berharap alat itu akan mengambil keputusan yang baik untuk mereka. Orang bisa saja menggali lebih dalam, menyelidiki apa yang terjadi dan kenapa, lalu belajar darinya, tetapi bagi banyak orang alat seperti ini pada praktiknya tidak beda jauh dari binary
Untungnya, sebagian besar alat seperti ini punya basis pengguna yang terbatas sehingga nilainya tidak terlalu besar untuk disusupi. Kalau sebuah merek tertentu dipakai cukup luas, bisa muncul situasi seperti CCleaner milik Piriform yang disusupi backdoor pada 2017
Kelihatannya menarik, tetapi bisakah dijelaskan keuntungan apa yang didapat oleh orang yang di Ubuntu kadang hanya menjalankan Windows 11 lewat VirtualBox?
Di Linux saya sangat merekomendasikan Incus/LXD. Menjalankan VM sesederhana ini
Setelah berjalan, akses shell bisa dilakukan seperti ini
Incus/LXD juga mendukung container sistem
Ada systemd-nspawn yang saya suka tetapi hampir tidak pernah disebut. Jalankan
docker create --name ubuntu ubuntu:22.04lalu buat tar dari image Docker apa pun dengandocker export ubuntuSetelah itu, ekstrak ke
/var/lib/machines/ubuntu. Anda perlu memilih image yang sudah berisi systemd atau memasang systemd di dalam container. Terakhir, masuk denganmachinectl start ubuntudanmachinectl shell ubuntusystemd-nspawn sangat sederhana dan ringan, serta meniru mesin Linux sungguhan dengan sangat baik. Ambil partisi root berbasis systemd apa pun dan boot dengan systemd-nspawn, maka itu akan berjalan begitu saja
Apakah ada angka perubahan performa dibanding sekadar menjalankan VM? Saya biasanya menjalankan guest Linux di dalam host Linux, dan sering kecewa dengan performa guest
Saya belum pernah menyelidiki tuning pengalaman VM, jadi penasaran seberapa banyak yang saya lewatkan. Apakah 5% lebih cepat? 100%?
Apakah ini berjalan secara native di Arm, yaitu Apple Silicon? Bagaimana dengan versi macOS terbaru? Apakah ada akselerasi grafis? Bagaimana jaringan ditangani?
Saya penasaran apa bedanya dengan Proxmox, dan apakah optimasi yang dilakukan di sini bisa saya tiru secara manual di lingkungan Proxmox saya
Quickemu tampaknya terutama ditujukan untuk penggunaan desktop