BIOS
BIOS is the older version of the startup software built into a computer’s motherboard. It checks the hardware when you power on and then starts the operating system from a disk. Modern computers use UEFI instead, but many people still call the firmware settings screen “the BIOS,” and you will still see BIOS mode in older machines and some virtual machines.
The Basic Input/Output System (BIOS) dates to the 1981 IBM PC. It runs in 16-bit real mode and provides simple services (disk, keyboard, video) through software interrupts.
Legacy BIOS boot:
- POST checks CPU, RAM, and basic devices
- BIOS walks the boot order and reads the first 512-byte sector (the Master Boot Record) of the chosen disk
- It runs the 446 bytes of boot code in the MBR, which loads the next stage of the bootloader (for GRUB,
core.imgstored right after the MBR) - The bootloader loads the kernel
Limits that led to UEFI:
- MBR partition tables top out at 2 TiB and four primary partitions
- Tiny boot code area, so bootloaders must chain stages
- No standard way to verify boot code (no Secure Boot)
- 16-bit runtime with slow, limited drivers
Today: UEFI replaced BIOS on nearly all hardware. Many UEFI boards include a CSM that emulates BIOS for old operating systems, and newer platforms are removing it. VirtualBox defaults to BIOS mode unless “Enable EFI” is checked.
Naming: vendors and users still say “BIOS setup” for the UEFI configuration screen. The technical difference matters when installing, because the OS installs a different bootloader for each mode.
Source: Arch Wiki: Arch boot process
Telling BIOS mode from UEFI mode
# If this directory is missing, the system booted in legacy BIOS mode
$ ls /sys/firmware/efi 2>/dev/null || echo "Legacy BIOS boot"
Legacy BIOS boot
# Partition table type: dos means MBR, gpt means GPT
$ sudo fdisk -l /dev/sda | grep Disklabel
Disklabel type: dos
# Reinstall GRUB for BIOS mode to the disk's MBR (not a partition)
$ sudo grub-install --target=i386-pc /dev/sda You will mostly meet true BIOS mode on older hardware, older VMs, and some virtual appliances. The common failure is a mode mismatch: an OS installed in BIOS mode on a machine later switched to UEFI-only, or the reverse, and nothing boots. Check the mode first with ls /sys/firmware/efi, then fix the bootloader for that mode. For new installs, use UEFI with GPT unless the hardware cannot do it.