How To Install Linux On VirtualBox

How To Install Linux On VirtualBox

Reading time1 min
#Linux#Virtualization#OpenSource#VirtualBox#Ubuntu#ISO

Installing Linux on VirtualBox: Practical Virtualization for Developers and Engineers

Modern development and operations frequently require safe, isolated Linux environments. Reconfiguring your primary workstation or dual-booting risks downtime—virtualization eliminates that concern. VirtualBox remains the de facto open source hypervisor for this purpose, widely adopted in CI/CD, test orchestration, and dev sandboxes.


Key Requirements

  • Host system: Windows 10/11, macOS (Ventura/Sonoma), or any recent Linux distribution.
  • Oracle VirtualBox ≥ 7.0.0 (older versions lack better graphics and kernel support).
  • Linux ISO: For this guide: Ubuntu 24.04 LTS (release: ubuntu-24.04-desktop-amd64.iso). Any mainstream Linux ISO is acceptable.
  • Hardware: Minimum 8GB RAM and 30GB free disk space recommended for fluid desktop usage.

Installation Workflow

1. Install VirtualBox

Download the latest release from virtualbox.org.
Note (Windows hosts): VirtualBox installer prompts to install network adapters—accept all prompts unless you’re running conflicting VPNs.

On Linux:

sudo apt-get install virtualbox

On macOS (with Homebrew):

brew install --cask virtualbox

During initial setup, changes to networking devices may temporarily interrupt connections. Plan accordingly in a production environment.


2. Obtain the Linux ISO

Store ubuntu-24.04-desktop-amd64.iso in a dedicated directory, e.g., ~/isos.
Validate the SHA256 checksum; mismatched checksums can cause unpredictable install errors later.


3. Provision the Virtual Machine

Open VirtualBox and select New.

  • Name: ubuntu-24.04-vm
  • Type: Linux
  • Version: Ubuntu (64-bit)

Memory (RAM):
Allocate 4096MB (4GB) minimum; 8192MB (8GB) provides optimal UI response for desktop environments.

Disk:

  • Type: VDI (default)
  • Mode: Dynamically allocated
  • Size: 32GB (Set higher if compiling code or running containers inside VM.)

Known issue: Host filesystems with heavy fragmentation may degrade dynamically allocated disk performance over time. For best I/O, consider fixed-size virtual disks (>20GB for most Linux desktops).


4. Attach ISO and Configure Boot

Settings → Storage:

  • Under “Controller: IDE” (sometimes SATA), select the empty optical drive.
  • Attach the ISO via “Choose a disk file...”.

Settings → System → Processor:

  • Increase to 2+ CPUs if the host hardware allows.
  • Enable PAE/NX if available (required for some kernels).

Settings → Display:

  • Video Memory: 128MB (max).
  • Enable 3D Acceleration (improves Ubuntu’s GNOME interface).

5. Network Mode

Default NAT suffices for web/network access.
Bridged Adapter provides LAN IPs (useful for server testing, but triggers DHCP conflicts if not configured properly).


6. Boot VM and OS Installation

Start VM. At the boot prompt (graphics glitch? toggle "Safe Graphics" as Ubuntu recommends).

Standard Ubuntu installer workflow:

  • Language: English (or as required)
  • Installation Type: “Erase disk and install Ubuntu” (only affects the VM’s virtual disk, never your host)
  • Username: engineer/dev account
  • Disk Encryption: Optional; avoid for quick testing due to IO overhead

Reboot:
When prompted, shutdown, remove ISO:

  • Devices → Optical Drives → Remove disk from virtual drive

Failure to de-mount leads to installer looping again at next boot.


7. Post-Install: VirtualBox Guest Additions

Enables clipboard integration, drag-and-drop, display resizing, and folder sharing.

In the running VM:

sudo apt update
sudo apt install build-essential dkms linux-headers-$(uname -r)

VirtualBox menu:
Devices → Insert Guest Additions CD image

Mounts virtual CD; open a terminal inside the guest:

cd /media/$USER/VBox_GAs_*
sudo ./VBoxLinuxAdditions.run

Note: Error Kernel headers not found? Ensure kernel-headers match the running kernel—it’s a common mismatch after dist-upgrades.

Reboot VM.


8. Example: Ubuntu 24.04 on VirtualBox 7.0

VM: ubuntu-24.04-vm
RAM: 8192MB
vCPUs: 4
Disk: 40GB dynamic
Network: Bridged Adapter (eth1)
ISO: ~/isos/ubuntu-24.04-desktop-amd64.iso
Guest Additions: Installed
Timeout: ~9 minutes from launch to login screen

Sample error:
Booting without VT-x (AMD-V/Intel-VT) yields:

This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.

Remediation:
Enable hardware virtualization in BIOS/UEFI.


9. Non-Obvious Tips

  • Snapshots: Before major upgrades or risky installs, create a snapshot (VM → Take Snapshot). Restore points are essential—disk corruption or botched kernel updates remain common failure modes.

  • Shared Folders: For seamless file transfers, use “Shared Folders” with auto-mount enabled (Settings → Shared Folders).
    Permission issues? Add user to vboxsf group:

    sudo usermod -aG vboxsf $USER
    
  • Performance Tuning: On systems with integrated graphics, 3D acceleration can lead to UI artifacts—disable if you notice window tearing or unresponsiveness.


Troubleshooting

IssueLikely CauseResolution
“No 64-bit OS options”VT-x/AMD-V disabledEnable in BIOS/UEFI
Slow Guest PerformanceInsufficient RAM/vCPUsIncrease VM allocation, enable I/O APIC
Host Networking BrokenHost-Only Adapter conflictsUninstall/reinstall VirtualBox network drivers
Drag and Drop failsOutdated Guest AdditionsReinstall Guest Additions inside guest

Summary: Installing Linux on VirtualBox is a standard practice for development, prototyping, and operational validation. With correct host configuration and careful resource allocation, it supports everything from low-impact desktop testing to full-stack CI/CD. For workflows needing elevated graphics or persistent servers, consider fixed disks and bridged networking.
Alternative hypervisors (e.g., KVM, VMware Workstation) exist, but for cross-platform setups and open tooling, VirtualBox remains a go-to.


Further optimization: Automate repeatable VM creation with Vagrant or cloud-init scripts if building at scale.


If you encounter complex deployment scenarios or non-Ubuntu distributions, review distro-specific notes and kernel module compatibilities.
Complete configuration rarely survives across major host upgrades—periodic revalidation is necessary.