Bagaimana saya bisa membuat grub2 mem-boot opsi yang berbeda hanya pada boot berikutnya?

19

Saya sedang menyiapkan mesin dual boot tanpa kepala Linux / Windows. Saya kebanyakan ingin mesin selalu boot ke Ubuntu, kecuali kadang-kadang ketika saya perlu menguji sesuatu di windows.

Saya telah menginstal Windows dan Ubuntu, dan saat ini boot ke Ubuntu setiap saat. Saya ingin dapat memerintahkannya untuk boot ke Windows hanya pada boot berikutnya dan kemudian ketika saya restart dari Windows, sistem kembali ke mem-boot Ubuntu.

Saya menemukan Grub Legacy - bagian 4.3.1 - Booting sekali saja tetapi saya menggunakan server Ubuntu 14.04 yang memiliki versi grub yang lebih baru. Dari apa yang saya baca, saya perlu membuat beberapa perubahan /etc/default/grubdan menggunakan sudo grub-set-defaultketika saya ingin boot ke Windows.

Saya pikir perubahan itu dimulai dengan menambahkan ini ke /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=false

Setiap kali perubahan dibuat untuk /etc/default/grubsaya tahu bahwa saya perlu menjalankan
sudo update-grubdan yang menghasilkan:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-43-generic
Found initrd image: /boot/initrd.img-3.13.0-43-generic
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

Karena Windows adalah pilihan ke-7 dalam daftar itu, saya yakin saya akan menjalankan sudo grub-set-default 6(penghitungan berbasis 0) - apakah ini benar dan apakah ada metode yang berbeda untuk mendapatkan daftar pilihan booting bernomor setelah sistem sudah boot?

Juga, apakah garis-garisnya /etc/default/grubmemadai untuk mencapai perilaku ini atau apakah saya perlu menambahkan konfigurasi tambahan?

cwd
sumber

Jawaban:

19

Anda perlu memastikan bahwa Anda memiliki GRUB_DEFAULT=savedkonfigurasi grub Anda (yang dibuat secara otomatis, Anda mengubah bagian ini dengan mengedit / etc / default / grub). sudo update-grubuntuk mengaktifkan perubahan dan kemudian gunakan sudo grub-reboot $1.

grep -i "menuentry '" /boot/grub/grub.cfg

Akan memberi Anda menuentries yang dapat Anda tempel dengan $ 1. Atau, seperti yang Anda perhatikan, pilihannya adalah indeks-nol, sehingga menu-n menu bisa didapat dengan meneruskan (n-1) ke grub-reboot.

Lihat misalnya

Tidak diuji oleh saya karena saya tidak memiliki instalasi 'Windows 7'.

pbhj
sumber
terima kasih saya pikir inilah yang saya butuhkan (dengan perincian tambahan yang saya temukan di help.ubuntu.com/community/Grub2 )
cwd
Jika Anda kebetulan mencoba ini tanpa mengubah garis ke GRUB_DEFAULT=saved, Anda harus melakukan ini secara manual nanti seperti dijelaskan di sini pada paragraf kedua untuk Grub2 dan kemudiangrub-set-default 0; grub-reboot 0
rubo77
1
perintah untuk menunjukkan nomor entri:grep -i "menuentry '" /boot/grub/grub.cfg|sed -r "s|--class .*$||g"|nl -v 0
rubo77
1
Sesuai askubuntu.com/questions/838704/grub-reboot-to-specific-kernel , versimenuentry di bawah submenuin /boot/grub/grub.cfgharus diteruskan ke grub-rebootas SUBMENU>MENUENTRY. Jadi, misalnya, menggunakan beberapa bash-fu yang mirip dengan @ rubo77's, saya ingin mem-boot menuentry7, namun entri ini berada di bawah submenuyang merupakan entri kedua di menu tingkat atas, jadi saya harus meneruskan '1>6'(tanda kutip tunggal untuk menghindari shell menafsirkan>).
Trent Nelson
1
PERINGATAN: Ini tidak berfungsi jika Anda mem-boot partisi BTRFS. Grub harus dapat menulis ke grubenv saat boot windows, ia tidak dapat menulis ke BTRFS. File ini biasanya disimpan di / boot / grub dan dapat dilihat dengan grub-editenv. Saya memperbaiki sistem saya dengan menginstal BTRFS di /, partisi EXT4 di / boot, dan kemudian partisi EFI di / boot / efi.
nathan
-2

Coba instal grub-customizer (panduan instalasi di bawah) ke sistem Ubuntu Anda. Alat GUI ini akan memberi Anda satu set opsi yang bagus dengan Anda dapat mengonfigurasi pengaturan GRUB Anda, termasuk nama dan urutan opsi boot, sistem default, resolusi layar, font, latar dll. ...
Saya tidak yakin apakah ia memiliki kemampuan untuk mengarahkan mengatur apa yang Anda inginkan, tetapi setidaknya itu dapat menunjukkan nomor os. Mereka dapat dirujuk dengan nama mereka juga, saya pikir.

Cara menginstal grub-customizer:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

(sumber: launchpad - daniel richter )

Komandan Byte
sumber
Saya melihat alat itu, tetapi saya menggunakan server Ubuntu 14.04 (tidak ada GUI) jadi saya ingin memiliki solusi baris perintah.
cwd
Oh, tidak tahu ini. Saya menggunakan standar 14.10 (Persatuan) dan saya pribadi lebih suka GUI untuk pekerjaan seperti ini. Apakah Anda tahu situs ini ? Ini menjelaskan tentang apa yang Anda tulis dalam pertanyaan Anda, tetapi jika berbeda dari sumber pertama Anda, mungkin di sana Anda menemukan apa yang sebenarnya Anda butuhkan.
Byte Commander
-1 - Saya menurunkan jawaban Anda karena saya ingin tahu apakah Anda membaca pertanyaan sama sekali. Saya dapat memahami bahwa Anda mungkin telah melewatkan 'server ubuntu' di sana tetapi Anda baru saja memposting tautan yang sama yang saya sertakan dalam pertanyaan saya di komentar terakhir Anda ...
cwd
Ups. Tapi apakah Anda pikir setiap kali saya menulis komentar atau jawaban baru saya membaca kembali seluruh pertanyaan dan posting sebelumnya, memeriksa setiap tautan !? Selain itu, Anda juga dapat menginstal DE di distro server! Saya mengakui bahwa saya bukan ahli (belum), tetapi setidaknya saya mencoba membantu orang lain di mana saya bisa, bahkan jika jawabannya tidak selalu 100% benar atau berguna. Anda harus senang bahwa ada orang yang mencoba membantu Anda memecahkan masalah ini, tetapi jika Anda ingin membuat saya marah, Anda berhasil. Satu hal terakhir: yang Anda bicarakan GRUB_SAVEDEFAULT=false, tetapi saya tidak dapat menemukan ini di tautan kami. Dan Anda lupa baris lain yang disebutkan di sana!
Byte Commander