Skip to content

Instantly share code, notes, and snippets.

@sharesourcecode
Created December 17, 2025 23:23
Show Gist options
  • Select an option

  • Save sharesourcecode/a3dc8d42b9aa8c0304e84ac639373185 to your computer and use it in GitHub Desktop.

Select an option

Save sharesourcecode/a3dc8d42b9aa8c0304e84ac639373185 to your computer and use it in GitHub Desktop.
Void Linux iso boot on old bios
If you're trying to boot the official Void Linux ISO on an old PC and it either doesn't boot or gets stuck on a black screen, here's what worked for me:
✅ 1. Problems you may see
USB created with dd does not boot on old BIOS
If it boots, it may hang after “Welcome to Void…” on a black screen with a blinking cursor
No TTYs (Ctrl+Alt+F2) work
GPU is something old like Intel i915
✅ 2. Rebuild the ISO with ISOLINUX (legacy BIOS support)
🔹 Step 1: Create working directories
```bash
sudo mkdir -p ~/iso/original ~/iso/custom
```
🔹 Step 2: Mount the original ISO
```bash
sudo mount -o loop ~/Downloads/void-live-x86_64-20250202-xfce.iso ~/iso/original
```
🔹 Step 3: Copy ISO contents
```bash
sudo cp -rT ~/iso/original ~/iso/custom
sudo umount ~/iso/original
```
✅ 3. Add ISOLINUX bootloader to the ISO
Step 3.1: Create the ISOLINUX directory structure
```bash
sudo mkdir -p ~/iso/custom/boot/isolinux
```
Step 3.2: Copy ISOLINUX files
Paths may vary slightly by distro; on many Debian/Ubuntu-like systems:
```bash
sudo cp /usr/lib/ISOLINUX/isolinux.bin ~/iso/custom/boot/isolinux/
sudo cp /usr/lib/syslinux/modules/bios/* ~/iso/custom/boot/isolinux/
```
(If your distro uses different paths, adjust accordingly.)
✅ 4. Create isolinux.cfg (boot menu)
Create the config file:
```bash
sudo nano ~/iso/custom/boot/isolinux/isolinux.cfg
```
Basic example content:
```Cfg
UI menu.c32
PROMPT 0
MENU TITLE Void Linux Boot Menu
TIMEOUT 50
DEFAULT linux
LABEL linux
MENU LABEL Void Linux Live (default)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd root=live:CDLABEL=VOID_LIVE rd.live.image
```
✅ 5. Add VESA-safe graphics options (for Intel i915)
Now edit the same file to add VESA and nomodeset.
Find the LABEL linux entry and change the APPEND line to:
```Cfg
LABEL linux
MENU LABEL Void Linux Live (default, VESA)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd root=live:CDLABEL=VOID_LIVE rd.live.image nomodeset xforcevesa
```
This forces:
nomodeset → disables kernel modesetting
xforcevesa → forces use of the generic VESA driver
✅ 6. Rebuild the ISO with xorriso (BIOS-hybrid)
Install needed tools (example for Debian/Ubuntu):
```bash
sudo apt install xorriso isolinux syslinux-utils
```
Then rebuild:
```bash
cd ~/iso/custom
sudo xorriso -as mkisofs \
-o ../void-live-vesa.iso \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-c boot/isolinux/boot.cat \
-b boot/isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-V "VOID_LIVE" \
.
```
Result: ~/iso/void-live-vesa.iso
✅ 7. Write the new ISO to a USB stick (legacy BIOS-ready)
⚠️ Replace /dev/sdX with your actual USB device (for example, /dev/sdb). This will erase it.
Wipe the beginning (optional but recommended):
```bash
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=10
```
Write the ISO:
```bash
sudo dd if=~/iso/void-live-vesa.iso of=/dev/sdX bs=4M status=progress oflag=sync
sync
sudo eject /dev/sdX
```
✅ 8. Boot on the old PC
Plug the USB in the old machine
Set BIOS to boot from USB
It should now:
Be detected by BIOS
Boot into Void Linux
Use VESA graphics instead of crashing with Intel i915
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment