The E:\amd64\w10 directory contains vioscsi and viostor drivers, but
these are already included via E:\vioscsi\w10\amd64 and
E:\viostor\w10\amd64. This duplication causes issues with Windows 11
24H2 and later.
On my machine, I do not have a `~/Public` directory, which causes
quickqemu to spit out a warning and then crash:
```console
$ quickemu --vm vm.conf
- WARNING! Public directory: '/home/jeremy/Public' doesn't exist!
Quickemu 4.9.7 using /nix/store/nk59c14nwf79bafmrsnnhndmpnrlplrv-qemu-10.1.0/bin/qemu-system-x86_64 v10.1.0
...
- 9P: On guest: sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=104857600 ~/Public
...
- Process: ERROR! Failed to start /nix/store/va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm.conf as va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm
qemu-system-x86_64: -netdev user,hostname=va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm,hostfwd=tcp::22220-:22,smb=/home/jeremy/Public,id=nic: Error accessing shared directory '/home/jeremy/Public': No such file or directory
```
Here's my `vm.conf`. Note how I'm not asking for a public dir:
```
iso="/nix/store/q3j8357dz3kmyjv84wfj4pyn20b65h9l-nixos-minimal-25.11pre-git-x86_64-linux.iso/iso/nixos-minimal-25.11pre-git-x86_64-linux.iso"
```
Previously, edition fallback logic allowed downloading the correct
"graphical" ISO for 25.05 even when specifying "plasma6" or "gnome".
However, the VM_PATH and directory name still used the original edition
(e.g., nixos-25.05-plasma6). Fixing this would require more complicated
changes to the code.
NixOS 24.11 will reach EOL on 2025-06-30, about two weeks from now.
- Drop legacy 23.11 support; now only 24.11 or later is allowed
- Fallback to "graphical" edition except 24.11
- Do not display "graphical" edition to users;
it is not supported in 24.11
* fix: handle inconsistent filenaming
They name releases with a dash for mate and a dot for the others. No bets on when they notice this and make it consistent. In case they somehow get a dashed name first swap the dotty ones too.
FreeDOS does ship the Crynwr packet driver package, which does contain an
RTL8139 driver. However, you have to install the package after installing
FreeDOS, even if you performed a full install. It also seems to lock up for
me when attempting to load it.
The PCNet packet driver on the other hand, is installed with a full FreeDOS
install, is open source, and does work, at least for me.
* fix: Check for PipeWire as well as PulseAudio before falling back to ALSA
* fix: Use PipeWire backend if available, and where QEMU version is >8.1
Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
---------
Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
The latest Solus release has changed the naming of ISOs:
- Update all related functions to support the ISO name
format used in the latest release.
- Use the directory listings in order to support more releases in the future.
The static list included a release that has been removed
and also hard coded mappings for 2023 and 2024. This dynamically determines the latest two years
and finds available releases in those years, so will still provide reasonable service next year.
* fix(fedora): Check whether the link value contains an actual .iso file
Also remove the SHA256 requirement. Fedora provides these for all links
now.
Fixes#1502
* refactor(fedora): Use more concise function to filter out non-ISO files
---------
Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
* fix(fedora): handle the space in the beta release
fixes#1462
adjust the RELEASE to remove and replace the space
* fix(fedora): only list available editions where a release is selected
fixes#1493
* proper fix for 'editions'
quotes needed on editions function call to prevent globbing ....
* fix archcraft download
otherwise just downloads with filename 'download' without even a .iso extension
* refactor: Use web_redirect function to get archcraft URL
---------
Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
* fix: blendOS now has a single current iso
Select a reasonable mirror as the old choice is unreliable
Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
* docs: Simplify make rules for pandoc
This removes a --standalone duplicate and counter-productive
indirections like $(MANSECTION) because it prevents having more
than one and docs/Makefile hardcodes the section anyway.
* docs: Move quickemu_conf manual to section 5
Where it technically belongs... With the new make rules for pandoc, it's
actually much easier to manage manuals in several sections without much
overhead.
* docs: Remove potential quickemu_conf.1 leftover
* Set RTC to localtime only for Windows/ReactOS/DOS and UTC for all other OS
Windows/ReactOS/DOS conventionally set the system RTC to local time, but Linux/UNIX/macOS use UTC. Guest systems that expect UTC and have the time zone set to local time will have the wrong system clock time at startup until they set the clock with NTP. This is especially an issue for disk images imported from or shared with another VM configuration that uses UTC for non-Windows guests.
* Removed RTC driftfix option for non-Windows/ReactOS/DOS guests
According to the QEMU man page:
Enable driftfix (i386 targets only) if you experience time
drift problems, specifically with Windows' ACPI HAL. This
option will try to figure out how many timer interrupts were
not processed by the Windows guest and will re-inject them.
This option thus seems unnecessary for other systems and may cause
performance or timekeeping issues, so enable only for
Windows/ReactOS/DOS.
move code necessary for creation of unattended.iso for windows 10 and 11
inside unattended_windows function
Change parameter required for unattended_windows function from
autounattend.xml file to $VM_PATH
When RAM is not specified in the config and the min RAM is not met, quickemu tells the user to override the RAM amount and exits.
If the user overrides the RAM, the script should allow the user to continue with a warning.
quickemu has long hand command line arguments only. This commit removes the short hand arguments from the expanded capabilities introduced in quickget 4.9.3, so that both tools have a consistent user experience.
man pages so far retain much of the installation and usage detail.
The README.md is now not really requiring regeneration as all the details
are referenced in the wiki. It will be added in a seperate commit which can be ignored
but serves to show the 'corrections' and style tweaks imposed by pandoc. These principally are line length and whitespace,
with some markdown pedantry
* urgent fix for sonoma and #1114
(cherry picked from commit 960c34eca9)
* improved macos fix
Should also work on AMD RYZEN but please re-test
Same lines as already Ryzen tested but further testing on older ryzen and notebooks would be a good idea
improves on #1116
hopefull solves any other issues from #1114
(cherry picked from commit e4b876c2ef)
* MacOs update variant using more Haswell
See #1117
This generate too much noise in pull-requests making it is impossible to review changes. Will re-enalble when quickemu and quickget have zero sheelcheck issues
The instructions for git clone is missing one step: sudo make install. This required me to examine the makefile targets and figure it out for myself. Not so bad for me, but others may be confused about what to do.
A recent macOS Sonoma update included a change to the handling of USB controllers that made the virtual keyboard and mouse inoperative. Changing the USB controller from ehci to xhci fixes it. This change also works for Big Sur and later, so the USB controller is set to xhci for Big Sur through Sonoma.
This adds disk_format=${disk_format:-qcow2} variable that defaults to
qcow2 format, so the vm.conf files can use $disk_format to specify the
format of the $disk_img when this is different from the default qcow2.
* Add windows languages, many bugfixes
Entering a release, edition, or OS with only part of a valid one will now throw an error, rather than attempting to download
i.e. $quickget windows 1 > "ERROR! Windows 1 is not a supported release", rather than attempting to download a nonexistent ISO
* Replace "languages" with "editions" to improve consistency
* Remove unnecessary code, hardcode windows editions to not waste time
* Add windows server, LTSC
* Windows server requires IDE drive
* Update Windows Guests section in README.md
* Improve support for windows server
Add back the language array, change stylization of languages in list
* Fix quickget show-iso-url and test-iso-url creating unnecessary directory
* Beautify output, add show-iso-url and test-iso-url for Windows (fully) and macOS (sorta)
* (NON-FUNCTIONAL) macrecovery shell script.
* Semi-functional (although incomplete) macrecovery shell script
Rough draft. To be completed, cleaned up and simplified (very much so)
hoping to merge into quickemu & replace the python macrecovery dependency.
* macrecovery shell script now successfully downloads the image. TODO: Verification
* Merged macrecovery functions into quickget. Chunkcheck (C) to replace macrecovery's image verification
Chunkcheck written by MCJack123: https://gist.github.com/MCJack123/943eaca762730ca4b7ae460b731b68e7
* Replace C chunkcheck binary with the Python equivalent. Re-add python to dependencies.
* force macOS guests to usually boot with core counts which are powers of 2; fix#865
* Add support for macOS Sonoma
* Fix issue where script would be unable to find chunkcheck if installed system-wide
* Update README verbiage
* Add headers to web_get function; macOS can now be downloaded via aria2; clean up code & output
* Add support for macOS Sonoma
* Fix use of wrong operator (>) which touches a file
* Small correction to README
* macOS switched from wget to default downloader (aria2/wget)
* Replace wget with cURL for downloading macOS chunklist file
* Fix variable naming in generate_id function
* Automatic fetching of ubuntu versions
* Fix displaying ubuntu versions
* Update quickget
* Updated quickget
- Remove obsolete daily-legacy
- Add error if desktop amd64 build do not exist as in current status
* Allow 'daily' as a valid release for ubuntu family
* Better logic to fetch Ubuntu-server & failsafe
This implementation is based on Mido:
- https://github.com/ElliotKillick/Mido
More useful failure messages are presented and if the download is blocked clear steps to manually complete the setup are presented. Windows 8 is re-instated as a supported release, although without install automation or driver optimisation.
Gentoo DIGESTS file contains BLAKE2B and SHA512 hashes. Since BLAKE2B comes first in the file, it was incorrectly selected when checking SHA512 checksum.
Added new configuration file option "sound_card" and new command-line
switch "--sound-card" to change the virtual sound hardware. Allowed
options are "intel-hda" (default), "ac97", "es1370", "sb16", and "none".
Also changed default sound card for Solaris to "ac97" and for FreeDOS to
"sb16".
* fix ubuntu eol releases
Signed-off-by: Basil K Y <techiebasil@gmail.com>
* fix hash check when using MD5
---------
Signed-off-by: Basil K Y <techiebasil@gmail.com>
Rackspace's mirror network is geographically distributed. Requesting
the mirror.rackspace.com endpoint will point you at the closest mirror
to your location. It will even route you to the next nearest mirror in
the case of an outage. Hard coding this to the lon.mirror.rackspace.com
endpoint forces every user to route through London, regardless of their
location.
Otherwise they refuse to install. Added some overhead to allow for trying package updating and installation as well.
daily-canary appears to have returned as well
On Big Sur and up apple includes the VirtIO driver and therefore the install disk is named
Apple Inc. VirtIO Block Device instead of QEMU HARDDISK Media.
This PR lets the documentation reflect that.
* Add initial Solaris/Illumos support
* Fix OpenIndiana kernel panic on boot
The OpenIndiana kernel panics on boot in the AHCI driver. Switching the
machine type from "q35" to "pc" seems to fix the issue.
* Fix Illumos/OpenIndiana USB controller issue.
* Add openindiana support
* Updated quickget with current OpenIndiana release
* Change OpenIndiana video card to vmware-svga
OpenIndiana's default Xorg configuration doesn't work with QXL, virtio,
or VGA, but it does with vmware-svga.
* Updated man pages for OpenIndiana support
* Changed default Solaris/OpenIndiana boot to legacy
The OpenIndiana installer defaults to MBR partition table and BIOS boot
code even in EFI mode, so changed quickget to set 'boot="legacy"' in the
configuration file.
---------
Co-authored-by: Phil Clifford <philip.clifford@gmail.com>
If you have set a download directory in aria2's config, quickget will
download files to the wrong directory. This overwrites that setting and
downloads files to the correct location.
Quote from `aria2c(1)`:
> `-o, --out=<FILE>`
> The file name of the downloaded file. It is
> always relative to the directory given in
> `--dir` option.
Also support their .bz2 compressed isos, giving access to all releases
back to 2017.
Removing (or making optional) the .bz2 in the search
will just return the current iso
This obsoletes #675 but in case that gets closed
here's an attempt to acknowlege a valuable heads-up.
Co-authored-by: Kurt Kremitzki <kremitzki@users.noreply.github.com>
Thanks for submitting your first issue to the Quickemu project 🐛 We'll try and take a look at your issue soon ⏲
In the meantime you might want to join the [Wimpys World Discord](https://wimpysworld.io/discord) 🗣 where we have a large community of Linux 🐧 enthusiasts and passionate open source developers 🧑💻
You might also be interested in following [Wimpys World Twitch 📡 channel](https://twitch.tv/WimpysWorld) where Wimpy streams let's code video, including this project, several times a week. A back catalog of past live stream and other Linux related content is available on [Wimpys World YouTube 📺 channel](https://youtube.com/WimpysWorld).
pr-message:|
Hello there 👋
Thanks for submitting your first pull request to the Quickemu project 💪 We'll try to review your pull request soon ⏲
In the meantime you might want to join the [Wimpys World Discord](https://wimpysworld.io/discord) 🗣 where we have a large community of Linux 🐧 enthusiasts and passionate open source developers 🧑💻
You might also be interested in following [Wimpys World Twitch 📡 channel](https://twitch.tv/WimpysWorld) where Wimpy streams let's code video, including this project, several times a week. A back catalog of past live stream and other Linux related content is available on [Wimpys World YouTube 📺 channel](https://youtube.com/WimpysWorld).
- Help other Quickemu users by answering questions in the [Quickemu Discussions](https://github.com/quickemu-project/quickemu/discussions) 🛟
- Improve the documentation in [this README](https://github.com/quickemu-project/quickemu/edit/master/README.md) and the [Quickemu Wiki](https://github.com/quickemu-project/quickemu/wiki) 📖
- File bug reports and feature requests in the [Quickemu Issues](https://github.com/quickemu-project/quickemu/issues) 📁
- Submit [Quickemu Pull requests](https://github.com/quickemu-project/quickemu/pulls) to fix bugs 🐞 or add new features ✨
- Follow our [guide to adding a new OS to quickget](https://github.com/quickemu-project/quickemu/wiki/06-Advanced-quickget-features#adding-a-new-os-to-quickget)
- Commit messages must [conform to the Conventional Commits specification](https://www.conventionalcommits.org/).
- [Sponsor the project](https://github.com/sponsors/flexiondotorg) 💖
**Quickly create and run optimised Windows, macOS and Linux virtual machines:**
**Made with 💝 for <imgsrc=".github/tux.png"align="top"width="24"alt="Tux (Linux)"/>&<imgsrc=".github/apple.png"align="top"width="24"alt="Apple (macOS)"/>**
where the virtual machines and their configuration can be stored anywhere (such
as external USB storage or your home directory) and no elevated permissions are
required to run the virtual machines.
**Today, Quickemu includes comprehensive support for [macOS](https://github.com/quickemu-project/quickemu/wiki/03-Create-macOS-virtual-machines),
[Windows](https://github.com/quickemu-project/quickemu/wiki/04-Create-Windows-virtual-machines)**, most of the BSDs, novel non-Linux operating systems such as FreeDOS, Haiku, KolibriOS, OpenIndiana, ReactOS, and more.
# Features
- Host support for **Linux and macOS**
- **macOS** Sonoma, Ventura, Monterey, Big Sur, Catalina & Mojave
- **Windows** 10 and 11 including TPM 2.0
- **Windows Server** 2022 2019 2016
- [Ubuntu](https://ubuntu.com/desktop) and all the **[official Ubuntu
flavours](https://ubuntu.com/download/flavours)**
- **Nearly 1000 operating system editions are supported!**
- Full SPICE support including host/guest clipboard sharing
- VirtIO-webdavd file sharing for Linux and Windows guests
- VirtIO-9p file sharing for Linux and macOS guests
- Samba file sharing for Linux, macOS and Windows guests (*if `smbd`
is installed on the host*)
- VirGL acceleration
- USB device pass-through
- Smartcard pass-through
- Automatic SSH port forwarding to guests
- Network port forwarding
- Full duplex audio
- Braille support
- EFI (with or without SecureBoot) and Legacy BIOS boot
## As featured on [Linux Matters](https://linuxmatters.sh) podcast!
The presenters of Linux Matters 🐧🎙️ are the creators of each of the principal Quickemu projects. We discussed Quickemu's 2024 reboot in [Episode 30 - Quickemu Rising From the Bashes](https://linuxmatters.sh/30). <!-- and in [Episode 32 - Quick, quicker, quickest](https://linuxmatters.sh/32)[Martin](https://github.com/flexiondotorg) unveils macOS host support for [**Quickemu**](https://github.com/quickemu-project/quickemu), [Mark](https://github.com/marxjohnson) explains the origins of the [**Quickgui**](https://github.com/quickemu-project/quickgui) desktop app and upcoming improvements, and [Alan](https://github.com/popey) debuts [**Quicktest**](https://github.com/quickemu-project/quicktest); a framework for automatically testing operating systems via Quickemu -->
<palign="center">Made with 💝 for <imgsrc=".github/tux.png"align="top"width="18"/></p>
# Quick start
## Introduction
[Once Quickemu is installed](https://github.com/quickemu-project/quickemu/wiki/01-Installation), there are two simple steps to create and run a virtual machine:
Quickly create and run highly optimised desktop virtual machines for
Linux, macOS and Windows; with just two commands. You decide what
operating system you want to run and Quickemu will figure out the best
way to do it for you. For example:
- `quickget` automatically downloads the ISO image for the operating system you want to run and creates a configuration file for the virtual machine.
``` bash
quickget ubuntu-mate 22.04
quickemu --vm ubuntu-mate-22.04.conf
``` shell
quickget nixos unstable minimal
```
The original objective of the project was to enable quick testing of
Linux distributions where the virtual machine configurations can be
stored anywhere, such as external USB storage or your home directory,
and no elevated permissions are required to run the virtual machines.
**Quickemu now also includes comprehensive support for macOS and
Windows**.
- `quickemu` starts the virtual machine using the configuration file created by `quickget`.
## Features
- **macOS** Monterey, Big Sur, Catalina, Mojave & High Sierra
- **Windows** 8.1, 10 and 11 including TPM 2.0
- [Ubuntu](https://ubuntu.com/desktop) and all the **[official Ubuntu
flavours](https://ubuntu.com/download/flavours)**
- **Over 360 operating system editions are supported!**
- Full SPICE support including host/guest clipboard sharing
- VirtIO-webdavd file sharing for Linux and Windows guests
- VirtIO-9p file sharing for Linux and macOS guests
- Install the SPICE agent (`spice-vdagent`) in the guest to enable
copy/paste and USB redirection.
- Install the SPICE WebDAV agent (`spice-webdavd`) in the guest to
enable file sharing.
## macOS Guest
`quickget` automatically downloads a macOS recovery image and creates a
virtual machine configuration.
``` bash
quickget macos catalina
quickemu --vm macos-catalina.conf
```
macOS `high-sierra`, `mojave`, `catalina`, `big-sur` and `monterey` are
supported.
- Use cursor keys and enter key to select the **macOS Base System**
- From **macOS Utilities**
- Click **Disk Utility** and **Continue**
- Select `QEMU HARDDISK Media` (\~103.08GB) from the list and
click **Erase**.
- Enter a `Name:` for the disk
- If you are installing macOS Mojave or later (Catalina, Big
Sur, and Monterey), choose any of the APFS options as the
filesystem. MacOS Extended may not work.
- Click **Erase**.
- Click **Done**.
- Close Disk Utility
- From **macOS Utilities**
- Click **Reinstall macOS** and **Continue**
- Complete the installation as you normally would.
- On the first reboot use cursor keys and enter key to select
**macOS Installer**
- On the subsequent reboots use cursor keys and enter key to
select the disk you named
- Once you have finished installing macOS you will be presented with
an the out-of-the-box first-start wizard to configure various
options and set up your username and password
- OPTIONAL: After you have concluded the out-of-the-box wizard, you
may want to enable the TRIM feature that the computer industry
created for SSD disks. This feature in our macOS installation will
allow QuickEmu to compact (shrink) your macOS disk image whenever
you delete files inside the Virtual Machine. Without this step your
macOS disk image will only ever get larger and will not shrink even
when you delete lots of data inside macOS.
- To enable TRIM, open the Terminal application and type the
following command followed by pressing
command on the hard disk when files are deleted:
``` bash
sudo trimforce enable
```
You will be prompted to enter your account's password to gain the
privilege needed. Once you've entered your password and pressed
in the form of two questions that require you to type
response as though you said "no":
``` plain
IMPORTANT NOTICE: This tool force-enables TRIM for all relevant attached devices, even though such devices may not have been validated for data integrity while using TRIM. Use of this tool to enable TRIM may result in unintended data loss or data corruption. It should not be used in a commercial operating environment or with important data. Before using this tool, you should back up all of your data and regularly back up data while TRIM is enabled. This tool is provided on an "as is" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THIS TOOL OR ITS USE ALONE OR IN COMBINATION WITH YOUR DEVICES, SYSTEMS, OR SERVICES. BY USING THIS TOOL TO ENABLE TRIM, YOU AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE LAW, USE OF THE TOOL IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU.
Are you sure you with to proceed (y/N)?
```
And a second confirmation once you've confirmed the previous one:
``` plain
Your system will immediately reboot when this is complete.
Is this OK (y/N)?
```
As the last message states, your system will automatically reboot as
soon as the command completes.
The default macOS configuration looks like this:
``` bash
guest_os="macos"
img="macos-catalina/RecoveryImage.img"
disk_img="macos-catalina/disk.qcow2"
macos_release="catalina"
```
- `guest_os="macos"` instructs Quickemu to optimise for macOS.
- `macos_release="catalina"` instructs Quickemu to optimise for a
particular macOS release.
- For example VirtIO Network and Memory Ballooning are available
in Big Sur and newer, but not previous releases.
- And VirtIO Block Media (disks) are supported/stable in Catalina
and newer.
### macOS compatibility
There are some considerations when running macOS via Quickemu.
- Supported macOS releases:
- High Sierra
- Mojave
- Catalina **(Recommended)**
- Big Sur
- Monterey
- `quickemu` will automatically download the required
Here are the versions of Quickemu currently being supported with security updates.
| Version | Supported |
| ------- | ------------------ |
| 4.9.x | :white_check_mark: |
| <4.8|:x:|
## Reporting a Vulnerability
If you discover a vulnerability in Quickemu then [file an issue](https://github.com/quickemu-project/quickemu/issues/new) and click *Report a vulnerability*.
- Quickemu is a spare-time hobby project.
- We do not have SLAs for responding to security issues.
\f[CR]monterey\f[R], \f[CR]ventura\f[R] and \f[CR]sonoma\f[R] are
supported.
.IP\[bu]2
Use cursor keys and enter key to select the \f[B]macOS Base System\f[R]
.IP\[bu]2
@ -265,13 +405,15 @@ From \f[B]macOS Utilities\f[R]
Click \f[B]Disk Utility\f[R] and \f[B]Continue\f[R]
.RS2
.IP\[bu]2
Select \f[V]QEMU HARDDISK Media\f[R] (\[ti]103.08GB) from the list and
Select \f[CR]QEMU HARDDISK Media\f[R] (\[ti]103.08GB) from the list (on
Big Sur and above use \f[CR]Apple Inc. VirtIO Block Device\f[R]) and
click \f[B]Erase\f[R].
.IP\[bu]2
Enter a \f[V]Name:\f[R] for the disk
Enter a \f[CR]Name:\f[R] for the disk
.IP\[bu]2
If you are installing macOS Mojave or later (Catalina, Big Sur, and
Monterey), choose any of the APFS options as the filesystem.
If you are installing macOS Mojave or later (Catalina, Big Sur,
Monterey, Ventura and Sonoma), choose any of the APFS options as the
filesystem.
MacOS Extended may not work.
.RE
.IP\[bu]2
@ -299,10 +441,10 @@ disk you named
.RE
.IP\[bu]2
Once you have finished installing macOS you will be presented with an
the out-of-the-box first-start wizard to configure various options and
set up your username and password
the out\-of\-the\-box first\-start wizard to configure various options
and set up your username and password
.IP\[bu]2
OPTIONAL: After you have concluded the out-of-the-box wizard, you may
OPTIONAL: After you have concluded the out\-of\-the\-box wizard, you may
want to enable the TRIM feature that the computer industry created for
SSD disks.
This feature in our macOS installation will allow QuickEmu to compact
@ -317,54 +459,47 @@ command followed by pressing enter to tell macos to use the TRIM command
on the hard disk when files are deleted:
.RE
.IP
.nf
\f[C]
.EX
sudo trimforce enable
\f[R]
.fi
.EE
.PP
You will be prompted to enter your account\[cq]s password to gain the
You will be prompted to enter your account\[aq]s password to gain the
privilege needed.
Once you\[cq]ve entered your password and pressed enter the command will
Once you\[aq]ve entered your password and pressed enter the command will
request confirmation in the form of two questions that require you to
type y (for a \[lq]yes\[rq] response) followed by enter to confirm.
If you press enter without first typing y the system will consider that
a negative response as though you said \[lq]no\[rq]:
.IP
.nf
\f[C]
IMPORTANT NOTICE: This tool force-enables TRIM for all relevant attached devices, even though such devices may not have been validated for data integrity while using TRIM. Use of this tool to enable TRIM may result in unintended data loss or data corruption. It should not be used in a commercial operating environment or with important data. Before using this tool, you should back up all of your data and regularly back up data while TRIM is enabled. This tool is provided on an \[dq]as is\[dq] basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THIS TOOL OR ITS USE ALONE OR IN COMBINATION WITH YOUR DEVICES, SYSTEMS, OR SERVICES. BY USING THIS TOOL TO ENABLE TRIM, YOU AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE LAW, USE OF THE TOOL IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU.
Are you sure you with to proceed (y/N)?
\f[R]
.fi
type y (for a \[dq]yes\[dq] response) followed by enter to confirm.
.PP
And a second confirmation once you\[cq]ve confirmed the previous one:
If you press enter without first typing y the system will consider that
a negative response as though you said \[dq]no\[dq]:
.IP
.nf
\f[C]
.EX
IMPORTANT NOTICE: This tool force\-enables TRIM for all relevant attached devices, even though such devices may not have been validated for data integrity while using TRIM. Use of this tool to enable TRIM may result in unintended data loss or data corruption. It should not be used in a commercial operating environment or with important data. Before using this tool, you should back up all of your data and regularly back up data while TRIM is enabled. This tool is provided on an \[dq]as is\[dq] basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON\-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THIS TOOL OR ITS USE ALONE OR IN COMBINATION WITH YOUR DEVICES, SYSTEMS, OR SERVICES. BY USING THIS TOOL TO ENABLE TRIM, YOU AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE LAW, USE OF THE TOOL IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU.
Are you sure you with to proceed (y/N)?
.EE
.PP
And a second confirmation once you\[aq]ve confirmed the previous one:
.IP
.EX
Your system will immediately reboot when this is complete.
Is this OK (y/N)?
\f[R]
.fi
.EE
.PP
As the last message states, your system will automatically reboot as
soon as the command completes.
.PP
The default macOS configuration looks like this:
.IP
.nf
\f[C]
.EX
guest_os=\[dq]macos\[dq]
img=\[dq]macos-catalina/RecoveryImage.img\[dq]
disk_img=\[dq]macos-catalina/disk.qcow2\[dq]
macos_release=\[dq]catalina\[dq]
\f[R]
.fi
img=\[dq]macos\- big\-sur/RecoveryImage.img\[dq]
disk_img=\[dq]macos\- big\-sur/disk.qcow2\[dq]
macos_release=\[dq] big\-sur\[dq]
.EE
.IP\[bu]2
\f[V]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
\f[CR]guest_os=\[dq]macos\[dq]\f[R] instructs Quickemu to optimise for
macOS.
.IP\[bu]2
\f[V]macos_release=\[dq]catalina\[dq]\f[R] instructs Quickemu to
\f[CR]macos_release=\[dq] big\-sur\[dq]\f[R] instructs Quickemu to
optimise for a particular macOS release.
.RS2
.IP\[bu]2
@ -374,48 +509,60 @@ Sur and newer, but not previous releases.
And VirtIO Block Media (disks) are supported/stable in Catalina and
newer.
.RE
.SSmacOScompatibility
.PP
.SHmacOScompatibility
There are some considerations when running macOS via Quickemu.
.IP\[bu]2
Supported macOS releases:
.RS2
.IP\[bu]2
High Sierra
.IP\[bu]2
Mojave
.IP\[bu]2
Catalina\f[B](Recommended)\f[R]
Catalina
.IP\[bu]2
Big Sur
.IP\[bu]2
Monterey
.IP\[bu]2
Ventura
.IP\[bu]2
Sonoma
.RE
.IP\[bu]2
\f[V]quickemu\f[R] will automatically download the required
OpenCore (https://github.com/acidanthera/OpenCorePkg) bootloader and
OVMF firmware from OSX-KVM (https://github.com/kholia/OSX-KVM).
\f[CR]quickemu\f[R] will automatically download the required \c
.URhttps://github.com/acidanthera/OpenCorePkg
OpenCore
.UE\c
\ bootloader and OVMF firmware from \c
.URhttps://github.com/kholia/OSX-KVM
OSX\-KVM
.UE\c
\&.
.IP\[bu]2
Optimised by default, but no GPU acceleration is available.
.RS2
.IP\[bu]2
Host CPU vendor is detected and guest CPU is optimised accordingly.
.IP\[bu]2
VirtIO Block
Media (https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used
`quickget` automatically downloads a macOS recovery image and creates a
virtual machine configuration.
``` bash
quickget macos catalina
quickemu --vm macos-catalina.conf
``` shell
quickget macos big-sur
quickemu --vm macos-big-sur.conf
```
macOS `high-sierra`, `mojave`, `catalina`, `big-sur` and `monterey` are
supported.
macOS `mojave`, `catalina`, `big-sur`, `monterey`, `ventura` and
`sonoma` are supported.
- Use cursor keys and enter key to select the **macOS Base System**
- From **macOS Utilities**
- Click **Disk Utility** and **Continue**
- Select `QEMU HARDDISK Media` (\~103.08GB) from the list and
click **Erase**.
- Enter a `Name:` for the disk
- If you are installing macOS Mojave or later (Catalina, Big
Sur, and Monterey), choose any of the APFS options as the
filesystem. MacOS Extended may not work.
- Click **Erase**.
- Click **Done**.
- Close Disk Utility
- From **macOS Utilities**
- Click **Reinstall macOS** and **Continue**
- Complete the installation as you normally would.
- On the first reboot use cursor keys and enter key to select
**macOS Installer**
- On the subsequent reboots use cursor keys and enter key to
select the disk you named
- Once you have finished installing macOS you will be presented with
an the out-of-the-box first-start wizard to configure various
options and set up your username and password
- OPTIONAL: After you have concluded the out-of-the-box wizard, you
may want to enable the TRIM feature that the computer industry
created for SSD disks. This feature in our macOS installation will
allow QuickEmu to compact (shrink) your macOS disk image whenever
you delete files inside the Virtual Machine. Without this step your
macOS disk image will only ever get larger and will not shrink even
when you delete lots of data inside macOS.
- To enable TRIM, open the Terminal application and type the
following command followed by pressing
`<kbd>`{=html}enter`</kbd>`{=html} to tell macos to use the TRIM
command on the hard disk when files are deleted:
- Use cursor keys and enter key to select the **macOS Base System**
- From **macOS Utilities**
- Click **Disk Utility** and **Continue**
- Select `QEMU HARDDISK Media` (~103.08GB) from the list (on Big Sur
and above use `Apple Inc. VirtIO Block Device`) and click
**Erase**.
- Enter a `Name:` for the disk
- If you are installing macOS Mojave or later (Catalina, Big Sur,
Monterey, Ventura and Sonoma), choose any of the APFS options as
the filesystem. MacOS Extended may not work.
- Click **Erase**.
- Click **Done**.
- Close Disk Utility
- From **macOS Utilities**
- Click **Reinstall macOS** and **Continue**
- Complete the installation as you normally would.
- On the first reboot use cursor keys and enter key to select **macOS
Installer**
- On the subsequent reboots use cursor keys and enter key to select
the disk you named
- Once you have finished installing macOS you will be presented with an
the out-of-the-box first-start wizard to configure various options and
set up your username and password
- OPTIONAL: After you have concluded the out-of-the-box wizard, you may
want to enable the TRIM feature that the computer industry created for
SSD disks. This feature in our macOS installation will allow QuickEmu
to compact (shrink) your macOS disk image whenever you delete files
inside the Virtual Machine. Without this step your macOS disk image
will only ever get larger and will not shrink even when you delete
lots of data inside macOS.
- To enable TRIM, open the Terminal application and type the following
command followed by pressing <kbd>enter</kbd> to tell macos to use
the TRIM command on the hard disk when files are deleted:
``` bash
``` shell
sudo trimforce enable
```
You will be prompted to enter your account's password to gain the
privilege needed. Once you've entered your password and pressed
`<kbd>`{=html}enter`</kbd>`{=html} the command will request confirmation
in the form of two questions that require you to type
`<kbd>`{=html}y`</kbd>`{=html} (for a "yes" response) followed by
`<kbd>`{=html}enter`</kbd>`{=html} to confirm. If you press
`<kbd>`{=html}enter`</kbd>`{=html} without first typing
`<kbd>`{=html}y`</kbd>`{=html} the system will consider that a negative
response as though you said "no":
<kbd>enter</kbd> the command will request confirmation in the form of
two questions that require you to type <kbd>y</kbd> (for a "yes"
response) followed by <kbd>enter</kbd> to confirm.
If you press <kbd>enter</kbd> without first typing <kbd>y</kbd> the
system will consider that a negative response as though you said "no":
``` plain
IMPORTANT NOTICE: This tool force-enables TRIM for all relevant attached devices, even though such devices may not have been validated for data integrity while using TRIM. Use of this tool to enable TRIM may result in unintended data loss or data corruption. It should not be used in a commercial operating environment or with important data. Before using this tool, you should back up all of your data and regularly back up data while TRIM is enabled. This tool is provided on an "as is" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THIS TOOL OR ITS USE ALONE OR IN COMBINATION WITH YOUR DEVICES, SYSTEMS, OR SERVICES. BY USING THIS TOOL TO ENABLE TRIM, YOU AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE LAW, USE OF THE TOOL IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU.
@ -240,63 +360,64 @@ soon as the command completes.
The default macOS configuration looks like this:
``` bash
``` shell
guest_os="macos"
img="macos-catalina/RecoveryImage.img"
disk_img="macos-catalina/disk.qcow2"
macos_release="catalina"
img="macos- big-sur/RecoveryImage.img"
disk_img="macos- big-sur/disk.qcow2"
macos_release=" big-sur"
```
- `guest_os="macos"` instructs Quickemu to optimise for macOS.
- `macos_release="catalina"` instructs Quickemu to optimise for a
particular macOS release.
- For example VirtIO Network and Memory Ballooning are available
in Big Sur and newer, but not previous releases.
- And VirtIO Block Media (disks) are supported/stable in Catalina
and newer.
- `guest_os="macos"` instructs Quickemu to optimise for macOS.
- `macos_release=" big-sur"` instructs Quickemu to optimise for a
particular macOS release.
- For example VirtIO Network and Memory Ballooning are available in
Big Sur and newer, but not previous releases.
- And VirtIO Block Media (disks) are supported/stable in Catalina and
newer.
### macOS compatibility
# macOS compatibility
There are some considerations when running macOS via Quickemu.
- Supported macOS releases:
- High Sierra
- Mojave
- Catalina **(Recommended)**
- Big Sur
- Monterey
- `quickemu` will automatically download the required