Bagaimana saya bisa memaksa Ubuntu untuk boot pada menu boot yang macet?

31

Saya memiliki Ubuntu Server 11.04, tetapi tidak berkepala (tidak ada monitor). Satu-satunya cara saya ingin dapat mengaksesnya adalah melalui SSH. Tapi, kadang-kadang, katakanlah setelah kehilangan daya, ketika server restart, itu akan macet pada menu boot Grub, dan itu tidak akan menghitung mundur. Itu hanya akan menggantung di sana menunggu saya untuk memilih entri boot pertama. Ini berarti saya harus pergi ke sana dan pasang monitor dan keyboard.

Tapi saya tidak bisa melakukan itu dari jarak jauh. Bagaimana saya bisa memaksanya untuk melanjutkan boot ke boot entri 1 (default) terlepas dari kehilangan daya atau apa pun?

nTautkan
sumber

Jawaban:

10

Jawaban untuk yang ini dapat ditemukan di file grub /etc/grub.d/00_header

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=${2}
fi
EOF
}

Menyetel nilai batas waktu ke -1 akan menghentikan penghitungan mundur. Ubah nilainya menjadi nilai> 0 misset timeout=10

bagian file ini akan terlihat seperti

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=10
else
  set timeout=${2}
fi
EOF
}

Lalu lari

sudo update-grub2
kebebasan fosil
sumber
Terima kasih. Apakah ini untuk bagian "make_timeout" dalam file karena saya dapat melihat sejumlah baris "recordfail" saat mencari. Jika demikian, jangan biarkan opsi "set timeout" yang kedua seperti itu (yang mengatakan "lain")?
nLinked
benar - Saya akan memperbarui jawaban untuk memperjelas
fossfreedom
Jika saya menjalankan sudo shutdown sekarang -r, tapi saya ping sistem dan perhatikan itu belum kembali online, ketika saya mematikan dan menyalakannya lagi secara manual, apakah ada tempat untuk memeriksa mengapa crash?
nLinked
apakah sudah macet di grub lagi? atau baru saja shutdown? Apakah seorang pria "mematikan" ada beberapa file di mana barang ditulis.
fossfreedom
3
Saya pikir solusi ini tidak permanen karena akan ditimpa jika paket grub menerima pembaruan. "Solusi lain" untuk menggunakan "GRUB_RECORDFAIL_TIMEOUT" lebih tepat. Jadi, saya dengan hormat menurunkan solusi ini dan meningkatkan yang lainnya.
rik-shaw
36

Pada Ubuntu 12,04, solusi yang lebih mudah, namun tetap tidak berdokumen, adalah digunakan /etc/default/grubuntuk mengganti batas waktu recordfail :

GRUB_TIMEOUT=10
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

Fakta bahwa opsi semacam itu sepenuhnya tidak berdokumen terlalu buruk.

EDIT

Sebenarnya, dukungan untuk GRUB_RECORDFAIL_TIMEOUTditambahkan di tengah siklus 12,04, mulai dari versi 1.99-21ubuntu3.3:

  grub2 (1.99-21ubuntu3.3) precise-proposed; urgency=low

[ Ben Howard ]
* Parameterization of recordfail setting. This allows users to define the
  default time out of GRUB when recordfail has been set. The curren
  setting causes hangs on headless and appliances where access to the
  console is limited or prohibited.  (LP: #669481)  [1]

-- Louis Bouchard <[email protected]>  Tue, 21 Aug 2012 10:51:58 +0200

Informasi lebih rinci dari LaunchPad .

C2H5OH
sumber
Setelah melakukan perubahan, jalankan juga update-grubuntuk menghasilkan /boot/grub/grub.cfgfile yang diperbarui
Colt