Skip to content
This repository has been archived by the owner on Mar 14, 2021. It is now read-only.

AnErrupTion/MyFastEmulator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyFastEmulator
MyFastEmulator

Easily manage your QEMU virtual machines.

MyFastEmulator Screenshot

Made with 💝 for

NOTE

MFE v1 : First version, discontinued with no updates.
MFE v2 : Second version, discontinued with stability updates and bug fixes.
MFE v3 : Latest version, see the "mfe-v3" branch.

Introduction

MyFastEmulator is a fork of the Quickemu project which aims to be a more complete and user-friendly version than Quickemu. But overall, it allows you to easily manage your QEMU virtual machines without any hassle. Each virtual machine configuration is requiring minimal but very useful configuration, such as total CPU cores, emulated cpu, RAM, and even more. The main objective of the project is to enable quick testing of desktop Linux distributions AND Windows operating systems where the virtual machines can be stored anywhere, such as external USB storage.

MyFastEmulator is faster than its competitors, for a few reasons. First, it uses emulation rather than pure virtualization. This allows, for example, to use a CPU NOT matching the host one. This also allows better VM performance and less CPU usage since it won't directly use the host CPU. Second, it's very minimal compared to virt-manager, for example. It requires very minimal configuration and doesn't have too much features. And lastly, because it uses KVM as the main accelerator. VMware just can't use KVM, while VirtualBox "sort of can" use it as an option (however, KVM on Windows isn't real KVM as we all know). virt-manager, on the other hand, uses KVM. But it's not as fast as MyFastEmulator. MyFastEmulator is also a frontend to the fully accelerated qemu-virgil. See the video where wimpysworld explains some of his motivations for creating the original script :

Replace VirtualBox with Bash & QEMU

Installation

Clone this repository:

git clone --single-branch --branch=master https://github.com/AnErrupTion/MyFastEmulator.git

Install the qemu-virgil snap. You can find details about how to install snapd and qemu-virgil on the Snap Store page for qemu-virgil. Note that this will use the bleeding edge version of qemu-virgil (required for the last command).

snap install qemu-virgil --edge
snap connect qemu-virgil:kvm
snap connect qemu-virgil:raw-usb
snap connect qemu-virgil:removable-media

Usage

FOR WINDOWS

The Windows installer won't recognize your virtual HDD, which is (kind of) normal. To make it detect it, you'll have to install the VirtIO SCSI drivers. To do that, follow the steps below.

* Download the complete VirtIO drivers ISO file, rename it to whatever you want (example : virtio_drivers.iso) then place it wherever you want (example : in the directory where there is MyFastEmulator).

* Edit your configuration file, and add this line : driver_iso="virtio_drivers.iso". Save the file, and close it.

* Boot the VM into the Windows installer of your choice (7, 10, etc...). Now, where the partitions should appear, click Load driver. In the following message box, click Browse, then go to the mounted ISO file, then go to amd64, then click on the folder that matches the Windows version you're installing (for example, win7). Now, load the driver, and the partition should appear! The bug above has been fixed, thus it is not needed anymore to manually add the VirtIO drivers (it now uses AHCI, which is detected by both Windows and Linux distros).

FOR LINUX

  • Download an ISO image of a Linux distribution
  • Create a VM configuration file, for example your_configuration_file.conf
iso="focal-desktop-amd64.iso"
disk_img="focal-desktop-amd64.qcow2
disk=60G

(These are only a few options of MyFastEmulator. To see the full list of options, see the example.conf file..)

  • Use myfastemu to start the virtual machine:
./myfastemu -vm your_configuration_file.conf
  • A Desktop shortcut can be created (in ~/.local/share/applications):
./myfastemu -vm your_configuration_file.conf -shortcut
  • NOTE : If you have an error where it cannot find the virtual HDD or that you haven't specified an ISO image (with desktop shortcut, at the startup of the VM) then you need to add the full path of the virtual HDD AND ISO in the configuration file.

Which will output something like this:

MyFastEmulator Console Screenshot

Here are the full usage instructions:

Usage
  ./myfastemu -vm your_configuration_file.conf

You can also pass optional parameters
  --delete                : Delete the desktop shortcut.
  --shortcut              : Create a desktop shortcut.
  --snapshot apply <tag>  : Apply/restore a snapshot.
  --snapshot create <tag> : Create a snapshot.
  --snapshot delete <tag> : Delete a snapshot.
  --snapshot info         : Show disk/snapshot info.

TODO

  • Add full macOS support
  • Make display configuration more robust
  • Improve stdout presentation
  • Make disk image size configurable
  • Improve snapshot management
  • Add option to create a desktop launcher (shortcut) for a VM (quickemu-project#18)
  • Add support for Virgil3D
  • Add support for GL
  • Get QEMU -audiodev working for audio input
  • Add Windows support
  • Improve performance
  • Add USB pass-through support
  • Improve disk management