Skip to content

Multiboot Solutions

This guide covers the best multiboot solutions for modern PCs, with a focus on cross-OS management.

Pros:

  • Native to systemd/Linux systems
  • Excellent NixOS integration
  • Simple configuration files
  • Fast boot times
  • Secure Boot support
  • Works well with efibootmgr from Linux

Cons:

  • Linux-only management
  • No visual interface (by default)
  • Limited theme options

Setup:

Terminal window
# Enable systemd-boot in configuration.nix
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Rebuild
sudo nixos-rebuild switch

Management from Linux:

Terminal window
# List boot entries
bootctl list
# Set default boot
sudo bootctl set-default nixos-default.conf
# Update entries
sudo bootctl update

Pros:

  • OS-agnostic management
  • Beautiful visual interface
  • Auto-detects operating systems
  • Themeable and customizable
  • Works from any OS
  • Network boot support
  • Secure Boot compatible

Cons:

  • Manual installation required
  • More complex setup
  • Larger disk footprint

Setup:

Terminal window
# Install rEFInd
refind-setup
# Or manually install
sudo refind-install
# Configure theme
sudo nano /boot/EFI/refind/refind.conf

Management from Any OS:

  • Edit /boot/EFI/refind/refind.conf from any OS
  • Use rEFInd configuration tools
  • Visual boot menu selection

Pros:

  • Boot multiple ISOs from one USB
  • No need to extract ISOs
  • Supports persistence
  • UEFI and Legacy support
  • Easy to add/remove ISOs

Cons:

  • USB-based only
  • Not for permanent multiboot
  • Slower boot from USB

Setup:

Terminal window
# Create Ventoy USB
sudo ventoy2disk -I /dev/sdX
# Copy ISO files to USB
cp *.iso /media/Ventoy/

Pros:

  • No boot loader needed
  • Fastest boot times
  • Direct OS control
  • Works with any OS

Cons:

  • Manual EFI management
  • No boot menu (single OS)
  • Requires UEFI firmware setup
Feature systemd-boot rEFInd GRUB Ventoy UEFI Direct
Cross-OS Management
Visual Interface
NixOS Integration ⚠️ ⚠️
Theme Support
Network Boot ⚠️
Secure Boot ⚠️
Setup Difficulty Easy Medium Easy Easy Hard
# Use systemd-boot for NixOS
boot.loader.systemd-boot.enable = true;
# Add rEFInd for visual management
# (install manually with refind-setup)
# Primary: systemd-boot
boot.loader.systemd-boot.enable = true;
# Backup: Ventoy USB for testing
environment.systemPackages = [ pkgs.ventoy-full ];
# Emergency: rEFInd for recovery
# (install manually)
  1. rEFInd Configuration:

    • Mount EFI partition: mount \\?\Volume{EFI}\ E:
    • Edit: E:\EFI\refind\refind.conf
    • Reboot to see changes
  2. EasyBCD:

    • Visual boot manager
    • Works with rEFInd entries
    • Can set timeout/default
  3. UEFI Firmware:

    • Reboot → UEFI/BIOS
    • Boot Manager menu
    • Select boot entry
  1. systemd-boot:

    Terminal window
    bootctl list
    sudo bootctl set-default windows.conf
  2. efibootmgr:

    Terminal window
    sudo efibootmgr
    sudo efibootmgr --bootnext 0001
  3. rEFInd Config:

    Terminal window
    sudo nano /boot/EFI/refind/refind.conf
  1. Web Interface (if set up):

    • Access boot management web UI
    • Change boot order remotely
  2. SSH Access:

    Terminal window
    ssh luxus@lea-ip "sudo efibootmgr --bootnext 0001"
Terminal window
# Backup GRUB configuration
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
# Backup EFI entries
sudo efibootmgr > efibootmgr-backup.txt
Terminal window
# Add to configuration.nix
boot.loader.systemd-boot.enable = true;
boot.loader.grub.enable = false;
# Rebuild
sudo nixos-rebuild switch
Terminal window
# Install rEFInd alongside systemd-boot
refind-setup
# This gives you both options
Terminal window
# Reboot and test new boot manager
sudo reboot
# Should see systemd-boot menu or rEFInd interface
  1. UEFI Direct Boot: Fastest, no boot loader overhead
  2. systemd-boot: Minimal overhead, good performance
  3. rEFInd: Slight overhead, but convenient
  4. GRUB: Most overhead, avoid for gaming
  • Primary: systemd-boot (fast, reliable)
  • Secondary: rEFInd (for convenience)
  • Emergency: UEFI direct boot
boot.loader.systemd-boot.extraEntries = {
"windows.conf" = ''
title Windows 11
efi /EFI/Microsoft/Boot/bootmgfw.efi
sortKey windows
'';
"recovery.conf" = ''
title System Recovery
efi /EFI/NixOS/nixos-recovery.efi
sortKey recovery
'';
};
Terminal window
# Install theme
sudo mkdir -p /boot/EFI/refind/themes
sudo git clone https://github.com/EvanPurkhiser/rEFInd-minimal /boot/EFI/refind/themes/minimal
# Enable theme in refind.conf
echo "include themes/minimal/theme.conf" | sudo tee -a /boot/EFI/refind/refind.conf
Terminal window
# Setup PXE boot server
setup-network-boot
# Configure rEFInd for network boot
echo "netboot" | sudo tee -a /boot/EFI/refind/refind.conf
Terminal window
# systemd-boot
bootctl list # List entries
sudo bootctl set-default X # Set default
sudo bootctl update # Update entries
# rEFInd
refind-setup # Install rEFInd
refind-update # Update configuration
sudo nano /boot/EFI/refind/refind.conf # Edit config
# EFI management
sudo efibootmgr # List boot entries
sudo efibootmgr --bootnext X # Set next boot
# Ventoy
ventoy2disk -I /dev/sdX # Create Ventoy USB
  • /boot/loader/entries/ - systemd-boot entries
  • /boot/EFI/refind/refind.conf - rEFInd configuration
  • /boot/EFI/refind/themes/ - rEFInd themes
  • /boot/loader/loader.conf - systemd-boot config

For your NixOS + Windows setup:

  1. Primary: Use systemd-boot (better NixOS integration)
  2. Secondary: Install rEFInd for visual cross-OS management
  3. Testing: Keep Ventoy USB for trying other distros
  4. Emergency: Know UEFI boot manager access

This gives you the best of all worlds: fast NixOS boots, visual management from any OS, and flexibility for testing.