TL;DR, ditambahkan dalam suntingan:
Pertanyaannya adalah:
Bagaimana saya bisa membuat BIOS lebih memilih GRUB daripada Windows Boot Manager pada partisi boot UEFI yang sama?
Masalahnya bukan pada Grub; Grub melakukan hal yang benar ketika BIOS memulainya. Masalahnya bukan pada " disk tidak dapat di-boot, karena bootstrap Windows UEFI dan bootstrap Grub UEFI dapat di-boot. Masalahnya adalah bootstrap UEFI mana yang dipilih BIOS untuk boot.
Saya sedang menyiapkan komputer baru, dan ingin komputer tersebut secara default boot ke Ubuntu, tetapi memiliki opsi untuk memilih Windows saat boot. Hal ini sangat penting jika listrik padam dan kembali lagi; saya bahkan tidak akan berada di rumah.
Saya mulai dengan menginstal Ubuntu 17.04 pada disk NVMe internal saya, dipartisi dengan GPT untuk menggunakan setengah disk, dan partisi boot UEFI yang terpisah. GRUB melakukan booting dengan baik, dan saya melihat menu boot GRUB saat start-up di mana saya dapat memilih item apa pun yang diketahui GRUB.
Kemudian saya menginstal Windows 10 Pro dari ISO yang baru saja diunduh. Ia menginstal Windows Boot Manager ke partisi UEFI yang sama, dan membiarkan Ubuntu tetap utuh (bagus!) dan itu melakukan booting dengan baik ke Windows 10.
Namun, ia melakukan "sesuatu &" yang membuat firmware UEFI segera memilih Windows Boot Manager daripada GRUB saat power-up. Satu-satunya cara untuk melakukan booting Linux sekarang adalah dengan menggunakan BIOS boot manager (F11 pada BIOS saya) dan memilih GRUB boot loader secara manual. UEFI BIOS tahu bahwa ada beberapa installasi yang dapat di-boot pada partisi UEFI, karena saya dapat memilihnya pada boot manager. Namun, ketika saya berada di menu setup di UEFI BIOS, saya hanya dapat memilih "UEFI boot drive internal saya &" dalam pemilihan prioritas boot - tidak memungkinkan saya memilih boot loader mana yang akan digunakan pada partisi tersebut. Dan, secara default, ia memilih Windows, bukan GRUB.
Internet (dan situs ini) menyarankan bahwa cara lama untuk memperbaikinya adalah dengan menjalankan update-grub
(sehingga GRUB mengenali Windows) dan kemudian grub-install
(untuk mengembalikan GRUB ke perangkat.) Saya telah melakukan ini, tetapi sayangnya, masih memiliki perilaku seperti yang dijelaskan di atas, di mana BIOS secara default memilih Windows Boot Manager. (update-grub
memang menemukan instalasi Windows Boot Manager, dan menambahkannya ke menu, dan item menu itu berfungsi ketika saya secara manual memilih partisi GRUB di UEFI boot manager).
Apa yang dapat saya lakukan untuk menjadikan GRUB sebagai "default" boot pada partisi boot UEFI saya?
Menggunakan motherboard MSI X399 Carbon.
Suntingan kedua: Karena jawaban yang benar akhirnya disebutkan dalam komentar pada tanggapan, saya akan mengulanginya di sini:
"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.
Saya mengalami masalah ini beberapa minggu terakhir. Saya mengetahuinya dengan menggunakan opsi-opsi ini. Sebelum melakukan hal-hal ini, saya sarankan Anda untuk masuk ke BIOS/UEFI Anda dan memeriksa urutan boot dan memastikan di mana grub diinstal pertama kali.
Jadi, menurut saya, Anda memiliki dua opsi.
Apa yang akan saya rekomendasikan kepada Anda adalah menginstal Windows 10 pertama. Kemudian instal ubuntu. Tapi saya tahu agak tabu untuk hanya mengatakan " instal ulang perangkat lunak Anda &" jadi saya akan menawarkan alternatif juga.
Dengan pengaturan Anda saat ini, saya akan merekomendasikan Anda untuk melakukan booting ke Live Ubuntu CD/flash drive dan menginstal dan menjalankan boot-repair
. Klik opsi "Recommended Repair" dan ikuti instruksi yang diberikan. Bacalah dengan seksama dan baca semua perintah sebelum menjalankannya. Ini akan menimpa instalasi grub saat ini dengan yang baru yang diharapkan dapat memperbaikinya.
Saya melihat beberapa solusi:
efibootmgr
. Pada Windows saya tidak yakin, tetapi saya pikir Anda dapat melakukan booting ke dalam opsi pemulihan yang memungkinkan Anda mengkonfigurasi UEFI. Atau Anda mungkin lebih suka menginstal sesuatu seperti rEFInd.boot
.Solusi yang memungkinkan adalah mengedit file /etc/default/grub secara manual.
sudo vim /etc/default/grub
Entri default ditentukan oleh pengaturan GRUB_DEFAULT=
di /etc/default/grub. Entri menu pertama "menu entry" memiliki nilai "0". Jika Ubuntu adalah entri kedua di layar boot maka set GRUB_DEFAULT=1.
Setelah itu, Anda perlu menjalankan perintah untuk mengupdate grub config:
update-grub
Pilihan lain adalah menginstal grub-customizer dan menggunakan GUI-nya untuk mengkonfigurasi prioritas boot.