This commit is contained in:
JMARyA 2024-05-02 21:58:58 +02:00
parent 25445c3c07
commit f6fd06dc2b
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263

View file

@ -1,8 +1,41 @@
---
website: https://www.qemu.org/
website: https://www.qemu.org
obj: application
repo: https://github.com/qemu/qemu
rev: 2024-05-02
---
# QEMU
#wip #🐇 #notnow
#wip #🐇 #notnow #review
QEMU is an open-source emulator and virtualizer that enables running operating systems and various software applications on different hardware architectures. It supports [emulation](../emulation/Emulation.md) of various CPU architectures, including x86, ARM, PowerPC, and SPARC, among others. It allows running [virtual machines](../tools/Virtual%20Machine.md).
## QCow Image
qcow is a file format for disk image files used by QEMU. It stands for "QEMU Copy On Write" and uses a disk storage optimization strategy that delays allocation of storage until it is actually needed. Files in qcow format can contain a variety of disk images which are generally associated with specific guest operating systems. Three versions of the format exist: qcow, qcow2 and qcow3 which use the .qcow, .qcow2 and .qcow3 file extensions, respectively.
**Create a new image**: `qemu-img create -f qcow2 -s 10G my_image.qcow2`
## Usage
### x86
To use QEMU, you typically need a disk image containing the operating system you want to emulate.
```
qemu-system-x86_64 -drive <disk_image>
```
#### Options
| Option | Description | Example |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| `-cpu <cpu>` | Specifies the CPU model or architecture to emulate. This flag is useful for emulating different CPU types. | `qemu-system-x86_64 -cpu host` |
| `-smp <smp>` | Specifies the number of CPU cores to emulate in the virtual machine. | `qemu-system-x86_64 -hda <disk_image> -smp 4` |
| `-m <mem>` | Sets the amount of RAM to allocate for the virtual machine. | `qemu-system-x86_64 -m 2G -hda <disk_image>` |
| `-netdev <netdev>` | Configures networking for the virtual machine. | `qemu-system-x86_64 -hda <disk_image> -netdev user,id=network0` |
| `-device <device>` | Adds a specific device to the virtual machine, such as a network interface card (NIC), graphics card, or sound card. | `qemu-system-x86_64 -hda <disk_image> -device e1000,netdev=network0` |
| `-display <display>` | Specifies the display driver to use for the virtual machine. Useful for setting up a graphical interface. | `qemu-system-x86_64 -hda <disk_image> -display gtk` |
| `-monitor` | Opens a monitor console for managing and interacting with the virtual machine during runtime. | `qemu-system-x86_64 -hda <disk_image> -monitor stdio` |
| `-vga <vga>` | Specifies the graphics card model to emulate. Options include cirrus, std, vmware, qxl, and virtio. | `qemu-system-x86_64 -hda <disk_image> -vga virtio` |
| `-enable-kvm` | Enables KVM (Kernel-based Virtual Machine) acceleration if supported by the host system. This improves performance significantly. | `qemu-system-x86_64 -hda <disk_image> -enable-kvm` |
| `-drive <drive>` | Allows more advanced configuration of disk drives, including specifying disk format, caching mode, and other options. | `qemu-system-x86_64 -drive file=<disk_image>,format=qcow2,cache=writeback` |
| `-cdrom <cdrom>` | Specifies the CD-ROM image to use for booting or installing from a CD. | `qemu-system-x86_64 -cdrom <cdrom_image>` |
| `-soundhw <soundhw>` | Specifies the sound hardware to emulate in the virtual machine. | `qemu-system-x86_64 -hda <disk_image> -soundhw hda` |