GRUB menümü nasıl gizleyebilirim? VE shift veya esc tuşlarının önyükleme sırasında gizli GRUB menüsünü göstermesini sağlayabilirim


10

Ubuntu 16.10 kullanıyorum ve GRUB menümü açılış / önyükleme zamanında gizlemeye çalışıyorum ve menünün yalnızca Shiftveya Esctuşlarına bastığımda görünmesini diliyorum .

İçindeki uygun seçenekleri değiştiriyorum /etc/default/grubve hala menüyü gizlemiyor.

Bunu araştırırken, 2013 GRUB gizli menüsünden bu yazıyı buldum , sorunun bir süredir devam ettiğini gösteren ve /etc/grub.d/30_os-proberyapmamayı tercih ettiğim bir değişiklik olduğunu gösteriyor . Bu kod, birden fazla işletim sistemi bulunduğundan beri GRUB_TIMEOUT=10yine de ayarlanacağını gösteriyor .

İşte şimdi sahip olduğum bir parçacık /etc/default/grub... 10 saniyelik geri sayım içeren bir menü ...

GRUB_DEFAULT = kaydedildi
GRUB_SAVEDEFAULT = true
GRUB_HIDDEN_TIMEOUT_QUIET = true
# GRUB_HIDDEN_TIMEOUT = 0
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || yankı Debian`
GRUB_CMDLINE_LINUX_DEFAULT = "sessiz sıçrama"

Ben yorumsuz #GRUB_HIDDEN_TIMEOUT=0, o zaman sudo update-grubben de set ısrar GRUB_TIMEOUT=10etmek GRUB_TIMEOUT=0. Bunu yapıyorum ve hala GRUB menüsünü görüyorum.

Olarak terminal, yazarak info -f grub -n 'Simple configuration'çeşitli seçenekler açıklanmıştır ve bilgi en sonunda, bu gösterileri şimdiki bazı komutları amorti edildiğini ve yeni değiştirmeler daha iyi olduğunu göstermektedir.

Ben 16.10 postundan benim GRUB menüsünü nasıl alabilirim bilen var mı VE tanımadığı sahip Shiftveya Escönyükleme işlemi sırasında tuşlarına?


Bunu sorduğun için memnunum. Benimkini de çalıştıramadım ve bu, kutunun ikili bir bot olmasından kaynaklandığını doğruladı.
Organic Marble

1
@OrganicMarble Sorun birden fazla işletim sistemiyle ilgilidir. Test etmek için, /etc/grub.d/30_os-prober içindeki kodun bu bölümünü değiştirdim ve hiçbir menüm olmamasına rağmen, önyükleme sırasında vardiya veya esc içeren bir menüyü zorlayamadım. Hala üzerinde çalışıyor.
heynnema

Cevabımla ilgili hatalarla ilgili biraz daha bilgi ekledim, sorunun doğasını daha iyi anlamanıza yardımcı olabilirler. Ben de Grub2 koduna bakıyorum - yardım etmeye çalışıyorum :)
xtrchessreal

Genel Ayarlar Sekmesini bu sırayla kullanmadıysanız Grub Customizer'ı kullanmayı deneyin - 1 "Diğer işletim sistemlerini ara" kutusunun işaretini kaldırın ve 2 "menü göster" seçeneğinin işaretini kaldırın ve kaydedin. Bunu test edin ve "Shift" in menüyü getirip getirmeyeceğini ve ardından hiçbir şey basılmazsa ne olacağını görün.
xtrchessreal

Değiştirmek istemediğinizi anlayabiliyorum /etc/grub.d/30_os-proberama gerçekten zararı görmüyorum. Gerekirse tersine çevirmek için bir kopyasını yedekleyebilir veya değişikliklerinizi yorumlayabilirsiniz. Geçici çözüm bulduğunuz anda en makul çözüm gibi görünüyor.
Elder Geek

Yanıtlar:


7

Tamam millet, işte cevap ... çift önyükleme yapılandırmalarında gizli bir GRUB menüsü elde etmek için ... iki düzenleme ... ve bir sudo update-grub...

Düzenleme # 1

Çoklu önyükleme yapılandırmasında gizli bir GRUB menüsü elde etmek için önce düzenlememiz gerekir /etc/default/grub. Aşağıdaki komutu kullanarak bu dosyayı açın:

sudo editor /etc/default/grub

Dosya açıldıktan sonra bu satırları değiştirin

GRUB_HIDDEN_TIMEOUT_QUIET=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

bunlarla:

GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT_STYLE=countdown
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=3

Bu, GRUB'un ekranda 3 saniyelik bir geri sayım zamanlayıcısı görüntülemesine neden olur. Bunu yaparak, kullanıcı Escvarsayılan menüyü açmak için tuşa basabilir. Aksi takdirde, varsayılan işletim sistemi önyüklenir.

Varsayılan işletim sisteminin son önyüklenen işletim sistemine ayarlanmasını istiyorsanız, yukarıda gösterilen "GRUB_TIMEOUT = 3" altına aşağıdaki iki satırı ekleyin:

GRUB_DEFAULT=saved    # change an existing line to this
GRUB_SAVEDEFAULT=true # add this line

Düzenle # 2

Ardından, quick_boot özelliğini devre dışı bırakmak için OS probunun güncellenmesi gerekir. Bunu yapmak /etc/grub.d/30_os-proberiçin, favori düzenleyicinizde açın ve aşağıdaki satırı (17.04'te 23. satır) yerine 1a ile değiştirin 0:

quick_boot="1"

İşiniz bittiğinde satır şöyle olmalıdır:

quick_boot="0"

Dosyaları kaydedin ve önyükleyiciyi yeniden yapılandırmak ve değişikliklerinizi uygulamak için aşağıdaki komutu çalıştırın:

sudo update-grub

Başardı! +1.
Organik Mermer

İyi bir çözüm gibi görünüyor :) Şimdi bu konuda basit bir sorum var. GRUB_TIMEOUT öğesini "3" yerine "1" olarak değiştirirseniz, daha hızlı önyükleme yaparsınız. Ve eğer varsa, bu kodun nasıl çalıştığını okuyabileceğiniz bağlantılar sağlayabilir misiniz? Ben bu kodun ne yaptığını ve işlev çağrıları dizisi vb anlamak istiyorum. Çok takdir etmek. Kendi sorularınızı çözebilmeniz güzel - bu konuda iyi bir iş.
xtrchessreal

@xtrchessreal evet, 3'ü 1'e değiştirmek 2 saniyeyi kısaltır. İstersem elimi Esc anahtarına götürmem için 3 saniyenin yeterli zaman olduğunu düşündüm. Daha info -f grub -n 'Simple configuration'fazla bilgi için bakabilirsiniz .
heynnema

Q için +1 ve A için +1. Son iki gece bunu 30_os uygun şekilde her türlü saç beyinli modifikasyonla googling ediyorum, 31_blah_blah oluşturma ve 40_custom'i boşuna yaratma. Bu AU, ArchLinux, Fedora ve diğer birçok yerde.Daha fazla oy istiyorsanız, burada AU'daki tüm yanlış cevapları takip etmenizi (çok var) ve bunları bunun bir kopyası olarak kapatmak için oy vermenizi ve ardından bana ping yapmanızı öneririm ( @ me) AU genel sohbet odasında kopyaya bir bağlantı ile ben de oy vereceğim. Bu harika araştırma ve çalışma çözümü için teşekkürler! :)
WinEunuuchs2Unix

@ WinEunuuchs2Unix Güzel yorum ve oylar için teşekkürler! Hiç kimsenin zarif bir çözümü veya herhangi bir çözümü olmadığını keşfetmeden önce kendim çok araştırma yaptım ... ama kararlıydım :-)
heynnema

3

Bu sorunun Grub2 wiki bu alıntıya göre birden fazla işletim sistemi nedeniyle olabileceğine inanıyorum :

Başka bir işletim sistemi algılanmazsa GRUB 2 doğrudan varsayılan işletim sistemine önyükleme yapar ve hiçbir menü görüntülenmez. Başka bir işletim sistemi tespit edilirse GRUB 2 menü olacaktır görüntüler.

VE

/ OS / default / grub'da GRUB_DEFAULT = kaydedilmiş olarak ayarlanmışsa, işletim sistemi tasarrufu sudo grub-set-default çalıştırılarak sağlanabilir. / Etc / default / grub'da GRUB_SAVEDEFAULT = true değeri de ayarlanmışsa kaydedilebilir. Bu durumda, varsayılan işletim sistemi GRUB 2 menüsünden yeni bir işletim sistemi manuel olarak seçilene veya grub-set-default komutu yürütülene kadar kalır.

Grub2 Wiki ayrıca şunları da belirtir: Not: GRUB 1.97 ila GRUB 1.99'daki gizli menü özelliğinde uzun süredir onaylanan bir hata var. Menü, bu sayfadaki açıklamada belirtildiği gibi gizlenmeyebilir. 30_os-prober komut dosyasını düzenlemek bu sorunu çözebilir, ancak bu sayfanın kapsamı dışındadır.

Etrafında bir çalışma olarak ayarlayabilirsiniz GRUB_TIMEOUT="1"ve sadece 1 saniye için menü göreceksiniz. Başka bir işletim sistemine geçmem gerekirse, o saniye içinde aşağı ok tuşuna basarım ve bir seçim yapana kadar menü görünecektir.

Hata ile ilişkili potansiyel bir sözdizimi sorunu olabilir. Ben bir Grub2 uzman değilim ama benim grub dosyasında her komut satırı = "bazı alıntı ayarı" ile biter Kodlama günlerimden "tırnak" olmayan tırnaklar değişkenlere basit sayısal değerler geçiyordu bir dize geçmek olduğunu hatırlıyorum. Ben yeni kod teknikleri UP değilim . eg İşte benim grub çıktı bazı:

# 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="Ubuntu"
#GRUB_HIDDEN_TIMEOUT="0"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="1"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT=""
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"

Daha fazla bilgi için bu Grubbug :) içine bakıyorum Bu Bug Her ikisi de Grub2 ile ilgili 2yrs eski. Bunlardan bazıları Grub2'ye devredilmeden önce MBR koduyla ilgili olabilir


Yanıtınız için teşekkürler. Zaten SAVEDEFAULT yöntemini kullanıyorum. TIMEOUT = 1 kesinlikle menü görünüm süresini kısaltır. Sorun birden fazla işletim sistemiyle ilgilidir. Test etmek için, kodun o kısmını değiştirdim /etc/grub.d/30_os-proberve hiçbir menüm olmasına rağmen, önyükleme sırasında vardiya veya esc ile bir menüyü zorlayamadım.
heynnema

Bağladığınız hatalar alakalı görünmüyor mu veya bir şey mi kaçırıyorum?
Elder Geek

@ElderGeek # 1401318 hata ile ilgili olarak TJ'ye atanan kişi "uyku - kesintisiz $ zaman aşımı" vb. Belirttiği gibi MBR'den Grub'a olan davranışı açıklar. sorunun en azından bir kısmının ne olduğunu göreceksiniz. Aynı zamanda sorunları benzer hata # 425979 atanır. Her iki hata, gizli olarak ayarlandığında Grub menüsünü ÇALIŞTIRMAK için shift tuşunu basılı tutarak uğraşır. OP de bunu çözmeye çalışıyor. Umarım bu, bağlantıların neden gönderdiğim cevabımda olduğunu açıklar.
xtrchessreal

Kafamı affedin. Soruyu "GRUB menümü nasıl gizleyebilirim" diyerek okudum. Açıkladığınız için teşekkürler. Bu yorumu kaçırmış olmalıyım.
Elder Geek

@ElderGeek aslında soru, "nasıl benim GRUB menüsü gizlenmesine olsun, olabilir VE vardiya veya esc tuşlarına önyükleme sırasında gizli GRUB göstermek zorunda". Saklanmayı başardım. Vardiya veya esc tuşlarını çalıştıramadım. Görünüşe göre bu sorun 2013'e veya öncesine kadar gider ve sadece çoklu önyükleme yapılandırmalarını etkiler.
heynnema

3
  1. Sanırım 'her şeyi' denemek istiyorsun /etc/default/grub. Bu bağlantıyı okudun mu,

    help.ubuntu.com/community/Grub2/Setup#Configuring_GRUB_2

  2. Aşağıdaki satırları kaldırmayı denemenizi öneririz /boot/grub/grub.cfg,

    ...
    set timeout_style=menu
    if [ "${timeout}" = 0 ]; then
      set timeout=10
    fi
    ### END /etc/grub.d/30_os-prober ###
    

    Evet, biliyorum, her update-grubçalıştığında bunu yapmak zorunda kalacaksınız, ama bunun için bir senaryo yapabilirsiniz.


Yanıtınız için teşekkürler. Bu bağlantıya bir göz atacağım. Ben de her zaman grub.cfg düzenlemek zorunda kalmayacak şekilde /etc/grub.d/30_os-prober değiştirmek için bir yol bulmuştu.
heynnema

Bu çok mantıklı bir sistemde olduğu gibi, bu kodun zaman aşımını 0'dan 10'a değiştirdiği anlaşılıyor. HIDDEN_TIMEOUT'u yeniyor gibi görünüyor ....
Elder Geek

@heynnema değişikliklerinizi os-prober'e gönderebilir misiniz? Sorunuzdaki bağlantıya baktığımda ve os-prober'imdeki kodla karşılaştırıldığında, satır numaraları mantıklı değildi, bu yüzden os-prober'in o zamandan beri değiştiğini ve onunla uğraşmaktan korktuğumu varsayıyorum.
Organik Mermer

1
@OrganicMarble sorumun güncellemesine bakın. Belki bazı / tüm modlarımı deneyebilir ve ne bulduğunuzu görebilirsiniz.
heynnema

@sudodus lütfen cevabımı gör
heynnema
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.