GRUB menghilang setelah mengubah deskripsi Windows Boot Manager

0

Saya menginstal Elementary OS, dan semuanya bekerja dengan baik. Saya dapat GRUB saat mem-boot komputer, saya bisa mem-boot Windows dan Elementary OS. Satu-satunya masalah adalah bahwa Windows Boot Manager muncul dua kali di menu boot EFI. Salah satunya adalah GRUB, dan yang lainnya hanya Windows. Mungkin seharusnya saya tinggalkan saja, tapi saya masuk ke Windows dan mengetikbcdedit /set {bootmgr} description GRUB Ini menghancurkan segalanya. Ini sebenarnya menyingkirkan entri Windows Boot Manager di EFI (yang diam-diam GRUB) dan meninggalkan yang hanya Windows. Sekarang saya tidak bisa masuk ke Linux lagi. Sebagian besar tutorial online tentang mendapatkan GRUB kembali setelah menginstal Windows, atau bukan untuk EFI. Untuk alasan ini, saya enggan mengikuti tutorial tersebut. Mereka mengatakan untuk menginstal ulang grub ke MBR, meskipun saya awalnya menginstalnya ke partisi EFI. Sepertinya itu tidak benar bagi saya.

EDIT: Saya mendapat informasi lebih lanjut tentang masalah ini. Saya menginstal ulang GRUB, menggunakan metode umum yang saya temukan online. Saya kemudian menggunakan efibootmgr, dan tampaknya ketika saya mengganti nama Windows Boot Manager ke GRUB, entri baru benar - benar dibuat. Ada juga entri bernama ubuntu. Namun, tak satu pun dari entri ini dalam urutan boot. Saya tidak dapat mengubah urutan boot untuk menambahkannya. Perintah itu bekerja, tetapi perubahan itu tidak disimpan.

superchampion dari dunia ini
sumber
Anda mungkin perlu menginstal ulang grub; Anda dapat menggunakan LiveCD sebagai lingkungan pemulihan. Mount partisi Anda akar dan filesystem lain yang relevan (terpisah /boot, partisi efi, /dev, /sys, dll) pada pemulihan lingkungan Anda, kemudian chrootke root Linux Anda dan instal ulang grub menggunakan grub-install.
sebasth
Itu tidak berhasil.
superchampionoftheworld

Jawaban:

4

Saya melihat Anda menemukan solusi; namun, saya ingin menunjukkan setidaknya sebagian alasan untuk masalah tersebut, karena hal itu dapat membantu Anda (atau orang lain) menghindari masalah serupa di masa mendatang ....

Dalam konfigurasi dual-boot awal yang Anda gambarkan (Windows / ElementaryOS), Anda memiliki dua manajer boot:

  • Motherboard bawaan (EFI) bawaan boot manager - Manajer booting ini bergantung pada entri yang disimpan dalam NVRAM, yang mengarah ke program boot EFI. Entri NVRAM dapat ditambahkan, dihapus, dan dimodifikasi melalui program seperti efibootmgrdi Linux, bcdeditWindows, dan EasyUEFI di Windows. Biasanya, komputer melakukan booting ke program boot EFI default secara otomatis dan tanpa jeda untuk menampilkan menu pada saat boot; untuk mendapatkan menu, Anda harus menekan tombol khusus sistem segera setelah Anda menyalakan komputer atau menyalakannya kembali. Pilihan umum untuk kunci ini termasuk Esc, Enter, dan tombol fungsi (biasanya F8 atau lebih tinggi).
  • GRUB - Setelah Anda menginstal ElementaryOS, GRUB harus menjadi program boot default yang ditentukan oleh boot manager bawaan EFI. GRUB sendiri merupakan boot manager, dan dalam konfigurasi dual-boot, ia harus menampilkan menu boot ketika dijalankan. Menu boot ini dibuat melalui file konfigurasi pada disk, yang disimpan di /boot/grub/grub.cfgdalam ElementaryOS. (File lain /boot/efi/EFI/ubuntu/grub.cfg,, mungkin juga terlibat.)

(Catatan: Manajer boot menyajikan menu atau cara lain bagi pengguna untuk memilih OS mana yang akan di-boot. Seorang manajer boot biasanya menyerahkan ke boot loader, yang memuat kernel OS ke dalam memori dan menyerahkan kendali ke kernel. Beberapa program, termasuk GRUB, keduanya boot manager dan boot loader, tetapi yang lain, seperti boot manager EFI atau Linux EFI stub loader, adalah satu atau yang lain tetapi tidak keduanya. Pengguna Linux sering ceroboh membedakan antara dua jenis program ini karena GRUB melakukan keduanya.)

Bagaimanapun, ketika Anda berlari bcdeditdi Windows, Anda menyesuaikan boot manager EFI , tetapi ini tidak berpengaruh pada konfigurasi GRUB. Jadi, Anda akhirnya melewati GRUB, yang tentu saja bukan yang Anda inginkan. Untuk memodifikasi menu GRUB, Anda perlu mengedit file konfigurasinya, tapi itu proses yang lebih canggung daripada yang Anda harapkan, karena grub.cfgsebenarnya dibuat oleh skrip sehingga dapat disesuaikan untuk sistem khusus Anda. Alat GRUB Customizer menyajikan front-end GUI yang relatif ramah untuk kustomisasi GRUB, tapi saya bukan ahli dalam penggunaannya. Juga dimungkinkan untuk menggunakan boot manager dan boot loader lainnya di Linux, mem-bypass GRUB sepenuhnya.

Masalah lain yang mungkin relevan adalah Boot Aman. ElementaryOS didasarkan pada Ubuntu, yang menggunakan program bernama Shim for Secure Boot Support. Shim binary ( shimx64.efi) ditandatangani oleh Microsoft dan karenanya dipercaya oleh sebagian besar EFI. Tujuan utama Shim adalah untuk memperluas jumlah kunci Boot Aman yang akan diterima firmware dan meluncurkan GRUB ( grubx64.efi), yang pada gilirannya ditandatangani dengan tombol lain (Canonical, dalam kasus Ubuntu, dan mungkin juga karena itu ElementaryOS, meskipun saya belum memeriksa ini).

Mengingat sifat dari solusi Anda, saya menduga Anda memiliki setidaknya dua entri untuk ElementaryOS dalam daftar boot NVRAM EFI Anda, salah satunya menunjuk ke Shim dan yang lainnya menunjuk ke GRUB. Saya menduga bahwa salah satu yang menunjuk langsung ke GRUB datang lebih awal dalam urutan boot Anda, tetapi diabaikan oleh firmware karena gagal tes Aman Boot tidak dimodifikasi firmware. Ketika Anda memberi tahu firmware untuk mempercayai GRUB, itu mulai lulus ujian dan GRUB akan diluncurkan. Ini mungkin telah diatur dengan cara lain pada awalnya, tetapi kesalahan Anda dengan bcdeditdi Windows memusnahkan atau mengubah urutan entri yang di-boot melalui Shim. Instalasi ulang GRUB Anda mungkin juga sedikit berbeda.

Jika Anda ingin memahami ini lebih baik, saya sarankan Anda membaca satu atau lebih hal berikut ini:

Bahkan jumlah total halaman-halaman ini tidak akan memberi tahu Anda dengan tepat apa yang terjadi pada sistem Anda, tetapi Anda mungkin dapat mendiagnosisnya dengan lebih baik dengan memeriksa sudo efibootmgr -voutput Anda , dan untuk memperbaiki masalah serupa jika terjadi di masa depan.

Rod Smith
sumber
Wow, itu banyak informasi. Terima kasih. Saya melakukan efibootmgr -v, dan Anda benar, ada 3 entri untuk Elementary OS, dua dengan shim, dan satu dengan grub. Saya juga menemukan entri Windows yang saya beri nama GRUB.
superchampionoftheworld
1

Saya menemukan solusinya sendiri. Rupanya, saya harus menandai grubx64.efi sebagai tepercaya dalam pengaturan UEFI. Ini benar-benar aneh karena saya telah menonaktifkan Boot Aman sepanjang waktu. Bagaimanapun, ini menambahkan entri baru untuk bootloader EFI, dan entri ini memang memuat GRUB, sebagaimana mestinya.

superchampion dari dunia ini
sumber