Saya menjalankan Ubuntu 12.04.
Saya tidak bisa seumur hidup saya mendapatkan menu grub (dengan opsi) untuk pergi.
Saya ingin boot otomatis ke opsi pertama. Saya telah mengedit / etc / default / grub sehingga terlihat seperti berikut:
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
Setelah ini, saya menjalankan sudo update-grub . Kemudian saya menyadari bahwa saya memiliki grub 2, jadi saya menjalankan sudo update-grub2 (keduanya membuatnya terlihat seperti mereka berhasil membuat file grub.cfg .
Saya me-restart komputer saya dan kembali ke menu grub dan hanya duduk di sana sampai saya membuat pilihan. Ini tidak diinginkan jika daya padam ... :-)
Saya juga mencoba menginstal ulang grub menggunakan sudo grub-install / dev / sda - juga tidak berhasil
sudo update-grub
dansudo update-grub2
menjalankan perintah yang sama. Jadi, jangan khawatir tentang bagian itu.cat /boot/grub/grub.cfg
via pastebin dan berbagi tautan di sini. Ini untuk melihat yang sebenarnyagrub.cfg
dihasilkan.Jawaban:
Seperti jawaban lain tunjukkan, Anda mungkin menjadi korban dari situasi gagal catatan . Mengedit
/boot/grub/grub.cfg
secara manual harus keluar dari pertanyaan karena dibuat secara otomatis. Saran lain yang terlihat adalah mengedit/etc/grub.d/00_header
tetapi kemudian bisa meminta intervensi pengguna pada pembaruan.Solusi termudah adalah mendefinisikan variabel tidak berdokumen
GRUB_RECORDFAIL_TIMEOUT
di/etc/default/grub
. Sebagai contoh:Edit
Lihat jawaban ini untuk lebih jelasnya.
sumber
update-grub
untuk menghasilkan/boot/grub/grub.cfg
file yang diperbaruirecordfail
! Anda ingin batas waktu lebih lama jika ada kegagalan booting. Untuk secara manual jelas, semua yang Anda butuhkan adalah jawaban @ sniffski ini:grub-editenv create
. Namun, mungkin ada beberapa alasan lain yangrecordfail
sedang ditetapkan ...Menggunakan:
Ini akan menghapus file lingkungan grub dan harus boot dengan jelas di lain waktu.
sumber
grub-editenv - unset recordfail
berfungsi juga dan tidak memengaruhi env lain yang mungkin ditetapkanubah
GRUB_TIMEOUT=10
ke nolIni adalah file Konfigurasi saya:
Pertama, tulis nama OS yang ingin Anda boot langsung. Milik saya adalah Ubuntu. Jadi Anda akan menuliskannya seperti di
GRUB_DEFAULT="Ubuntu, with Linux x.x.x-xx-generic-pae"
maka saya menggunakan 1 detik
GRUB_TIMEOUT=
untuk memberi saya 1 detik sebelum memilih OS default (jika saya perlu boot ke OS lain misalnya Xubuntu)seolah-
GRUB_CMDLINE_LINUX_DEFAULT=""
olah jika Anda menghapusnyaquite splash
akan menampilkan teks bukan logo Ubuntu selama proses booting (saya suka seperti ini: P)Ada solusi lain:
Ada sebuah program bernama boot-repair yang membantu dalam mengkonfigurasi dengan GUI.
seperti yang Anda lihat dari gambar. ada kotak yang disebut
Unhide boot menu
. Hapus centang pada kotak dan tekan appy. Anda dapat mengakses ini dengan mengeklik panah opsi lanjutan.untuk menginstal perbaikan boot
dan kemudian jalankan
boot-reapir
dari terminal atau dari dash.Solusi 3:
Anda dapat menggunakan aplikasi GUI yang mudah digunakan yang disebut grub-customizer untuk membuat hidup Anda sedikit mudah. Seperti namanya, Anda dapat melakukan lebih dari sekadar mengatur ulang entri menu Grub dengannya.
Anda dapat menginstalnya dengan:
seperti yang Anda lihat dari menu ada
show menu
pilihan. Hapus centang dan lihat apakah itu berfungsisumber
grub-update
setelah mengubah nilai?GRUB_HIDDEN_TIMEOUT
danGRUB_HIDDEN_TIMEOUT_QUIET
opsi sudah usang. Jadi komentari itu.Untuk melewati menu dan menunjukkannya saat hanya menahan
ESC
, tambahkan:Sampel
/etc/default/grub
'GRUB_TIMEOUT_STYLE' : Jika opsi ini disetel ke 'hitung mundur' atau 'disembunyikan', maka, sebelum menampilkan menu, GRUB akan menunggu batas waktu yang ditetapkan oleh 'GRUB_TIMEOUT' untuk kedaluwarsa. Jika ESC ditekan selama waktu itu, itu akan menampilkan menu dan menunggu input.
sumber
Saya bisa mengatasi masalah itu dengan menambahkan baris berikut ke
/etc/default/grub
... lalu berlari
sudo update-grub
.Penjelasan: File
/boot/grub/grub.cfg
ini dihasilkan dengan menjalankanupdate-grub
menggunakan file di/etc/grub.d
dan/etc/default/grub
. Karena itu Anda tidak boleh mengeditgrub.cfg
, tetapi dapat membantu untuk mengetahui mengapa batas waktu diatur. Cari baris yang dimulai denganset timeout=
dan kemudian cari baris berikutnya yang dimulai dengan### END /etc/grub.d/ ...
. Ini mungkin memberi Anda petunjuk skrip mana yang mengatur batas waktu. Dalam kasus saya, skrip os-prober bertanggung jawab atas batas waktu. Ternyata ada batas waktu 10 detik hardcoded/etc/grup.d/30_os-prober
yang tidak ditetapkan olehGRUB_TIMEOUT
. Anda dapat menonaktifkan os-prober denganGRUB_DISABLE_OS_PROBER=true
atau mengedit/etc/grup.d/30_os-prober
atau menggunakanGRUB_OS_PROBER_SKIP_LIST
untuk melewati beberapa partisi harddisk Anda (30_os-prober digunakan ketika OS lain ditemukan di suatu tempat). Lihat T&J ini untuk perincian. Seperti orang lain menunjukkan alasan lain mungkin kegagalan catatan , dalam set kasus iniGRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
.sumber
Saya punya masalah bahwa menu grub selalu muncul setelah saya menggunakan AUFS (unionfs) untuk meletakkan sistem file root hanya baca. Saya secara fisik harus menekan tombol enter di server setelah setiap boot. Saya mengikuti petunjuk di sini: nonaktifkan menu grub 2 . Karena saya tidak punya masalah sama sekali.
Edit /boot/grub/grub.cfg dan ubah:
Untuk
sumber
set timeout=-1
tidak sama denganset timeout=1
. Yang pertama adalah "tunggu selamanya", dan yang terakhir adalah "tunggu sebentar".Ubuntu saya selalu memiliki batas waktu 30 detik baik saya akan menetapkan nilai atau tidak. Berikut ini adalah bagaimana saya menemukan bahwa recordfail adalah nilai yang hilang .
1. Verifikasi skrip grub yang sebenarnya
/boot/grub/grub.cfg
IMHO, cara terbaik untuk memverifikasi apa yang akan dilakukan Grub, adalah membuka
/boot/grub/grub.cfg
. Ini adalah skrip yang dihasilkan secara otomatis dengangrub-mkconfig
menggunakan templat dari/etc/grub.d
dan pengaturan dari/etc/default/grub
.Di sekitar garis 109, Anda akan melihat sesuatu seperti:
Dalam kasus saya dengan bantuan skrip yang dihasilkan, saya bisa mengetahui bahwa
recordfail
variabel tidak disetel.2. Jika
recordfail
variabel tidak disetel, aturBuka
/etc/default/grub
di editor teks favorit Anda (misalnya vim) dan kemudian atur variabelGRUB_RECORDFAIL_TIMEOUT
ke nilai yang diberikan, misalnya 5 detik.File konfigurasi Anda akan terlihat seperti:
3. Perbarui konfigurasi yang akan dijalankan
update-grub
Langkah terakhir, perbarui konfigurasi yang akan dijalankan
update-grub
. Untuk saat ini, GRUB2 akan menggunakan batas waktu yang ditetapkan. Perintah ini akan membuat ulang/boot/grub.cfg
file.4. Verifikasi hasil skrip yang dihasilkan
Sekali lagi, buka
/boot/grub.cfg
dan periksa hasilnya di sekitar baris 109:Perhatikan bahwa nilai pada baris 109 sekarang 5 bukannya 30 seperti sebelumnya.
sumber