As specified in the title of this article, in order to be precise discussing the subject, it is written to describe how to create qemu image via command line. One of the format file which is known for virtualization technology platform is qcow or currently it is in its 2nd version so it is qcow2. It is adapted by QEMU, one of the famous virtualization technology platform exist. QEMU is an open source technology platform and it is generic purpose for using QEMU is for emulating machine or running server based on virtualization.
So, what is the connection between QEMU and qcow file image format ?. It is because qcow itself is the format which is used as the file format for disk image files used by QEMU. The name of the format, qcow is also stands for “QEMU Copy On Write“.
In order to create a qcow or qcow2 file format, this is the command which is generally need to be executed :
qemu-img create -f format_file location_and_file_name file_size Description : qemu-img : It is the command or the utility which is provided by QEMU virtualization technology platform to perform various operations on disk image file or to be shortened, it is a QEMU disk image utility based on the manual page. create : The reserved keyword used in qemu-img command for creating disk image file -f : It is the first disk image format format_file : It is the disk image format name location_and_file_name : It is the location with the name of the image file which is going to be created file_size : It is the size of image file
To be able to execute the above command pattern, the following package must be checked whether or not it is already been installed or not :
root@hostname:~# apt --installed list | grep qemu-kvm WARNING: apt does not have a stable CLI interface. Use with caution in scripts. qemu-kvm/now 1:2.5+dfsg-5ubuntu10.2 amd64 [installed,upgradable to: 1:2.5+dfsg-5ubuntu10.14] root@hostname:~# apt --installed list | grep libvirt-bin WARNING: apt does not have a stable CLI interface. Use with caution in scripts. libvirt-bin/now 1.3.1-1ubuntu10.1 amd64 [installed,upgradable to: 1.3.1-1ubuntu10.10] root@hostname:~#
The information concerns those two package or utilities can be shown in the following command execution :
root@hostname:~# apt-cache show qemu-kvm Package: qemu-kvm Priority: optional ... Description-en: QEMU Full virtualization QEMU is a fast processor emulator. This package depends on the appropriate qemu-system-$arch to enable KVM to be run. It also includes a script /usr/bin/kvm which runs the appropriate qemu-system-$arch in kvm mode. . Please note that old qemu-kvm configuration files (in /etc/kvm/) are no longer used. Description-md5: d8c3d0e3defbe70c37699d302bf1102e Multi-Arch: foreign Homepage: http://www.qemu.org/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Supported: 5y Task: virt-host Package: qemu-kvm Status: install ok installed ... Description-en: QEMU Full virtualization QEMU is a fast processor emulator. This package depends on the appropriate qemu-system-$arch to enable KVM to be run. It also includes a script /usr/bin/kvm which runs the appropriate qemu-system-$arch in kvm mode. ... Package: qemu-kvm ... Description-en: QEMU Full virtualization QEMU is a fast processor emulator. This package depends on the appropriate qemu-system-$arch to enable KVM to be run. It also includes a script /usr/bin/kvm which runs the appropriate qemu-system-$arch in kvm mode. . Please note that old qemu-kvm configuration files (in /etc/kvm/) are no longer used. Description-md5: d8c3d0e3defbe70c37699d302bf1102e Multi-Arch: foreign Homepage: http://www.qemu.org/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Supported: 5y Task: virt-host user@hostname:~#
So, based on the description given, qemu-kvm is a QEMU Full Virtualization which is enabling KVM to be run. Another package which is also important for KVM based virtualization technology platform is libvirt-bin. Below is the description of libvirt-bin package as shown below :
root@hostname:~# aptitude show libvirt-bin Package: libvirt-bin State: installed Automatically installed: yes Version: 1.3.1-1ubuntu10.1 Priority: optional Section: admin Maintainer: Ubuntu Developers <[email protected]> Architecture: amd64 Uncompressed Size: 10,9 M Depends: init-system-helpers (>= 1.18~), lsb-base (>= 4.1+Debian11ubuntu7), libapparmor1 (>= 2.6~devel), libavahi-client3 (>= 0.6.16), libavahi-common3 (>= 0.6.16), libblkid1 (>= 2.17.2), libc6 (>= 2.17), libcap-ng0, libdbus-1-3 (>= 1.9.14), libdevmapper1.02.1 (>= 2:1.02.97), libgnutls30 (>= 3.4.2), libnetcf1 (>= 1:0.2.2), libnl-3-200 (>= 3.2.7), libnuma1, libparted2 (>= 3.1), libpcap0.8 (>= 1.0.0), libpciaccess0, librados2 (>= 0.72.2), librbd1 (>= 0.72.2), libreadline6 (>= 6.0), libsasl2-2, libsystemd0, libudev1 (>= 183), libvirt0 (= 1.3.1-1ubuntu10.1), libxen-4.6 (>= 4.6.0), libxenstore3.0 (>= 3.2.0), libxml2 (>= 2.7.4), libyajl2 (>= 2.0.4), adduser, bridge-utils, cgmanager | cgroup-lite | cgroup-bin, dnsmasq-base (>= 2.46-1), dbus, ebtables, gettext-base, iptables (>= 1.4.10), logrotate, netcat-openbsd Recommends: libxml2-utils, gawk, dmidecode, parted, pm-utils Suggests: policykit-1 (>= 0.105-4~), apparmor (>= 2.8.96~2541-0ubuntu4~), qemu-kvm | qemu (>= 0.9.1), radvd Conflicts: apparmor (< 2.8.96~2652-0ubuntu1), apparmor:i386 (< 2.8.96~2652-0ubuntu1), libvirt-bin:i386 Breaks: xen-utils-4.1 (>= 4.1.2-2ubuntu2), xen-utils-4.4 (>= 4.4.0-0ubuntu5), xen-utils-4.5 (>= 4.5.0-1ubuntu4) Enhances: qemu, qemu-kvm, xen Provides: libvirt-daemon, libvirt-daemon-system Description: programs for the libvirt library Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The library aims at providing a long term stable C API for different virtualization mechanisms. It currently supports QEMU, KVM, XEN, OpenVZ, LXC, and VirtualBox. This package contains the supporting binaries to use with libvirt Homepage: http://libvirt.org root@hostname:~#
And the example of the real command execution based on the above command pattern is shown below :
[root@hostname]# qemu-img create -f qcow2 myserver-image.qcow2 250G Formatting 'myserver-image.qcow2', fmt=qcow2 size=268435456000 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16 [root@hostname]#
The above command is used to create an image file named myserver-image.qcow2 with the size of 250G and the format is qcow2.
One thought on “How to create qemu image via Command Line”