Operating System Installation
Choosing Your Operating System
Section titled “Choosing Your Operating System”For deep learning workstations, you have three main options:
Ubuntu Linux (Recommended)
Section titled “Ubuntu Linux (Recommended)”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
Windows 11
Section titled “Windows 11”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)
Dual Boot
Section titled “Dual Boot”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
Installation Guide
Section titled “Installation Guide”Ubuntu 22.04 LTS Installation
Section titled “Ubuntu 22.04 LTS Installation”1. Download Ubuntu
Section titled “1. Download Ubuntu”Visit ubuntu.com/download and download:
- Ubuntu 22.04.3 LTS (most stable)
- Ubuntu 24.04 LTS (latest, if you want newer packages)
2. Create Bootable USB
Section titled “2. Create Bootable USB”On Windows:
# Download Rufus from rufus.ie
# Select your USB drive
# Select Ubuntu ISO
# Click StartOn 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 sync3. Boot from USB
Section titled “3. Boot from USB”- Insert USB drive
- Restart computer
- Press Boot Menu key (usually
F12,F11, orEsc) - Select USB drive
4. Installation Process
Section titled “4. Installation Process”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 hardwareInstallation 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
/datapartition for datasets
5. Post-Installation
Section titled “5. Post-Installation”Update system:
sudo apt update
sudo apt upgrade -yInstall essential tools:
sudo apt install -y \
build-essential \
git \
curl \
wget \
vim \
tmux \
htop \
net-toolsWindows 11 Installation
Section titled “Windows 11 Installation”1. Download Windows 11
Section titled “1. Download Windows 11”- Visit microsoft.com/software-download/windows11
- Download Media Creation Tool
- Create bootable USB
2. Installation
Section titled “2. Installation”- Boot from USB (press
F12during startup) - Follow Windows installation wizard
- Choose “Custom: Install Windows only”
- Select drive/partition
- Complete setup
3. Post-Installation
Section titled “3. Post-Installation”Windows Update:
Settings → Windows Update → Check for updatesInstall WSL2 for Linux tools:
# Open PowerShell as Administrator
wsl --install -d Ubuntu-22.04
# Restart computer when promptedEnable Virtualization in BIOS (if not already):
- Required for WSL2
- See BIOS Setup Guide
Optional: Install Windows Terminal:
# From Microsoft Store or:
winget install Microsoft.WindowsTerminalDual Boot Setup
Section titled “Dual Boot Setup”Prerequisites
Section titled “Prerequisites”- Existing Windows installation
- At least 100GB free space
- Backup of important data
1. Prepare Windows
Section titled “1. Prepare Windows”Create free space:
- Open Disk Management (
Win+X→ Disk Management) - Right-click C: drive
- Select “Shrink Volume”
- Shrink by at least 100GB (recommend 200GB+)
Disable Fast Startup:
Control Panel → Power Options → Choose what power buttons do
→ Uncheck "Turn on fast startup"Disable Secure Boot:
- See BIOS Setup Guide
- Required for most Linux distros
2. Install Ubuntu
Section titled “2. Install Ubuntu”Follow Ubuntu installation steps, but:
At “Installation Type”:
● Install Ubuntu alongside Windows Boot ManagerOr manually partition:
/boot/efi: 512MB (use existing EFI partition)/: 50GB ext4/home: Remaining space ext4swap: 16-32GB
3. Boot Menu
Section titled “3. Boot Menu”GRUB will now show:
Ubuntu
Advanced options for Ubuntu
Windows Boot ManagerChange default:
# Edit GRUB config
sudo nano /etc/default/grub
# Change:
GRUB_DEFAULT=0 # 0=Ubuntu, 2=Windows (usually)
GRUB_TIMEOUT=5 # Seconds to show menu
# Update GRUB
sudo update-grubPartitioning Recommendations
Section titled “Partitioning Recommendations”For ML Workloads
Section titled “For ML Workloads”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
Storage Configuration
Section titled “Storage Configuration”For single NVMe:
/dev/nvme0n1p1 512MB EFI
/dev/nvme0n1p2 100GB / (root)
/dev/nvme0n1p3 Remaining /homeFor multiple drives:
NVMe (fast): OS and code
SATA SSD: Datasets
HDD: Archives and backupsPerformance Optimizations
Section titled “Performance Optimizations”Ubuntu Tweaks
Section titled “Ubuntu Tweaks”Install nvidia-prime for laptop GPUs:
sudo apt install nvidia-prime
sudo prime-select nvidiaDisable unnecessary services:
# Disable Bluetooth (if not needed)
sudo systemctl disable bluetooth
# Disable CUPS (printing)
sudo systemctl disable cupsInstall minimal desktop (optional):
# For server-like setup with remote access
sudo apt install ubuntu-server
# Then SSH in from another machineWindows Tweaks
Section titled “Windows Tweaks”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 PerformanceDisable Game Bar:
Settings → Gaming → Game Bar → OffVerification
Section titled “Verification”Check Installation Success
Section titled “Check Installation Success”# 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# Check OS version
winver
# Check system info
systeminfo
# Check disk space
Get-PSDrive
# Check WSL2 (if installed)
wsl --list --verboseCommon Issues
Section titled “Common Issues”GPU Not Detected
Section titled “GPU Not Detected”- Install NVIDIA drivers (see Driver Installation)
- Check BIOS PCIe settings
Boot Order Issues
Section titled “Boot Order Issues”- Access BIOS boot menu
- Set proper boot priority
Dual Boot - Windows Missing
Section titled “Dual Boot - Windows Missing”# Update GRUB
sudo update-grub
# Should detect WindowsUbuntu Stuck at Login Loop
Section titled “Ubuntu Stuck at Login Loop”- Usually a driver issue
- Boot to recovery mode
- Reinstall display drivers
Next Steps
Section titled “Next Steps”After OS installation:
- Install NVIDIA drivers and CUDA
- Set up Python environment
- Configure remote access (see OS documentation)