# README qq2clone is a linux tool to simplify creating and managing copy-on-write clones of template QEMU/KVM virtual machines. It can perform batch operations in case you are working with multiple clones. There is a version of the manual page you can read online above ([man.md](https://git.j-g-web.com/jesse/qq2clone/src/branch/master/man.md)). qq2clone has these dependences: * virsh (qq2clone has started transitioning to use the libvirt API directly, this will not remain a dependency forever) * Bash 4.0+ * sqlite3 * xmllint (from libxml2) * qemu\-img * libvirt tools: * virt\-clone * virt\-xml * virt\-xml\-validate # INSTALL The file [qq2clone_installer.bash](https://git.j-g-web.com/jesse/qq2clone/raw/branch/master/qq2clone_installer.bash) is a setup script containing a self-extracting archive. If you copy and paste the following into a terminal, it will download and run. ``` curl https://git.j-g-web.com/jesse/qq2clone/raw/branch/master/qq2clone_installer.bash > .qq2clone_installer.bash 2> /dev/null && chmod +x .qq2clone_installer.bash && ./.qq2clone_installer.bash ``` # FAQ ## How do I use this thing? The [manual](https://git.j-g-web.com/jesse/qq2clone/src/branch/master/man.md) is quite detailed, and there is an [examples](https://git.j-g-web.com/jesse/qq2clone/src/branch/master/man.md#examples) section that may be helpful. ## Why use Bash and C when this could all be written in Python? Just to improve my Bash skills and gain a tiny bit of familiarity with C. Writing this in Python would certainly have been easier. # Copyright 2021, Jesse Gardner All files present in the qq2clone git repository are released under the the GNU GPL v2 license, made available in the [license file](https://git.j-g-web.com/jesse/qq2clone/raw/branch/master/LICENSE) above. All files contained in the qq2clone git repository, beginning from the first commit and continuing to the present, are offered solely under the terms of the GNU GPL v2 license.