I've been a fan of virtualization technology for many years, using many different products along the way. Virtualization has advantages for both the data center and the desktop: data centers use it to increase server hardware utilization, while desktop users use it for modeling, testing, and development work. One operating system running on top of a different one on the same hardware, all thanks to the concept of a virtual machine (VM).
I recently upgraded my laptop from Fedora 29 Workstation Edition Linux to version 30. I noticed GNOME Boxes, simply titled Boxes, in my application menu. The GNOME Project—whose members are the creators and maintainers of the GNOME Desktop Environment—describes GNOME Boxes as: "A simple GNOME application to view, access, and manage remote and virtual systems." Of course, I had to check this tool out.
This two part series article will cover two of the main features of Boxes. While writing this article, I used Boxes version 188.8.131.52-stable. Since the GNOME Boxes project refers to a VM as a "box," I'll use that terminology.
Let's get right to it and create a virtual machine using GNOME Boxes.
Create a box
When you launch Boxes, it opens to its main window:
Start using Boxes by clicking the New button at the top-left corner of the application. This opens a dialog titled Create a Box. The first time you run Boxes, you'll see the following screen. Click Continue.
If you've run Boxes before, the following window opens.
You see several options. You can download an operating system (OS), connect to a remote box, or select a file.
The OS list at the top of the screen above is the default. The list could be different if you have any OS ISO files in your Downloads directory. This is because Boxes detects ISO files and creates the OS list accordingly. For example, if I have the ISO file for FreeBSD 12 (FreeBSD-12.0-RELEASE-amd64-disc1.iso) in Downloads, it will be included on the list, as shown below.
If you click Download an OS, you can choose an OS from a larger list with many options. The ISO file for the OS that you select will be saved to your Downloads directory.
Create a box with Fedora 30
I chose to create my first box with Fedora 30 Workstation Edition. The OS isn't yet available in Boxes' default OS list, so I saved the Fedora 30 Workstation Live CD ISO file to my Downloads directory. (If you would like to install Fedora 30 Workstation, jump to the end of this article for download instructions.)
[alan@workstation Downloads]$ ls -l -rw-r--r-- 1 alan alan 1934753792 May 2 20:08 Fedora-Workstation-Live-x86_64-30-1.2.iso -rw-r--r-- 1 alan alan 892467200 May 7 17:00 FreeBSD-12.0-RELEASE-amd64-disc1.iso
Now when Boxes launches, the OS list includes Fedora 30. Click Fedora-Workstation to begin.
The next screen, called Review, shows the Memory and Disk properties for the new box you created.
Clicking Customize will allow you to adjust the Memory and Disk sizes.
To move on, click Create on the top-right of the window. The new box will be created and booted.
Once the Fedora Live CD boots, you can complete the installation as you usually would on bare metal.
The final thing I did was to rename the box in the properties of the box.
I'm impressed. GNOME Boxes is great for users who want to quickly deploy various operating systems and software for development, experimenting, and learning tasks with minimal effort. This is as GNOME intended.
GNOME Boxes is comparatively simple. A more advanced configuration of hardware, network devices, and CPU features would require a tool like virt-manager. Your usage needs will determine whether you might need that level of customization.
In Part 2, I'll cover the remote access capabilities of Boxes.
Download Fedora 30 Workstation
To download Fedora 30 Workstation, browse to the Fedora website. On this page, put the mouse cursor over WORKSTATION on the left-hand side, and click Download Now.
The next screen provides the link to download the Fedora 30 Workstation 64-bit ISO file, which is 1.9GB. I saved the file Fedora-Workstation-Live-x86_64-30-1.2.iso to my Downloads directory.