Video failed to load

Repairing Your Linux EFI Boot Entry with efibootmgr

973 words
5 minutes
Repairing Your Linux EFI Boot Entry with efibootmgr

Getting to Know#

What is efibootmgr?#

Menurut definisi (atau deskripsi) dari paket tersebut di repo Archlinux, efibootmgr adalah aplikasi user space di linux yang bertugas untuk melakukan modifikasi pada EFI boot manager.1

Jadi, kalau linux kita tidak bisa booting dengan normal (misalnya, opsi bootloader tidak muncul di GRUB atau bahkan boot entry tidak muncul di boot menu BIOS komputer), kita tidak perlu buru-buru khawatir dan langsung install ulang seluruh sistem linux kita, tapi kita bisa cek terlebih dahulu, barangkali kita bisa memperbaiki bootloader-nya via efibootmgr.

UEFI vs Legacy#

INFO

Sebelum lebih dalam ke caranya, kita perlu tahu dulu bahwa tool ini, seperti namanya, efibootmgr hanya dapat digunakan untuk melakukan manajemen bootloader berbasis UEFI, bukan Legacy.

Apa itu UEFI dan Legacy? Apa bedanya?

Legacy BIOS#

Legacy BIOS (Basic Input Output System) adalah sebuah software (firmware) yang tersimpan di motherboard komputer kita dan bertugas untuk melakukan booting dan membangkitkan sistem operasi kita.2 Akan tetapi, Legacy BIOS adalah software lama (sudah ada sejak 1980-an) dan hanya akan kompatibel untuk menjalankan OS (Operating System) lama juga.

Berikut adalah beberapa kelebihan Legacy BIOS:3

  1. Kompatibilitas dengan perangkat keras lama.
  2. Mudah digunakan dan diatur.
  3. Tidak memerlukan konfigurasi yang kompleks.

Sementara berikut ini adalah kekurangan Legacy BIOS:

  1. Cara membaca disk pake MBR (Master Boot Record).
  2. Terbatas dalam mengenali kapasitas penyimpanan (maksimal di 2TB).
  3. Tidak mendukung fitur keamanan modern seperti Secure Boot.
  4. Tidak dapat digunakan pada sistem operasi 64-bit.

UEFI#

Seperti BIOS, UEFI (Unified Extensible Firmware Interface) yang sudah dikembangkan sejak tahun 2005 adalah firmware modern untuk menggantikan Legacy BIOS. Seperti BIOS juga, UEFI adalah software paling pertama yang akan dijalankan begitu kita menekan tombol power di komputer kita sehingga dia kemudian akan melakukan proses booting dan membangunkan sistem operasi kita.2

Beberapa kelebihan UEFI:3

  1. Cara membaca disk dengan GPT (GUID Partition Table).
  2. Dapat mengenali kapasitas penyimpanan lebih besar dari 2TB.
  3. Mendukung fitur keamanan modern seperti Secure Boot.
  4. Dapat digunakan pada sistem operasi 64 bit.
  5. Lebih cepat dan efisien dalam proses booting.

Namun, ada juga beberapa kekurangan UEFI:

  1. Tidak kompatibel dengan perangkat keras (hardware) lama.
  2. Memerlukan konfigurasi yang (sedikit) lebih kompleks.
  3. Tidak semua sistem operasi mendukung UEFI.

Jadi, berikut adalah kesimpulan perbandingan Legacy BIOS vs UEFI.4

AspekLegacy BIOSUEFI
Partition tableMBRGPT
Limit disk2TBJauh lebih besar
Limit partition4 primaryPraktis unlimited
Mode CPU16-bit real mode32/64-bit
Lokasi bootloaderMBR (sector pertama disk)File .efi di ESP
Data boot entryGa ada konsep iniTersimpan di NVRAM motherboard
KeamananGak adaSecure Boot
Kecepatan bootLebih lambatLebih cepat

Installation#

Berikut adalah cara meng-install efibootmgr di beberapa sistem operasi UNIX/Linux:

Terminal window
sudo apt install -y efibootmgr

Notes: FreeBSD sudah meng-include-kan efibootmgr pada saat proses instalasi FreeBSD itu sendiri. Jadi, kita bisa langsung menggunakannya jika diperlukan tanpa perlu meng-install paket tersebut terlebih dahulu.

NOTE

NixOS:
Masukkan baris berikut di file konfigurasi (/etc/nixos/configuration.nix):

environment.systemPackages = [
pkgs.efibootmgr
];

Atau jika menggunakan nix-shell:

Terminal window
nix-shell -p efibootmgr

Usage#

Prerequisites#

Sebelum menggunakannya, pastikan kita sudah memenuhi beberapa persyaratan berikut:

  1. Bootable USB (saya sarankan Archlinux).
  2. Di menu BIOS komputer, boot ke USB tersebut.
  3. Mount partisi sistem yang ingin diperbaiki bootloader-nya.
Terminal window
mount /dev/sdXn /mnt # mount partisi root
mount /dev/sdXm /mnt/boot # mount partisi boot yang terdapat EFI di dalamnya
  1. Chroot ke sistem tersebut.
Terminal window
arch-chroot /mnt

Berikut adalah beberapa kasus yang memungkinkan kita menggunakan efibootmgr:

Check bootloader#

Langkah paling pertama setelah berhasil melakukan chroot ke sistem adalah melihat apakah bootloader-nya masih ada di ESP (EFI System Partition):

Terminal window
ls -l /boot/EFI/ # atau /efi/EFI/ tergantung mount point lo

Dari sini, muncul 2 kemungkinan:

  1. File bootloader (grub/systemd-boot) masih ada.
  2. File bootloader (grub/systemd-boot) hilang.

Kita bahas satu persatu.

1. Bootloader exists.#

Kalau file grub/systemd-boot masih ada di situ, berarti masalahnya hanya di entri NVRAM-nya aja, bukan bootloader-nya hilang. Solusinya, kita hanya perlu membuat ulang entrinya ke NVRAM.

Berikut adalah perintah untuk me-reinstall entri ke NVRAM:

Terminal window
efibootmgr -c -d /dev/sdX -p Y -L "Arch Linux" -l '\EFI\grub\grubx64.efi'

Keterangan:
-c: membuat entri baru (create).
-d: men-specify disk yang terdapat partisi EFI.
Y: nomor urutan partisi dari ESP di disk.
-L: memberikan label / nama entri.
-l: men-specify file loader (biasanya berekstensi .efi).

INFO

Contoh penggunaan:

Terminal window
# melihat daftar partisi disk
lsblk
# output lsblk
nvme0n1 259:0 0 953.9G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
├─nvme0n1p2 259:2 0 200G 0 part /
├─nvme0n1p3 259:3 0 20G 0 part
├─nvme0n1p4 259:4 0 16M 0 part
└─nvme0n1p5 259:5 0 200G 0 part
# melihat bootloader
eza -lT --level 2 /boot/EFI
# output
drwxr-xr-x - root 27 Apr 09:41 ├── grub
.rwxr-xr-x 160k root 17 Jun 20:07 └── grubx64.efi
drwxr-xr-x - root 16 Jun 19:06 └── Microsoft
drwxr-xr-x - root 16 Jun 19:06 ├── Boot
drwxr-xr-x - root 16 Jun 19:10 └── Recovery
# me-reinstall entri ke NVRAM
efibootmgr -c -d /dev/nvme0n1 -p 1 -L "Arch Linux" -l '\EFI\grub\grubx64.efi'

Kemudian, kita bisa lihat apakah entri-nya sudah terpasang atau belum:

Terminal window
efibootmgr
# atau
efibootmgr -v

Kemudian, cari entri dengan nama seperti label yang sudah kita berikan tadi (Arch Linux).

2. Bootloader lost#

Kalau file grub/systemd-boot hilang, artinya bootloader memang perlu dipasang lagi juga. Solusinya, kita install bootloader-nya terlebih dahulu, baru kemudian buat entri di NVRAM.

Pertama, kita perlu meng-install ulang bootloader-nya terlebih dahulu:

Terminal window
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
INFO

Baru kemudian kita memasang kembali entri bootloader tersebut ke NVRAM:

Terminal window
efibootmgr -c -d /dev/sdX -p Y -L "Arch Linux" -l '\EFI\grub\grubx64.efi'

Keterangan:
-c: membuat entri baru (create).
-d: men-specify disk yang terdapat partisi EFI.
Y: nomor urutan partisi dari ESP di disk.
-L: memberikan label / nama entri.
-l: men-specify file loader (biasanya berekstensi .efi).

Kemudian, kita bisa lihat apakah entri-nya sudah terpasang atau belum:

Terminal window
efibootmgr
# atau
efibootmgr -v

Kemudian, cari entri dengan nama seperti label yang sudah kita berikan tadi (Arch Linux).

NVRAM Entry Modif#

Perhatikan bagian BootOrder dari output perintah:

Terminal window
efibootmgr
# atau
efibootmgr -v

Sebab, kita bisa mengetahui berada di urutan berapakah entri linux kita (Arch Linux). Urutan ini penting karena UEFI akan memilih siapa yang akan dibangkitkan pertama kali berdasarkan urutan tersebut.

efibootmgr
efibootmgr

Misalnya, di komputer saya, entri “Arch Linux” saya berada di urutan pertama (abaikan nomornya, fokus pada urutan yang berada di BootOrder).

Jika kita misalnya mau menukar urutannya:

Terminal window
efibootmgr -o 0001,0002

Keterangan:
-o: boot order (urutan booting)

Maka, nanti, sistem operasi / device dengan nomor entri 0001 akan berada di urutan pertama, sementara 0002 akan berada di urutan kedua. Begitu seterusnya (jika kita memiliki lebih dari dua sistem operasi / device).

Sekian.
Terima kasih sudah membaca.
Sampai jumpa di artikel saya yang lain!

Footnotes#

  1. https://archlinux.org/packages/core/x86_64../images/efibootmgr/

  2. https://www.overclockers.co.uk/blog/legacy-bios-vs-uefi-what-are-the-differences-and-which-is-better/ 2

  3. https://unikma.ac.id/2025/12/15/legacy-dan-uefi-perbedaan-dan-kelebihan/ 2

  4. https://claude.ai/share/e1e02fc5-8ee1-4f7a-9aa6-8381f5377631

Support & Share

If this article helped you, please share or support!

Sponsor
Repairing Your Linux EFI Boot Entry with efibootmgr
https://shangdi.github.io/posts/tech/efibootmgr/
Author
Wildan
Published at
2026-07-09

Comments

Profile Image of the Author
Wildan
Welcome! Wildan-desu.
Announcemenet
Welcome to my blog! Enjoy exploring ~
Categories
Tags
Latest Moments
Site Statistics
Posts
111
Categories
90
Tags
316
Total Words
576,048
Running Days
0 days
Last Activity
0 days ago
Site Info
Build Platform
GitHub Actions
Blog Version
Firefly v6.15.10
License
CC BY-NC-SA 4.0