Jadikan grub menyimpan boot defaultnya di bawah pembaruan kernel

11

Saya dual-boot mesin saya dan saya ingin secara default untuk boot ke windows sehingga setiap kali saya me-restart mesin dari jarak jauh dari rumah saya itu akan dapat kembali ke Windows (bukan Ubuntu).

Masalahnya adalah bahwa setiap kali Ubuntu meningkatkan kernel, saya harus mengatur ulang item boot default grub kembali ke windows. Ini karena pemuat menu grub menggunakan posisi yaitu 6 untuk OS default untuk boot. Dan ketika Ubuntu menginstal kernel baru itu mengubah urutan itu.

Saya mencari cara untuk mengkonfigurasi grub untuk mengingat item boot default di bawah pembaruan kernel.

pemrogram ulang
sumber

Jawaban:

9

Grub 1 (Ubuntu 9.04 dan yang lebih lama)

Saya menemukan cara termudah untuk melakukan ini adalah dengan memindahkan entri boot Windows di atas entri Ubuntu di /boot/grub/menu.lst. Secara default, file konfigurasi Grub diletakkan seperti ini:

  1. opsi dasar
  2. konfigurasi kernel auto-magic debian (termasuk utilitas seperti memtest86 + secara default)
  3. OS lain yang terdeteksi

Bagian 2 dibatasi oleh baris-baris ini di file konfigurasi:

### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST

Entri untuk OS yang terdeteksi secara otomatis (misalnya, Windows) ditempatkan setelah bagian ini. Ketika Anda menginstal kernel baru, bagian 2 adalah satu-satunya bagian yang diubah. Sehingga memindahkan OS autodetected ke suatu tempat sebelum yang BEGINgaris akan menempatkannya di mana jumlah entri tidak akan berubah ketika kernel baru terinstal.


Grub 2 (Ubuntu 9.10 dan yang lebih baru)

Dengan Grub2, seluruh file konfigurasi dibuat lagi kapan saja update-grubdijalankan, jadi pengeditan /boot/grub/grub.cfgtidak akan memperbaiki permament. Bagaimana file itu dihasilkan ditangani oleh file /etc/default/grubdan skrip di /etc/grub.d/*. Jadi kami memodifikasi konfigurasi dengan memodifikasi file-file yang mengontrol setiap bagian dari configfile, kemudian menjalankannya update-grubkembali.

Saya /etc/grub.dmenyertakan file-file ini:

  • 00_header
  • 05_debian_theme
  • 10_jam
  • 10_linux
  • 20_memtest86 +
  • 21_memtest86
  • 30_os-prober
  • 40_custom

Ini adalah shellscripts yang bisa dijalankan dalam rangka untuk menghasilkan file konfigurasi. Entri boot Windows dihasilkan oleh 30_os-prober, yang dijalankan setelah entri boot linux dibuat 10_linux. Jadi ganti nama 30_os-probermenjadi sesuatu yang kurang dari 10, dan jalankan kembaliupdate-grub

mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub

Sekarang entri Windows Anda harus menjadi entri pertama, dan Anda dapat mengaturnya sebagai entri boot default ( GRUB_DEFAULT=) di /etc/default/grub.

quack quixote
sumber
2

Ikuti instruksi di blog saya di sini untuk menggunakan bootloader Windows yang bersih untuk pekerjaan Anda. Saya menggunakannya sekarang, dan ketika saya memulai PC, saya memiliki dua opsi:

Windows Vista Ubuntu 10.04

Tidak ada kekacauan lainnya. Anda dapat mengatur banyak opsi berbeda untuk itu juga. Jika saya tidak menekan apa pun selama 5 detik, Windows boot up.

Semoga berhasil.

Antrikshy
sumber
tautan itu hampir mati
tshepang