diff --git a/.github/logo.png b/.github/logo.png new file mode 100644 index 0000000..d4d23fc Binary files /dev/null and b/.github/logo.png differ diff --git a/.github/screenshot.png b/.github/screenshot.png new file mode 100644 index 0000000..618340d Binary files /dev/null and b/.github/screenshot.png differ diff --git a/README.md b/README.md index e2fbe07..eef3d95 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,83 @@ -# quickemu -Simple shell script to manage Qemu virtual machines. +

+ Quickemu +
+ Quickemu +

+ +

Simple shell script to manage Qemu virtual machines.

+
Quickemu Screenshot
+

Made with 💝 for

+ +## Introduction + +Quickemu is a very simple script to "manage" Qemu virtual machines. Each virtual +machine configuration is broadly the same requiring minimal setup. The main +objective of the project is to enable quick testing of desktop Linux +distributions where the virtual machines can be stored anywhere, such as external +USB storage. + +See the video where I explain my motivations for creating this script. + +[![Replace VirtualBox with Bash & QEMU](https://img.youtube.com/vi/AOTYWEgw0hI/0.jpg)](https://www.youtube.com/watch?v=AOTYWEgw0hI) + +## Installation + +### Ubuntu 19.10 or newer + +Install qemu + +```bash +sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon bridge-utils ovmf +sudo adduser ${SUDO_USER} kvm +``` + +Install `samba` *(optional)* if you want to share home directories with guest virtual machines + +```bash +sudo apt install samba +``` + +Install the `qemu-virgil` snap *(optional)* + +```bash +snap install qemu-virgil +snap connect qemu-virgil:removable-media +``` + +## Usage + + * Download a .iso image of a Linux distribution + * Create a VM configuration file; for example `ubuntu.conf` + +``` +iso="/media/$USER/Quickemu/ubuntu/focal-desktop-amd64.iso" +disk_img="/media/$USER/Quickemu/ubuntu/focal-desktop-amd64.qcow2 +``` + + * Use `quickemu.sh` to start the virtual machine: + +``` +./quickemu --vm ubuntu-focal-desktop.conf +``` + +Here are the full usage instructions: + +``` +Usage + quickemu --vm ubuntu.conf + +You can also pass optional parameters + --delete : Delete the disk image. + --efi : Enable EFI BIOS (default). + --legacy : Enable legacy BIOS. + --restore : Restore the snapshot. + --samba : Share your home directory to the guest. + --snapshot : Create a disk snapshot. + --virgil : Use virgil, if available. +``` + +## TODO + + - [ ] Make display configuration more robust + - [ ] Improve stdout presentation + - [ ] Make disk image optionally size configurable \ No newline at end of file