Skip to content

Operating System Installation

For deep learning workstations, you have three main options:

Best for: Most users, especially those new to deep learning

Pros:

  • Best NVIDIA driver support
  • Largest community for ML/DL
  • Most tutorials assume Ubuntu
  • Native Docker support
  • Package managers optimized for ML tools

Cons:

  • Learning curve if new to Linux
  • Some commercial software unavailable
  • Gaming performance worse than Windows

Recommended version: Ubuntu 22.04 LTS or 24.04 LTS

Best for: Users who need Windows software or prefer Windows workflow

Pros:

  • Familiar interface
  • Better for gaming/general use
  • WSL2 provides Linux compatibility
  • Easy NVIDIA driver installation

Cons:

  • WSL2 has performance overhead (5-15%)
  • Some ML tools Linux-only
  • More resource overhead
  • Updates can interrupt training

Best for: Dual-use systems (work + personal)

Best for: Users who want both

Pros:

  • Native performance on both OSes
  • Use Windows for gaming, Ubuntu for training
  • No VM/WSL overhead

Cons:

  • More complex setup
  • Need to reboot to switch
  • Requires partitioning

Visit ubuntu.com/download and download:

  • Ubuntu 22.04.3 LTS (most stable)
  • Ubuntu 24.04 LTS (latest, if you want newer packages)

On Windows:

# Download Rufus from rufus.ie
# Select your USB drive
# Select Ubuntu ISO
# Click Start

On Linux:

# Find your USB device
lsblk

# Write ISO to USB (replace sdX with your device)
sudo dd if=ubuntu-22.04.3-desktop-amd64.iso of=/dev/sdX bs=4M status=progress
sudo sync
  1. Insert USB drive
  2. Restart computer
  3. Press Boot Menu key (usually F12, F11, or Esc)
  4. Select USB drive

Choose Installation Type:

○ Try Ubuntu (test without installing)
● Install Ubuntu (proceed with installation)

Keyboard Layout:

  • Select your keyboard layout
  • Test in the text box to verify

Updates and Other Software:

☑ Normal installation
☑ Download updates while installing Ubuntu
☑ Install third-party software for graphics and Wi-Fi hardware

Installation Type:

For ML-only system:

● Erase disk and install Ubuntu
  (Uses entire disk - simplest option)

For dual boot with Windows:

● Install Ubuntu alongside Windows
  (Follow partition wizard)

Manual partitioning (advanced users):

  • / (root): 50-100GB (ext4)
  • /home: Remaining space (ext4)
  • swap: 16-32GB (or equal to RAM)
  • Optional: Separate /data partition for datasets

Update system:

sudo apt update
sudo apt upgrade -y

Install essential tools:

sudo apt install -y \
  build-essential \
  git \
  curl \
  wget \
  vim \
  tmux \
  htop \
  net-tools

Minimum (Ubuntu):

  • /: 50GB
  • /home: 100GB+
  • swap: Equal to RAM

Recommended:

  • /: 100GB (OS and software)
  • /home: 200GB+ (configs, small datasets)
  • /data: Remaining (large datasets)
  • swap: 16-32GB

Why separate /data?

  • Easy to reinstall OS without losing datasets
  • Can use different filesystem (ext4 vs xfs)
  • Better organization

For single NVMe:

/dev/nvme0n1p1  512MB   EFI
/dev/nvme0n1p2  100GB   / (root)
/dev/nvme0n1p3  Remaining  /home

For multiple drives:

NVMe (fast):    OS and code
SATA SSD:       Datasets
HDD:            Archives and backups

Install nvidia-prime for laptop GPUs:

sudo apt install nvidia-prime
sudo prime-select nvidia

Disable unnecessary services:

# Disable Bluetooth (if not needed)
sudo systemctl disable bluetooth

# Disable CUPS (printing)
sudo systemctl disable cups

Install minimal desktop (optional):

# For server-like setup with remote access
sudo apt install ubuntu-server
# Then SSH in from another machine

Disable Windows Search indexing on data drives:

Right-click drive → Properties → Uncheck "Allow files on this drive to have contents indexed"

Set power plan:

Control Panel → Power Options → High Performance

Disable Game Bar:

Settings → Gaming → Game Bar → Off
# Check OS version
lsb_release -a

# Check kernel version
uname -r

# Check disk space
df -h

# Check memory
free -h

# List PCI devices (GPUs should appear)
lspci | grep -i nvidia
  • Access BIOS boot menu
  • Set proper boot priority
# Update GRUB
sudo update-grub

# Should detect Windows
  • Usually a driver issue
  • Boot to recovery mode
  • Reinstall display drivers

After OS installation:

  1. Install NVIDIA drivers and CUDA
  2. Set up Python environment
  3. Configure remote access (see OS documentation)