Created
December 17, 2025 23:23
-
-
Save sharesourcecode/a3dc8d42b9aa8c0304e84ac639373185 to your computer and use it in GitHub Desktop.
Void Linux iso boot on old bios
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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