Ubuntu/Debian Linux/Unix Howto Setup Install Syslinux Bootable USB with EFI and MBR from Command Line/CLI Terminal

There aren't too many simple guides that show you how to use commands to setup your USB or other drive as a normal bootable drive where you can easily boot custom kernels or whatever OS you would like.

1. Get the tools we need:

We install "syslinux" for MBR and "syslinux-efi" for EFI and "MBR" as we need a tool that embeds the actual MBR into our USB:

sudo apt install syslinux syslinux-efi mbr

2.) Format the Drive as VFAT/FAT:

This assumes your USB is partitioned and is partition 1 on drive sdj /dev/sdj1

mkfs.vat /dev/sdj1

#you may need to mark the partition as bootable in fdisk by hitting the "b" flag

3.) Install MBR onto the drive

Install the MBR on /dev/sdj

sudo install-mbr /dev/sdj

Now install syslinux to the partition

sudo syslinux -i /dev/sdj1

Download syslinux 6.04

https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/syslinux-6.04-pre1.zip

Extract it.

Install the EFI syslinux:

Mount it first:

mount /dev/sdj1 /mnt/sdj1

cd /mnt/sdj1

mkdir -p EFI/BOOT

#copy the EFI32 and EFI64 binaries to EFI/BOOT directory on your USB

BOOTIA32.efi BOOTX64.efi ldlinux.e32 ldlinux.e64

#file locations from .zip file linked above

./efi64/com32/elflink/ldlinux/ldlinux.e64

./efi64/efi/syslinux.efi #rename this to BOOTX64.efi

 

4.) Create your syslinux.cfg:



add this to syslinux.cfg in the root:

 DEFAULT realtechtalk
  SAY Now booting the kernel from realtechtalk.com SYSLINUX...
 LABEL realtechtalk
  KERNEL kernelfs
  APPEND initrd=initrd.img

 #you can  add extra kernel flags after initrd=initrd.img by adding a specify a flag. eg initrd=initrd.img ro quiet nosplash

More from Syslinux Documentation

Congrats you should now have an MBR and EFI compatible Bootable USB!


Tags:

ubuntu, debian, linux, unix, howto, install, syslinux, bootable, usb, efi, mbr, cli, terminalthere, aren, guides, commands, custom, kernels, os, quot, embeds, sudo, apt, format, vfat, assumes, partitioned, partition, sdj, dev, mkfs, vat, cfg, default, booting, kernel, realtechtalk, label, kernelfs, append, targetdev, nvme, initrd, initramfs, tar, gz,

Latest Articles

  • How To Use Camera Webcam in Docker for OBS Studio etc...
  • Computer Server Won't Post Boot Or Enter BIOS Setup After Installing RAID SAS or GPU Card etc..
  • How To Test PHP Scripts from CLI with GET variables/query string
  • apt-cache how to see all available versions of a package in Debian Ubuntu Mint
  • Virtualbox VBox Guest-utils drag and drop files stops working with Windows VMs
  • How To Remove Ubuntu Netplan and Go Back to /etc/network/interfaces
  • How To Force Flash an AMD Instinct GPU To Another Model Using Debian Ubuntu Mint Linux
  • How To compile ollama from source to use unsupported AMD GPU with rocm in Ubuntu Debian
  • QEMU KVM Virtio GPU Windows Cannot Select 1080P
  • Linux Gnome Desktop Ubuntu Mint Debian Gets Slower After Weeks
  • Firefox How to Save Full Page As Screenshot/PDF
  • Nvidia Datacenter Driver Tesla Slow nvidia-smi response and high utilization with 0 usage
  • ffmpeg how to normalize / increase the volume of your audio
  • kdenlive audio blips pops cracks artifacts solution fix
  • haproxy / nginx certbot SSL issues
  • nginx how to see the real IP when behind a CDN
  • Docker how to find real container child process ID
  • Alibaba Aliyun how to reset password solution 'Setup does not meet the requirements, please resetting'
  • RTL88X Series 80Mhz hostapd mode for Linux Debian Kali
  • How To Deploy Your Own Mastodon Server in Docker