Linux Virtual Machine Image
Introduction
This virtual machine image is configured with nearly all the software we provide on the open lab machines. Some of the software we have, such as VMWare and the JetBrains software suite, is proprietary software that we can only legally install on BYU-owned computers. However, this machine image does include a number of useful development tools, such as Android Studio, GCC, Java, Python, Eclipse, and Atom. This is designed to run on your personal computer in Oracle VirtualBox.
If you already know how to import and use a VM, you can download it here. (Note that this file is about 10 GB, so depending on your connection speed, it could take several hours to download.) If you’re not familiar with this process, continue reading and we’ll walk you through it.
OS: Xubuntu 18.04 LTS 64-bit
Hostname: labimage
Username: student
Password: student
Allocated resources:
CPU: 2 cores / threads
-
-
Storage: 60
GB virtual hard disk (dynamically allocated, should be about 20
GB after importing the VM)
Recommended specs
This virtual machine will run on just about any computer, however, on low-end computers it will perform poorly, as it will basically need to run two computers at the same time. For optimal performance, we recommend the following minimum specs:
A Word on Linux Hosts
The intent of the Linux VM image is to give the user a computing environment that aligns as closely as possible to the computing environment on any lab machine. This includes matching not only the development and other software tools available on the lab machines, but also the kernel and configuration. For some classes (e.g., CS 224 and CS 324), duplicating this environment is critical. This includes not only the kernel itself (i.e., Linux instead of MacOS, FreeBSD, or even Windows Subsystem for Linux), but also the kernel version (i.e., Linux 4.15 vs. Linux 3.13). For other classes, access to the software is what matters most. In this latter case, one option more efficient than running a VM might be to install the free/open source software on your Linux host instead.
Free Software
Installation Instructions
Check for compatibility
Using VirtualBox (recommended)
-
At the top of the window, click “New” (we won’t actually create a new VM, but this is an easy way to test for virtualization support)
Open the “Version” drop-down menu and look at the options available:
If you see both 32- and 64-bit options, then virtualization is already enabled - continue to the
next section in these instructions

If you only see 32-bit options, then virtualization is not enabled - go to the
Hardware Virtualization page for specific instructions

Using VMWare (requires you to provide a license)
These instructions are based on VMWare Player and may be slightly different for other VMware products
Download, install, and run VMWare (you can get possibly get a license from
BYU)
Click “Create new Virtual Machine”
If it asks about the “Virtual Machine Configuration”, just accept the default and click Next
Select “I will install the
OS later” and click Next
Open the “Version” drop-down menu and look at the options available:
If you see options with “x64” at the end, then virtualization is already enabled - continue to the
next section in these instructions
If you do not see any “x64” options, then hardware virtualization needs to be enabled - go to the
Hardware Virtualization page for specific instructions
Import the VM
Using VirtualBox (recommended)
The virtual machine file is about 10
GB, so depending on your connection speed, it could take several hours to download.
Download the .ova file
here
Open VirtualBox and select File > Import Appliance
Locate and select the .ova file you downloaded in Step 1
Review the settings and change them as needed
Definitely check the box that says “Reinitialize MAC address of all network cards”
Feel free to change the name of the VM to whatever you’d like to see when you launch it
If your computer only has two processing threads, consider decreasing the CPU value to 1. If you have a lot of processing threads, you can increase this number
If your computer has less than 8
GB of RAM, consider decreasing the RAM value to no more than half your total system RAM. If you have a lot of RAM, you can increase this number
The last line is the location of your virtual machine files, including the virtual hard disk. Note that these files should be about 20
GB to start with, but may grow up to 60
GB. Choose a location with plenty of free space
Leave the other settings alone unless you know what you’re doing
Click “Import” (and wait for a few minutes while it imports)
You can now start your new virtual machine from the main window in VirtualBox
This virtual machine has the VirtualBox Guest Additions preinstalled, which provides useful functionality like dynamic resizing of the virtual display and shared folders between the host and guest. However, updating the virtual machine’s kernel may cause issues with this software. If this happens, try running this command:
sudo apt install virtualbox-ose-guest-utils virtualbox-ose-guest-x11 virtualbox-ose-guest-dkms
Using VMWare (requires you to provide a license)
These instructions are based on VMWare Player and may be slightly different for other VMware products
The virtual machine file is about 10
GB, so depending on your connection speed, it could take several hours to download.
Download the .ova file
here
Open VMWare and select “Open a Virtual Machine”
Locate and select the .ova file you downloaded in Step 1
Choose the name and location for the VM.
Note that these virtual machine files should be about 20
GB to start with, but may grow up to 60
GB. Choose a location with plenty of free space
Click “Import” (and wait for a few minutes while it imports)
The import may fail due to some compliance checks. Click retry and it will make those checks less strict. In our testing, it worked after retrying once
Once the import is finished, change some settings if needed
If your computer only has two processing threads, consider decreasing the Processor Cores value to 1. If you have a lot of processing threads, you can increase this number
If your computer has less than 8
GB of RAM, consider decreasing the Memory value to no more than half your total system RAM. If you have a lot of RAM, you can increase this number
You can now start your virtual machine from the main window
Since we built this image in VirtualBox, we have the guest software for it pre-installed in the image. VMWare has its own software to allow for resizing the virtual display and sharing files between the host and guest. Follow
these instructions to install VMware tools.
VMware tools will need to be reinstalled any time the virtual machine’s kernel is updated
Using the VM
After downloading and setting up the VM, we highly recommend running package updates. This requires two commands - one to update the package lists, the second to download and install the latest version of the packages:
sudo apt update
sudo apt upgrade
Desktop environments
As with the lab computers, you can select a desktop environment to use when you’re logging in, by clicking the button to the right of the username. However, unlike the lab computers, it will default to whatever desktop environment you used last. It has all the desktop environments present on the lab computers, with one addition. We used to have KDE Plasma as the default for the lab computers, but it did not play nicely with how we set up our lab computers. But since this virtual machine image doesn’t need to interact with any of our servers, we have included Plasma on this virtual machine image. You can use it if you like, although it might not be as stable as the other options.
And, of course, since this image is just running on your own computer, you can feel free to tweak it and customize it to your heart’s content, including changing, removing, or adding desktop environments.
Exiting i3
If you’re not careful, you might accidentally log in using i3, a minimal desktop environment without a typical GUI layout. If you want to get out and switch to a more normal environment, just press Alt+Shift+E and click “Yes, exit i3.”
Accessing network files
For security reasons, the virtual machine cannot mount our network drives using our standard method. However, we do have another way to mount network storage. Here’s how you can set it up:
Open a terminal window
In most desktop environments, you can do this by pressing Ctrl+Alt+T (note that since VirtualBox usually uses Right Ctrl as the “host key,” you’ll need to use the left Ctrl key for this)
Choose a location to mount your files in
An easy way to do this is just create a folder in your home folder
To do this, run this command in your home folder (~):
mkdir [folder_name]
Replace [folder_name] with whatever you want the folder to be called
Run this command:
sshfs [username]@schizo.cs.byu.edu: [folder_name]
Replace [username] and [folder_name] with your CS username and the name of the folder you chose in step 3
If it asks to trust the certificate for the host, tell it “yes”
Type in your CS password
If it’s successful, then your CS network files will show up in the folder you chose in Step 3
If it failed, see if your issue is listed down below:
missing host
Make sure you remembered to type a colon directly after “schizo.cs.byu.edu”
read: connection reset by peer
Make sure you spelled “schizo.cs.byu.edu” and your username/password correctly
fuse: bad mount point
The folder you specified as the mount point does not exist, create the folder and try the command again (see Step 2)
Other issues
If your issue isn’t listed above or the listed steps don’t work, there may be an issue with your account or our network. Contact us at support.cs.byu.edu
Sharing files with your host computer
VirtualBox has the ability to share files between the host and guest computer. To set this up, follow these steps:
Share folder from host (first time only)
Open Shared Folders settings
If the VM is running: Devices menu > Shared Folders
If the VM is not running: Settings button > Shared Folders
On the right, click the blue folder with a green plus sign
Select the location of the folder you would like to share from your host computer
You can type the location in the box, or click the down-arrow, select “Other…,” and locate the folder
Type a name for the folder to be shared as and make a note of this name
This name can be as generic as you’d like (perhaps just “share”)
Select the settings you want
Make permanent will make it so that the folder is available every time you start up the VM
Auto-mount may or may not work, but it’s beyond the scope of what we’ve tested
Click OK out of the windows you opened
Start your VM and choose a location to mount your files in
An easy way to do this is just create a folder in your home folder
To do this, run this command in your home folder (~):
mkdir [folder_name]
Replace [folder_name] with whatever you want the folder to be called
Mount folder in guest (every time you start the VM)
Open a terminal window
In most desktop environments, you can do this by pressing Ctrl+Alt+T (note that since VirtualBox usually uses Right Ctrl as the host key, you’ll need to use the left Ctrl key for this)
Run this command:
sudo mount -t vboxsf [share_name] [folder_name] -o uid=student,gid=student
Replace [share_name] with the name you chose in Step 4 of the previous section and [folder_name] with the folder you chose in Step 2
If it asks for your sudo password, type in your VM password (by default this is just “student”)
If it’s successful, then your shared files will show up in the folder you chose in Step 2
If it failed, make sure you typed the correct folder names in the command
It could also be missing the VirtualBox additions packages. Try running this command:
sudo apt install virtualbox-ose-guest-utils virtualbox-ose-guest-x11 virtualbox-ose-guest-dkms
Other issues
You can reference our Linux documentation page for assistance using Linux. The BYU Linux Club is also a helpful resource. If you have a specific issue that you need help with, your best bet is to search it online. There is a thriving community of Linux users on various online forums. We’ll update this section as we find common tasks or problems that you may need help with.