Ubuntu 18.04'te GRUB zaman aşımı 0 olarak nasıl ayarlanır?


11

Grub config dosyasını zaman aşımı için 0 değerine güncellemeye çalıştım, böylece işletim sistemi hızla başlıyor. /etc/default/grubUbuntu 18.04 üzerinde yapılandırma dosyasını değiştirdim ve daha sonra çalıştırdım:

sudo update-grub

ve işe yaramadı. Ayrıca koştum:

sudo grub-mkconfig
sudo update-grub

ama işe yaramadılar.

Bu sorunu çözmek için web'de çok şey aradım, ancak tüm kılavuzlar grub /etc/default/grubdosyasını config dosyasına göre güncellemek için update-grub komutunu çalıştırmayı söylüyor . Grub dosyalarını farklı bir şekilde işleyen Ubuntu 18.04 olup olmadığını bilmiyorum, ancak grubumu parametrelerimle güncelleyemiyorum.

Bu benim /etc/default/grubdosyam:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

3
Lütfen sorunuzu düzenleyin ve değiştirilmiş grub config dosyanızı ekleyin. Aksi takdirde ne yaptığınızı tahmin etmeye çalışıyoruz.
Organik Mermer

Yüklü başka dağıtımlarınız var mı (çift önyükleme)?
mook765

işe yaramadı zaman grub zaman aşımı varsayılan olarak @ 10 saniye olarak ayarlandı @Melebius
Bob91

Aynı ssd ve diğer hdd yüklü diğer dağıtımları pencereler var, ama geçen ay fedora 27 (ubuntu 18 yerine) vardı ve grub yapılandırma dosyasını değiştirdiğimde çalıştı, bu yüzden diğer dağıtımların nedenleri olmadığını düşünüyorum bu davranış @ mook765
Bob91

1
Çalıştırmak bilgi verebilir misiniz Boot-info ve düzenlemek onun açılan bilgi günlüğüne bir bağlantı eklemek sorunuzu? Teşekkürler.
David Foerster

Yanıtlar:


13

Gelen /boot/grub/grub.cfgdosyanın neredeyse dosyanın sonuna bir durum olduğunu kümeleri, 0'a zaman aşımı ayarlarsanız zaman aşımı Başka bir deyişle, 0'a ayarlanırsa 10'a aşımı /etc/default/grubve daha sonra güncelleme grub koşulu yukarıda, 10 saniyeye sıfırlayın.

if [ "${timeout}" = 0 ]; then
     set timeout=10
fi

Ancak, /boot/grub/grub.cfgsalt okunur bir dosyadır ve bu koşulu kaldıramıyorum. Zaman aşımının farklı değerleriyle bazı testler yaptım /etc/default/grub. 1ms (0.001), 0.1s ve 1s ile denedim ve 1'in altındaki değerlerin (0.1 ve 0.001 gibi) aynı şekilde ve neredeyse 0'a ayarlanmış zaman aşımı gibi çalıştığını öğrendim.


work in the same way and almost like timeoutçünkü bash'deki matematik sadece tamsayıları destekler. Fark yaratacak en kısa zaman aşımı 1.
Marcin Orlowski

6

Benim durumumda, sorun benim sistem 30 saniyelik bir zaman aşımı varsayılan grub.cfg eklenmesini ayrı bir blok neden "kayıt başarısız" desteklemiyordu. İlgili kod /etc/grub.d/00_header:

if [ "$recordfail_broken" = 1 ]; then
  cat << EOF
if lsefi; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
  if [ x\$feature_timeout_style = xy ] ; then
    set timeout_style=menu
  fi
fi
EOF

Düzeltme için bir değer eklemek için basitçe GRUB_RECORDFAIL_TIMEOUTiçinde /etc/default/grubve çalıştırın update-grubtekrar. Örneğin:

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Adjusted timeout for system which doesn't support recordfail
GRUB_RECORDFAIL_TIMEOUT=2

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

3

Diğer cevapların dediği gibi, rahatsız GRUB_HIDDEN_TIMEOUTve koş update-grub. Sonra yorum

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

bölümünde /boot/grub/grub.cfg. Vim'de salt okunur özelliği bir ünlem işaretiyle geçersiz kılabilirsiniz :x!. Veya koşabilirsin

sudo chmod +w /boot/grub/grub.cfg
sudo vim /boot/grub/grub.cfg
sudo chmod -w /boot/grub/grub.cfg

dosyayı düzenlerken geçici olarak yazma iznine sahip olmak.


3
Haklısın, ama her zaman güncelleme grub (el ile veya herhangi bir os yükseltme olduğunda) /boot/grub/grub.cfgyukarıdaki koşul ile yeniden yaratacak düşünüyorum.
Bob91

2
Bu doğru, yakın zamanda deneyimlediğim gibi dosyanın üzerine yazılır.
asantas93

1

Sen ayarlayabilirsiniz GRUB_TIMEOUTiçin 0.

Parça üzerine yazma zaman aşımı değeri, ajust_timeoutüst kısmındaki işlevde yazılır /etc/grub.d/30_os-prober.

ajust_timeout () {
...
if [ "\${timeout}" = 0]; then
  set timeout=10
fi
...
}

Böylece, dosyayı düzenleyerek değeri ayarlayabilir ve if-block'u yorumlayabilirsiniz.


1

Sen ayarlayabilirsiniz GRUB_TIMEOUTiçin -1.

Ör:GRUB_TIMEOUT="-1"


'GRUB_TIMEOUT' Bir tuşa basılmadığı sürece, menü görüntülendikten bu kadar saniye sonra varsayılan girişi başlatın. Varsayılan '5'dir. Menüyü görüntülemeden hemen önyükleme yapmak için '0', süresiz beklemek için '-1' olarak ayarlayın. komuttaninfo -f grub -n 'Simple configuration
Vijay

1

Uncomment GRUB_HIDDEN_TIMEOUT=0ve update-grubtekrar çalıştırın .


işe yaramıyor
Bob91

GRUB_HIDDEN_TIMEOUT = -1
kuhajeyan

1
GRUB_HIDDEN_TIMEOUT=-1Ubuntu 18.10 üzerinde çalıştı.
Manish Raj

0

Basitçe satırı ekleyebiliriz

set timeout=0

ile /etc/grub.d/40_customdosyayı yürütülebilir

chmod +x /etc/grub.d/40_custom

ve koş

sudo update-grub

yeni /boot/grub/grub.cfgdosya oluşturmak için . set timeoutGeçen olduğu katma -Komut set timeoutiçinde komutundan /boot/grub/grub.cfgneyi sayar olduğunu, şimdi.


-1

Çözüm,

GRUB_RECORDFAIL_TIMEOUT=0

için /etc/default/grub.

Diğer tüm çözümler grub güncellemelerinde sıfırlanacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.