BIOS Update Guide
Motherboard: MSI MAG X870E TOMAHAWK WIFI Bootloaders installed:
- GRUB for Arch Linux
- Windows Boot Manager for Windows 11
This is important because after updating the BIOS, the GRUB boot entry was removed from NVRAM (the Arch installation itself remained untouched). A fix for this issue is included at the end of the document. Restoring GRUB
Downloading the BIOS Update from MSI
Before downloading, review all available BIOS versions and read the changelogs. If multiple updates are available, install them incrementally, focusing on major or critical updates first.
MSI support page with drivers for MY motherboard:
https://www.msi.com/Motherboard/MAG-X870E-TOMAHAWK-WIFI/support
Preparing the USB Drive
Identify the USB device
lsblk
Example output:
sdX
├─sdX1
Unmount the USB
A device must not be mounted while modifying partitions or formatting.
sudo umount /dev/sdX*
Wipe Old Filesystem Signatures
Removes leftover ISO bootloader data, old partition tables, or corrupted signatures.
sudo wipefs -a /dev/sdX
Create a New GPT Partition Table
sudo parted /dev/sdX mklabel gpt
Create a New FAT32 Partition
sudo parted -a optimal /dev/sdX mkpart primary fat32 0% 100%
Explanation:
- optimal – improves performance and reduces flash wear
- primary – GPT treats all partitions as primary
- 0%–100% range – uses the entire drive
Format the new partition as FAT32
sudo mkfs.vfat -F32 /dev/sdX1
(Optional) Assign a Label
sudo fatlabel /dev/sdX1 DRIVERS
Copy BIOS Files to the USB Drive
Drivers or BIOS updates are usually distributed as .zip archives.
sudo mount /dev/sdbX /mnt
cd ~/Downloads
unzip bios.zip
mv extracted_folder /mnt/
sudo umount /mnt
After copying the files, reboot the system and press F2, F12, or Del to enter BIOS (keys vary by motherboard).
Restoring GRUB
After a successful BIOS update, the GRUB entry may disappear from the boot menu. To fix this, you need a bootable USB with Arch Linux (or any Linux live environment with a shell).
Create a Bootable USB
Follow Arch Linux Installation - Preparing USB
Identify System Partitions
lsblk -f
Example layout:
- nvme0n1p1 – EFI partition
- nvme0n1p2 – swap
- nvme0n1p3 – root filesystem
Mount the System
mount /dev/nvme0n1p3 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot
Enter the Installed System
arch-chroot /mnt
Reinstall GRUB
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB-Arch
Regenerate GRUB Configuration
grub-mkconfig -o /boot/grub/grub.cfg