How to Install and Use QEMU on Debian 9

Chưa phân loại
QEMU is a fast processor emulation technology. QEMU does not depend on any hardware features. It does not need any kernel patches to run. So it is safe and easy to run.

QEMU does full system emulation. So, QEMU can run programs written for different architecture on your Debian 9 machine. For example, programs written for ARM based CPUs can be run on x86 CPUs with the help of QEMU.

In this article, I will show you how to install and use QEMU on Debian 9 Stretch. Let’s get started.


QEMU can be combined with KVM to use hardware virtualization features of your CPU. QEMU + KVM will get you almost near native hardware performance.

Hardware virtualization feature is disabled by default on AMD and Intel CPU’s. So you will have to enable them manually if you do wish to use it.

I recommend you enable hardware virtualization. If you don’t do so, QEMU will be very slow.

Enabling Hardware Virtualization:

If you have Intel CPU, then all you have to do is, enable VT-x or VT-d from the BIOS of your motherboard.

For AMD CPU, you have to enable AMD-v from the BIOS of your motherboard.

If your CPU supports hardware virtualization, and you enabled it from the BIOS of your computer, then you can check whether Virtualization is enabled from your Debian 9 Stretch machine with the following command:

$ lscpu | grep Virt

As you can see, hardware virtualization is enabled.

Installing QEMU and KVM:

QEMU is not installed by default on Debian 9 Stretch. But it is available in the official package repository of Debian 9 Stretch. So you can easily install it.

First, update the APT package repository cache with the following command:

$ sudo apt update

The APT package repository cache should be updated.

Now install QEMU with the following command:

$ sudo apt install qemu qemu-kvm

Now press y and then press <Enter> to continue.

KVM and QEMU should be installed.

Using QEMU and KVM:

In this section, I will show you how to install Alpine Linux on a QEMU + KVM virtual machine.

Creating a VM Directory:

First, create a directory where all your VM data will be stored. I will call this VM directory from now on.

Create a VM directory with the following command:

$ mkdir -p ~/qemu/alpine

Now navigate to the VM directory with the following command:

$ cd ~/qemu/alpine

Downloading Alpine Linux ISO Image:

Now download the Alpine Linux Standard ISO image from into your VM directory.

At the time of this writing, the ISO image is alpine-standard-3.8.0-x86_64.iso

Creating QEMU Image:

Now you have to create a QEMU image. It is a virtual hard drive where you will install Alpine Linux. QEMU has its own command to create a QEMU image.

I am going to create a QEMU image alpine.img and allocate 8 GB of disk space to it with the following command:

$ qemu-img create -f qcow2 alpine.img8G

NOTE: You can name the image something other than alpine.img and set the disk size to something other than 8G (8 Giga Byte).

As you can see, alpine.img is created.

Starting the Alpine Installer:

Now you can start the QEMU emulation with KVM and install Alpine Linux on the image alpine.img.

I am going to use a shell script to start the installation as I believe it makes the command easier to understand and modify later.

Now run the following command to create

$ nano

And type in the following lines to it:

Now save the file with <Ctrl> + x and then press y and then press <Enter>.

NOTE: Here, -m 512 means 512 MB of memory (RAM) will be allocated to the virtual machine.

Now make the script executable with the following command:

$ chmod +x

Now start the install script with:

$ ./

As you can see, the Alpine installer has booted.

Now type in root and press <Enter>. You should be logged in.

Now start the installer with the following command:

# setup-alpine

Now type in your keyboard layout (I picked us) and press <Enter>.

Select variant (I picked us) and press <Enter>.

Now type in your hostname and press <Enter>.

Now select your network interface. The default is eth0, which is correct. So I pressed <Enter> to select the default.

Now type in the IP address for your network interface. I will choose the default, which is dhcp assigned IP address. Once you’re done, press <Enter>.

I selected dhcp, so I pressed <Enter>.

Now type in your new root password and press <Enter>.

Now re-type the password and press <Enter>.

Now it’s time to select a timezone. The default is UTC, but you can list other supported timezones by pressing ? and <Enter>. I am selecting the default.

Press <Enter>.

Press <Enter>.

Press <Enter>.

Type in sda and press <Enter>.

Type in sys and press <Enter>.

Now type in y and press <Enter>.

Alpine is being installed…

Alpine Linux is installed.

Booting Alpine from alpine.img QEMU Image:

Now create another shell script in the VM directory with the following command:

$ nano

Now add the following lines to it and save it.

Make the script executable as follows:

$ chmod +x

Finally, you can boot into your newly installed Alpine OS with QEMU KVM as follows:

$ ./

As you can see, Alpine Linux booted from the QEMU image.

Emulating Other Architectures with QEMU:

QEMU supports a lot of CPU architectures as you can see from the screenshot below.

I used the kvm command in the earlier examples. It is actually a hardware virtualization enabled qemu-system-x86_64.

You can replace all the kvm commands with qemu-system-x86_64 command in the earlier examples and it would still work. But it will run slowly as it will not use hardware virtualization.

So that’s how you install and use QEMU on Debian 9 Stretch. Thanks for reading this article.

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Enable SSH on Debian 10

You can use SSH to access to your Debian 10 server or desktop remotely. You can install new software packages, configure...

Python NumPy Tutorial

In this lesson on Python NumPy library, we will look at how this library allows us to manage powerful N-dimensional array...

Git Compare Two Branches

Almost all version control systems have branching options. But Git is known for its fast branching capabilities. Git branches...
Bài Viết

Bài Viết Mới Cập Nhật

Cách gắn set proxy cho điện thoại android, oppo, giả lập android, Ldplayer Bằng Proxydroid

Mua Proxy Socks5 VN Chơi Game Gia Lập Tăng Cường Trải Nghiệm Chơi Game

Mua Proxy Mỹ, Us Nuôi Tài Khoản Etsy, eBay Tìm Hiểu Về Mua Proxy Mỹ tại

Mua Proxy Game – Giải pháp tuyệt vời cho việc chơi game trên mạng mà không bị giới hạn về vị trí địa lý

Sử dụng Proxy để Quản Lý Tài Khoản Quảng Cáo Ads Một Cách An Toàn