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.
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.
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.
| Bagian | Menu UEFI atau BIOS | Menu GRUB |
|---|---|---|
| Lokasi data | Memori non-volatile atau NVRAM pada firmware | Konfigurasi GRUB di partisi Linux |
| Cara membukanya | Tombol firmware seperti F2, F10, F11, F12, Esc, atau Del | Muncul setelah firmware menjalankan GRUB |
| Contoh entri | Ubuntu, Fedora, Windows Boot Manager, UEFI Network | Linux Mint, Advanced options, Windows, recovery kernel |
| Alat utama | efibootmgr | update-grub atau grub-mkconfig |
| Efek format disk | Entri lama dapat tetap tersimpan meskipun disk sudah dihapus | Daftar 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.efiMenghapus 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"
fiApabila 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 efibootmgrFedora
sudo dnf install efibootmgrArch Linux dan turunannya
sudo pacman -S efibootmgrMelihat seluruh entri boot UEFI
Jalankan perintah berikut untuk melihat daftar ringkas:
sudo efibootmgrAgar informasi partisi dan jalur berkas EFI ikut terlihat, gunakan mode verbose:
sudo efibootmgr -vContoh 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.
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,MOUNTPOINTSBandingkan nilai GPT atau PARTUUID dengan identitas partisi yang muncul pada keluaran verbose efibootmgr.
3. Periksa partisi EFI yang sedang digunakan
findmnt /boot/efiPada beberapa sistem, partisi EFI dapat dipasang di /efi atau lokasi lain. Untuk mencarinya:
findmnt -t vfat,fat4. Lihat direktori pemuat boot
sudo find /boot/efi/EFI -maxdepth 2 -type f -printContohnya 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.efiEFI/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 -BKeterangan parameternya:
-b 0002memilih nomor entri;-Bmenghapus entri terpilih dari NVRAM.
Periksa kembali hasilnya:
sudo efibootmgr -vBootCurrent 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,0003Setelah 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 0003Setelah boot berikutnya selesai, firmware kembali menggunakan BootOrder normal. Ini cocok untuk pengujian tanpa mengubah urutan permanen.
Mengubah waktu tunggu firmware
sudo efibootmgr -t 5Perintah 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:
- PARTUUID partisi EFI. Entri dapat menunjuk ke disk atau partisi EFI yang berbeda.
- Nama berkas pemuat. Satu entri mungkin menuju
shimx64.efi, sedangkan yang lain menujugrubx64.efi. - 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 -vApabila 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,MOUNTPOINTSGUID tipe partisi EFI yang umum adalah:
c12a7328-f81f-11d2-ba4b-00a0c93ec93b/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/debianPerintah 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-grubDistribusi 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.cfgJangan 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_customPeriksa hasil deteksi os-prober
Pada sistem yang mengaktifkan os-prober, GRUB dapat menemukan sistem operasi lain dari partisi yang masih tersisa.
sudo os-proberJika 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=trueKemudian buat ulang menu:
sudo update-grubos-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-runJika daftar yang ditampilkan sudah masuk akal, jalankan:
sudo apt autoremoveKetika 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;
efivarfsbelum terpasang;- lingkungan live atau virtual tidak menyediakan akses NVRAM;
- firmware membatasi perubahan variabel EFI.
Periksa apakah efivarfs tersedia:
mount | grep efivarfsLokasi yang umum adalah:
/sys/firmware/efi/efivarsApabila 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:
- buka menu boot firmware dan cari entri disk atau berkas EFI lain;
- gunakan fitur Boot from EFI File jika disediakan firmware;
- jalankan Linux dari flashdisk live dalam mode UEFI;
- pasang partisi sistem dan partisi EFI;
- 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.
/dev/sda1 belum tentu cocok dengan perangkat NVMe seperti /dev/nvme0n1p1.Alur paling aman untuk membersihkan entri boot
- Pastikan sistem berjalan dalam mode UEFI. Periksa keberadaan
/sys/firmware/efi. - Simpan keluaran awal. Jalankan
efibootmgr -vdan simpan hasilnya. - Catat BootCurrent. Jangan menghapusnya tanpa mengetahui jalur pengganti.
- Cocokkan PARTUUID. Gunakan
lsblkuntuk mengetahui partisi yang dituju. - Periksa berkas EFI. Pastikan jalur yang dituju masih ada atau memang sudah basi.
- Ubah urutan sebelum menghapus. Jika ragu, pindahkan entri ke prioritas terakhir terlebih dahulu.
- Uji satu kali boot. Gunakan opsi
-nbila perlu. - Hapus hanya entri yang telah dipastikan. Gunakan
-b NOMOR -B. - Periksa ulang setelah restart. Pastikan sistem aktif tetap dapat dimulai.
Ringkasan perintah penting
| Tujuan | Perintah |
|---|---|
| Melihat entri ringkas | sudo efibootmgr |
| Melihat jalur lengkap | sudo efibootmgr -v |
| Menghapus Boot0002 | sudo efibootmgr -b 0002 -B |
| Mengatur urutan boot | sudo efibootmgr -o 0001,0003 |
| Memilih satu kali boot | sudo efibootmgr -n 0003 |
| Mengatur timeout lima detik | sudo efibootmgr -t 5 |
| Melihat PARTUUID |
lsblk -o NAME,FSTYPE,LABEL,PARTUUID,UUID,MOUNTPOINTS
|
| Membuat ulang GRUB Debian atau Ubuntu | sudo update-grub |
| Melihat deteksi sistem lain | sudo 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.
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.