Menghapus Entri Boot Lama di UEFI dan Membersihkan Menu GRUB Linux

Bekas Ubuntu, Fedora, Debian, Windows, atau distro percobaan masih nongkrong di menu boot walaupun sistemnya sudah lama dihapus? Jangan langsung menembak Boot0002. Kenali dulu menu mana yang sedang kita bersihkan.

Setelah beberapa kali memasang Linux, mencoba dual boot, menghapus partisi Windows, lalu memasang distro lain, menu boot komputer kadang berubah menjadi semacam museum sistem operasi. Ubuntu masih muncul, Debian ada dua, Windows Boot Manager ikut mejeng, padahal disk-nya sudah diformat entah sejak kapan.

Sebuah layar firmware menampilkan entri Fedora, Ubuntu, Debian, dan Windows, disertai terminal Linux yang menjalankan efibootmgr.UEFI + GRUBBersihkan Entri Boot LamaKenali entri, hapus yang basi, jangan korbankan sistem aktif.UEFI Boot ManagerBoot0001 FedoraBoot0002 UbuntuBoot0003 Windows Boot ManagerBoot0005 Debian lamaterminal — efibootmgr$ sudo efibootmgr -vBootCurrent: 0001BootOrder: 0001,0003,0005$ sudo efibootmgr -b 0005 -BBoot entry 0005 deleted
Entri UEFI tersimpan di firmware, sedangkan daftar GRUB dibuat dari konfigurasi dan hasil deteksi sistem operasi.

Masalahnya, istilah “menu boot” sering dipakai untuk menyebut dua tempat yang berbeda. Akibatnya, orang berniat membersihkan GRUB, tetapi malah menghapus entri firmware. Atau sebaliknya: sudah menghapus entri dengan efibootmgr, tetapi daftar sistem operasi di GRUB tetap ramai seperti antrean pembagian sembako.

Peringatan: perintah dalam panduan ini dapat membuat sistem gagal boot apabila kita menghapus entri yang masih dipakai. Baca seluruh identitas entri terlebih dahulu dan simpan catatan sebelum melakukan perubahan.

Pertama, bedakan menu UEFI dengan menu GRUB

Firmware UEFI dan GRUB bekerja pada lapisan yang berbeda. Keduanya memang berhubungan dalam proses boot, tetapi bukan barang yang sama.

BagianMenu UEFI atau BIOSMenu GRUB
Lokasi dataMemori non-volatile atau NVRAM pada firmwareKonfigurasi GRUB di partisi Linux
Cara membukanyaTombol firmware seperti F2, F10, F11, F12, Esc, atau DelMuncul setelah firmware menjalankan GRUB
Contoh entriUbuntu, Fedora, Windows Boot Manager, UEFI NetworkLinux Mint, Advanced options, Windows, recovery kernel
Alat utamaefibootmgrupdate-grub atau grub-mkconfig
Efek format diskEntri lama dapat tetap tersimpan meskipun disk sudah dihapusDaftar berubah setelah konfigurasi GRUB dibuat ulang

Jadi, apabila tulisan lama muncul saat kita menekan F12 sebelum Linux berjalan, kemungkinan besar yang kotor adalah daftar UEFI. Namun, apabila tulisan itu muncul di layar GRUB setelah firmware selesai, yang perlu diperiksa adalah konfigurasi GRUB.

Mengapa entri sistem operasi lama masih bertahan?

Pada komputer modern, UEFI menyimpan daftar boot di NVRAM firmware. Setiap entri biasanya berisi nama, lokasi partisi EFI, dan jalur menuju berkas pemuat boot seperti:

\EFI\ubuntu\shimx64.efi
\EFI\fedora\shimx64.efi
\EFI\Microsoft\Boot\bootmgfw.efi
\EFI\debian\grubx64.efi

Menghapus atau memformat partisi sistem operasi tidak selalu ikut menghapus catatan tersebut dari NVRAM. Firmware tetap menyimpan nama dan jalurnya, walaupun berkas yang dituju sudah tidak ada.

Akibatnya, kita dapat menemukan:

  • nama Ubuntu walaupun Ubuntu sudah lama dihapus;
  • dua atau tiga entri Debian yang menuju berkas berbeda;
  • Windows Boot Manager setelah partisi Windows dimusnahkan;
  • entri jaringan, USB, atau perangkat generik bernomor tinggi;
  • firmware mencoba menjalankan jalur kosong lalu gagal boot.

Pastikan Linux sedang berjalan dalam mode UEFI

Sebelum menggunakan efibootmgr, periksa apakah Linux benar-benar dimulai dalam mode UEFI.

if [ -d /sys/firmware/efi ]; then
 echo "Sistem berjalan dalam mode UEFI"
else
 echo "Sistem berjalan dalam mode Legacy BIOS atau CSM"
fi

Apabila direktori /sys/firmware/efi tidak tersedia, Linux kemungkinan sedang berjalan melalui mode Legacy BIOS atau CSM. Dalam kondisi tersebut, efibootmgr biasanya tidak dapat mengakses variabel EFI.

Memasang efibootmgr

Banyak distribusi sudah menyertakan alat ini. Apabila perintahnya belum tersedia, pasang menggunakan manajer paket distro.

Debian, Ubuntu, dan Linux Mint

sudo apt update
sudo apt install efibootmgr

Fedora

sudo dnf install efibootmgr

Arch Linux dan turunannya

sudo pacman -S efibootmgr

Melihat seluruh entri boot UEFI

Jalankan perintah berikut untuk melihat daftar ringkas:

sudo efibootmgr

Agar informasi partisi dan jalur berkas EFI ikut terlihat, gunakan mode verbose:

sudo efibootmgr -v

Contoh hasilnya:

BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0002,0003
Boot0001* Fedora HD(1,GPT,...)/File(\EFI\fedora\shimx64.efi)
Boot0002* Ubuntu HD(1,GPT,...)/File(\EFI\ubuntu\shimx64.efi)
Boot0003* Windows Boot Manager HD(1,GPT,...)/File(\EFI\Microsoft\Boot\bootmgfw.efi)

Arti bagian penting dari keluaran tersebut

  • BootCurrent menunjukkan entri yang digunakan untuk memulai sesi Linux saat ini.
  • BootOrder menunjukkan urutan entri yang akan dicoba oleh firmware.
  • Boot0001 merupakan nomor identitas entri.
  • Tanda bintang setelah nomor menunjukkan bahwa entri tersebut aktif.
  • Bagian HD(1,GPT,...) menunjuk partisi EFI yang digunakan.
  • Bagian File(...) menunjukkan berkas pemuat boot yang dijalankan.
Jangan menganggap nama entri sebagai identitas yang pasti. Linux Mint, Ubuntu, Pop!_OS, atau distribusi turunannya dapat memakai nama dan direktori ubuntu. Nama yang sama belum tentu berarti entri tersebut sudah basi.

Cara memastikan entri mana yang masih dipakai

Sebelum menghapus apa pun, cocokkan informasi dari efibootmgr -v dengan partisi yang ada di sistem.

1. Simpan catatan kondisi awal

sudo efibootmgr -v | tee "$HOME/efibootmgr-sebelum.txt"

Berkas ini tidak otomatis memulihkan entri, tetapi sangat membantu apabila kita perlu mengingat nomor, jalur, dan urutan boot sebelumnya.

2. Lihat partisi, PARTUUID, dan titik kait

lsblk -o NAME,FSTYPE,LABEL,PARTUUID,UUID,SIZE,MOUNTPOINTS

Bandingkan nilai GPT atau PARTUUID dengan identitas partisi yang muncul pada keluaran verbose efibootmgr.

3. Periksa partisi EFI yang sedang digunakan

findmnt /boot/efi

Pada beberapa sistem, partisi EFI dapat dipasang di /efi atau lokasi lain. Untuk mencarinya:

findmnt -t vfat,fat

4. Lihat direktori pemuat boot

sudo find /boot/efi/EFI -maxdepth 2 -type f -print

Contohnya dapat terlihat seperti ini:

/boot/efi/EFI/ubuntu/shimx64.efi
/boot/efi/EFI/ubuntu/grubx64.efi
/boot/efi/EFI/fedora/shimx64.efi
/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
/boot/efi/EFI/Boot/bootx64.efi
Direktori EFI/Boot biasanya berisi jalur fallback standar. Jangan menghapusnya hanya karena namanya terlihat generik. Beberapa firmware memakai bootx64.efi ketika entri NVRAM tidak tersedia.

Menghapus entri boot UEFI yang sudah tidak digunakan

Misalnya kita sudah memastikan bahwa Boot0002 adalah bekas instalasi yang benar-benar sudah tidak dipakai. Hapus dengan:

sudo efibootmgr -b 0002 -B

Keterangan parameternya:

  • -b 0002 memilih nomor entri;
  • -B menghapus entri terpilih dari NVRAM.

Periksa kembali hasilnya:

sudo efibootmgr -v
Hindari menghapus nomor yang tercantum sebagai BootCurrent sebelum benar-benar memahami entri pengganti yang akan digunakan. Sistem yang sedang berjalan tidak langsung mati, tetapi boot berikutnya dapat gagal.

Mengatur ulang urutan boot

Kita tidak selalu harus menghapus entri. Apabila semuanya masih diperlukan, cukup susun ulang prioritasnya.

Misalnya Fedora adalah 0001 dan Windows Boot Manager adalah 0003:

sudo efibootmgr -o 0001,0003

Setelah itu, firmware akan mencoba Fedora terlebih dahulu. Apabila gagal, barulah Windows Boot Manager dicoba.

Menentukan entri untuk satu kali boot

Untuk meminta firmware memakai satu entri hanya pada boot berikutnya, gunakan opsi -n:

sudo efibootmgr -n 0003

Setelah boot berikutnya selesai, firmware kembali menggunakan BootOrder normal. Ini cocok untuk pengujian tanpa mengubah urutan permanen.

Mengubah waktu tunggu firmware

sudo efibootmgr -t 5

Perintah tersebut mengatur waktu tunggu firmware menjadi lima detik, apabila firmware perangkat memang mendukung pengaturan timeout dari variabel EFI.

Bagaimana membedakan dua entri bernama Ubuntu?

Label Ubuntu di firmware bukan bukti bahwa sistemnya benar-benar Ubuntu. Linux Mint dan beberapa distribusi turunan Ubuntu juga dapat memasang pemuat boot di direktori \EFI\ubuntu.

Apabila ada dua entri bernama sama, perhatikan tiga hal berikut:

  1. PARTUUID partisi EFI. Entri dapat menunjuk ke disk atau partisi EFI yang berbeda.
  2. Nama berkas pemuat. Satu entri mungkin menuju shimx64.efi, sedangkan yang lain menuju grubx64.efi.
  3. BootCurrent. Nomor ini menunjukkan entri yang berhasil menjalankan sistem saat ini.

Contoh dua entri yang tampak mirip:

Boot0000* Ubuntu HD(1,GPT,AAAA,...)/File(\EFI\ubuntu\grubx64.efi)
Boot0001* ubuntu HD(1,GPT,AAAA,...)/File(\EFI\ubuntu\shimx64.efi)

Keduanya bahkan dapat berasal dari instalasi yang sama. Pada sistem dengan Secure Boot, shimx64.efi biasanya menjadi pintu masuk yang memuat GRUB bertanda tangan. Jadi, jangan asal menganggap salah satunya sampah hanya karena namanya ganda.

Apa itu entri Boot0015, Boot0016, atau nomor tinggi lainnya?

Nomor entri tidak menunjukkan tingkat kepentingan. Nomor tinggi juga tidak otomatis berarti entri tersebut lama atau rusak.

Firmware dapat membuat entri untuk:

  • boot melalui jaringan IPv4 atau IPv6;
  • perangkat USB;
  • hard disk generik;
  • pemulihan vendor;
  • diagnostik perangkat keras;
  • fallback bootloader;
  • pemuat boot sistem operasi tertentu.

Gunakan keluaran verbose sebelum mengambil keputusan:

sudo efibootmgr -v

Apabila entri tidak memiliki jalur berkas sistem operasi dan hanya menunjuk perangkat jaringan atau perangkat keras generik, entri itu mungkin dibuat oleh firmware dan bukan sisa distribusi Linux.

Mengapa entri yang dihapus muncul lagi?

Ada beberapa kemungkinan ketika entri yang baru dihapus muncul kembali setelah restart.

  • Paket bootloader sistem aktif membuat ulang entri saat diperbarui.
  • Firmware mendeteksi berkas EFI dan otomatis mendaftarkannya kembali.
  • Direktori pemuat boot lama masih tersimpan di partisi EFI.
  • Fitur pemulihan firmware mengembalikan urutan boot bawaan.
  • Sistem menggunakan lebih dari satu partisi EFI pada disk berbeda.

Periksa seluruh partisi berformat FAT yang kemungkinan menjadi EFI System Partition:

lsblk -o NAME,FSTYPE,PARTTYPE,PARTUUID,SIZE,MOUNTPOINTS

GUID tipe partisi EFI yang umum adalah:

c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Jangan langsung menghapus direktori /boot/efi/EFI/ubuntu. Linux Mint dan sistem Ubuntu yang sedang aktif sangat mungkin memakai direktori tersebut. Menghapus folder yang salah dapat membuat GRUB tidak ditemukan pada boot berikutnya.

Jika sudah benar-benar yakin folder EFI itu basi

Buat cadangan terlebih dahulu. Contoh berikut hanya ilustrasi dan nama folder harus disesuaikan:

sudo mkdir -p "$HOME/cadangan-efi"
sudo cp -a /boot/efi/EFI/debian "$HOME/cadangan-efi/"

Setelah lokasi dan isinya dipastikan tidak digunakan, barulah folder lama dapat dihapus:

sudo rm -rf /boot/efi/EFI/debian

Perintah rm -rf tidak menyediakan tombol “eh, tadi salah”. Gunakan hanya untuk direktori yang identitasnya sudah dipastikan.

Kalau yang kotor adalah menu GRUB, bukan UEFI

Apabila daftar sistem operasi lama muncul di layar GRUB, menghapus entri NVRAM dengan efibootmgr belum tentu mengubah apa pun. GRUB menyusun menunya dari konfigurasi dan skrip generator.

Debian, Ubuntu, dan Linux Mint

sudo update-grub

Distribusi yang menggunakan grub-mkconfig

Lokasi berkas keluaran berbeda-beda menurut distribusi dan metode instalasinya. Salah satu pola umumnya:

sudo grub-mkconfig -o /boot/grub/grub.cfg
Pada Fedora atau sistem tertentu, lokasi konfigurasi GRUB dapat berbeda. Jangan menyalin jalur keluaran secara buta. Periksa dokumentasi distribusi dan konfigurasi boot yang sedang digunakan.

Jangan mengedit grub.cfg secara langsung

Berkas /boot/grub/grub.cfg biasanya dibuat otomatis. Perubahan manual di sana dapat hilang saat update-grub dijalankan.

Periksa sumber konfigurasinya di:

/etc/default/grub
/etc/grub.d/

Entri manual yang ingin dipertahankan biasanya ditempatkan di:

/etc/grub.d/40_custom

Periksa hasil deteksi os-prober

Pada sistem yang mengaktifkan os-prober, GRUB dapat menemukan sistem operasi lain dari partisi yang masih tersisa.

sudo os-prober

Jika sebuah sistem lama masih terdeteksi, periksa apakah partisi, salinan bootloader, atau instalasi lama memang belum sepenuhnya dibersihkan.

Deteksi sistem operasi lain dapat dinonaktifkan melalui /etc/default/grub:

GRUB_DISABLE_OS_PROBER=true

Kemudian buat ulang menu:

sudo update-grub
Menonaktifkan os-prober juga dapat menyembunyikan Windows atau distribusi Linux lain yang masih valid. Ini bukan tombol ajaib untuk membuang satu entri tertentu.

Entri kernel lama di Advanced options bukan entri UEFI

GRUB dapat menampilkan beberapa versi kernel pada bagian Advanced options. Ini normal dan berguna sebagai cadangan apabila kernel terbaru bermasalah.

Pada Debian, Ubuntu, dan Linux Mint, paket yang tidak lagi diperlukan dapat diperiksa dengan:

sudo apt autoremove --dry-run

Jika daftar yang ditampilkan sudah masuk akal, jalankan:

sudo apt autoremove
Sisakan setidaknya satu kernel cadangan yang diketahui dapat berjalan. Membersihkan semua kernel lama demi mengejar menu yang kinclong kadang berakhir menjadi olahraga mencari flashdisk live.

Ketika efibootmgr menampilkan “EFI variables are not supported”

Pesan tersebut umumnya berarti salah satu kondisi berikut:

  • Linux dimulai dalam mode Legacy BIOS atau CSM;
  • dukungan variabel EFI tidak tersedia dari kernel;
  • efivarfs belum terpasang;
  • lingkungan live atau virtual tidak menyediakan akses NVRAM;
  • firmware membatasi perubahan variabel EFI.

Periksa apakah efivarfs tersedia:

mount | grep efivarfs

Lokasi yang umum adalah:

/sys/firmware/efi/efivars

Apabila komputer mendukung UEFI tetapi Linux terlanjur dimulai dalam mode Legacy, restart dan pilih entri USB atau disk yang diawali label UEFI dari menu firmware.

Menghapus entri langsung dari menu firmware

Sebagian komputer menyediakan menu seperti Boot Maintenance Manager, Delete Boot Option, atau UEFI Boot Manager.

Dari sana kita mungkin dapat:

  • mengubah urutan boot;
  • menonaktifkan entri;
  • menghapus entri lama;
  • mengembalikan pengaturan bawaan.

Namun, tidak semua firmware menyediakan fungsi hapus. Banyak laptop hanya mengizinkan perubahan urutan. Dalam kasus seperti itu, efibootmgr biasanya lebih fleksibel.

Apa yang dilakukan jika salah menghapus entri?

Jangan panik terlebih dahulu. Menghapus entri NVRAM tidak selalu berarti berkas bootloader ikut hilang. Firmware mungkin masih dapat menjalankan jalur fallback \EFI\Boot\bootx64.efi.

Beberapa opsi pemulihan yang dapat dicoba:

  1. buka menu boot firmware dan cari entri disk atau berkas EFI lain;
  2. gunakan fitur Boot from EFI File jika disediakan firmware;
  3. jalankan Linux dari flashdisk live dalam mode UEFI;
  4. pasang partisi sistem dan partisi EFI;
  5. instal ulang atau daftarkan kembali bootloader distribusi.

Pada sistem keluarga Debian atau Ubuntu, proses pemulihan biasanya melibatkan pemasangan partisi, masuk melalui chroot, kemudian memasang ulang GRUB. Detailnya bergantung pada tata letak partisi, enkripsi, LVM, Secure Boot, dan jenis sistem berkas.

Jangan menjalankan perintah pemulihan GRUB dari artikel acak tanpa menyesuaikan nama disk dan partisi. Contoh /dev/sda1 belum tentu cocok dengan perangkat NVMe seperti /dev/nvme0n1p1.

Alur paling aman untuk membersihkan entri boot

  1. Pastikan sistem berjalan dalam mode UEFI. Periksa keberadaan /sys/firmware/efi.
  2. Simpan keluaran awal. Jalankan efibootmgr -v dan simpan hasilnya.
  3. Catat BootCurrent. Jangan menghapusnya tanpa mengetahui jalur pengganti.
  4. Cocokkan PARTUUID. Gunakan lsblk untuk mengetahui partisi yang dituju.
  5. Periksa berkas EFI. Pastikan jalur yang dituju masih ada atau memang sudah basi.
  6. Ubah urutan sebelum menghapus. Jika ragu, pindahkan entri ke prioritas terakhir terlebih dahulu.
  7. Uji satu kali boot. Gunakan opsi -n bila perlu.
  8. Hapus hanya entri yang telah dipastikan. Gunakan -b NOMOR -B.
  9. Periksa ulang setelah restart. Pastikan sistem aktif tetap dapat dimulai.

Ringkasan perintah penting

TujuanPerintah
Melihat entri ringkassudo efibootmgr
Melihat jalur lengkapsudo efibootmgr -v
Menghapus Boot0002sudo efibootmgr -b 0002 -B
Mengatur urutan bootsudo efibootmgr -o 0001,0003
Memilih satu kali bootsudo efibootmgr -n 0003
Mengatur timeout lima detiksudo efibootmgr -t 5
Melihat PARTUUID lsblk -o NAME,FSTYPE,LABEL,PARTUUID,UUID,MOUNTPOINTS
Membuat ulang GRUB Debian atau Ubuntusudo update-grub
Melihat deteksi sistem lainsudo os-prober

Kesimpulan

Entri sistem operasi lama dapat tetap tersimpan karena UEFI mencatat lokasi bootloader di NVRAM, bukan hanya di dalam partisi sistem operasi. Karena itu, memformat disk tidak selalu membuat menu firmware kembali bersih.

Gunakan efibootmgr -v untuk mengenali setiap entri, cocokkan jalur dan PARTUUID-nya, lalu hapus hanya entri yang benar-benar tidak digunakan. Jika nama sistem lama muncul di layar GRUB, periksa konfigurasi GRUB dan jalankan generator menu yang sesuai.

Prinsip sederhananya: identifikasi dulu, ubah urutan bila masih ragu, baru hapus setelah yakin. Menu boot yang rapi memang menyenangkan, tetapi komputer yang masih bisa menyala jauh lebih menyenangkan.
Checklist sebelum menekan Enter
  • Saya sudah menyimpan keluaran efibootmgr -v.
  • Saya sudah mencatat nomor BootCurrent.
  • Saya sudah memeriksa PARTUUID dengan lsblk.
  • Saya sudah mengetahui lokasi partisi EFI yang aktif.
  • Saya sudah memeriksa jalur berkas EFI tujuan.
  • Saya yakin entri yang dipilih tidak dipakai sistem aktif.
  • Saya memiliki media live untuk pemulihan bila diperlukan.

Sumber dan pengembangan materi

Artikel ini merupakan penulisan ulang dan pengembangan dalam bahasa Indonesia dari diskusi komunitas Linux.org mengenai pembersihan entri sistem operasi lama pada menu boot.

Referensi: How to delete old OS entries in your boot menu .

Penjelasan diperluas dengan pemisahan antara daftar firmware UEFI, konfigurasi GRUB, identifikasi PARTUUID, jalur EFI, entri duplikat, dan langkah pencegahan sebelum penghapusan.