GRUB2 menüsünü gizle UNUTMAYI basılı tutun Shift tuşu: Bu nasıl gerçekleşir?


32

Bir Ubuntu - Windows 7 çift önyükleme kurulumum var ve önyüklemeden hemen sonra Shift tuşuna basıp seçebileceğim Grub2 menüsünü açmazsam, dizüstü bilgisayarımın Windows 7'yi başlatmasını istiyorum. Ubuntu.

Grub2 ve seçeneklerini araştırdım ve ve değerleriyle etc/default/grubbirlikte oynamaya çalıştım , ama boşuna. Her iki geri sayımın aynı anda başladığını düşündüğümden daha yükseğe ayarlamayı denedim , ancak hayır - sadece diğerinin bitmesinden sonra başlar.GRUB_TIMEOUTGRUB_HIDDEN_TIMEOUTGRUB_HIDDEN_TIMEOUTGRUB_TIMEOUTGRUB_TIMEOUT

Bu davranışa ulaşılabilir mi?

Öyleyse nasıl?


1
Bunu yapma zaman aşımını 0 olarak ayarlıyorum (Grub Customizer kullanarak ayarlayın). Bios'umdan hemen sonra vardiya tutmadığım ve ardından menüyü görüntüleyemediğim sürece GRUB2 menüsü görünmüyor. sudo add-apt-repository ppa: danielrichter2007 / grub-customizer sudo apt-get güncellemesi sudo apt-get grub-customizer'ı kur
Ryan McClure

Anladığım kadarıyla bu bazı kurulumlar için varsayılan davranış
RobotHumans

@RyanMcClure Zaman aşımı süresini 0'a manuel olarak ayarlamayı denedim, ancak sağa Shift tuşunu basılı tuttuğunuzda Grub2 menüsünü hiç açmıyor.
Bez Hermoso,

Yanıtlar:


15

Sanırım daha basit bir çözünürlük buldum. / Etc / default / grub dosyasında aşağıdaki satırları değiştirin:

GRUB_HIDDEN_TIMEOUT = 0.0

GRUB_TIMEOUT = 0.0

Tabii ki sonunda bir güncelleme grubunu çalıştırdık. Bilgisayarımda çalışıyor.


6
O çizik. Bu bana grub menüsünü vermiyor ama aynı zamanda shift tuşuna basarak da alamıyorum.
zorkerz

9

Bu Ubuntu 16.04 içindir.

Bunu, yukarıda bulunan bazı cevapların küçük bir kombinasyonu ile çözdüm, bu yüzden 30_os-prober'ı değiştirmek gerekmiyor, grub paketi güncellendiğinde gelecekteki birleşmelerden kaçınıyordum ...

Umarım yardımcı olur.

İsteğimi yansıtmak için / etc / default / grub içindeki bazı değişkenler değiştirildi;

GRUB_DEFAULT=4
GRUB_HIDDEN_TIMEOUT=5
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=""

GRUB_FORCE_HIDDEN_MENU="true"
export GRUB_FORCE_HIDDEN_MENU

Sonra yeni bir dosya oluşturuldu;

sudo touch /etc/grub.d/50_hidemenu
sudo chmod +x /etc/grub.d/50_hidemenu

bu içerikle doldurdum;

#!/bin/sh
cat <<EOF
if [ "x\${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
      set timeout=0
    fi
  fi
fi
EOF

ve güncellenmiş grub;

sudo update-grub

Şerefe.


Benim için çalışmıyor
Menasheh

Bunu sadece 16.04'te test ettim. Farklı bir sürümde misiniz?
tux1c

16.10 olmuş olabilir. Haklısın, kesinlikle bundan bahsetmeliydim.
Menasheh

Debian'da da
sıkılıyor

7

Kubuntu 14.04'te, bu işe yaramazsa, GRUB_TIMEOUT= 0garip bir şekilde, bunu uyguladıktan ve yeniden başlattıktan sonra grub menüsü 10 saniye boyunca görünür kalır.

Bunun nedeni, başka bir grub betiğinde, grub_timeout değerini 0 değerine sahipse, 10'a ayarlayan bir kod parçasının bulunmasıdır.

Demek işim bu şekilde başladı:

her ikisinin bir kopyasını yapmak grubve 30_osproberdosyaları !!! Bir şeyler ters gittiğinde, orijinal dosyaları geri koyabilirsin

İçinde /etc/default/grub

GRUB_DEFAULT=4    #set this value to the OS you want to boot
GRUB_HIDDEN_TIMEOUT=0

GRUB_TIMEOUT=0

içinde/etc/grub.d/30_os-prober , işte sıfıra ayarlanırsa setleri 10s zaman aşımı grub bu kodu bir parça /etc/default/grub, ben Devs orada koymak neden bilmiyorum, ama bu grub menüsünü gizleme önler.

set timeout_style=menu

if [ "\${timeout}" = 0 ]; then    
  set timeout=10  # I changed this from 10 to 0

Bu değişikliklerden sonra sudo update-grub, yeni grub önyükleme sırasını oluşturmak için çalıştırın .

Tüm Linux düzeltmelerimi / modlarımı https://sites.google.com/site/marcshomesite/Home/linux-tuning adresinde belgeliyorum


Sana sonra boşluk koymadı umut =içinde GRUB_TIMEOUT= 0.
muru

4

GRUB menüsünden seçim yapmak zorunda kalmadan Windows'u otomatik olarak başlatmak için, /etc/default/grubdosyayı aşağıdakine benzer değerlerle düzenlemeniz gerekir :

GRUB_DEFAULT= <number of default entry starting from 0>
GRUB_TIMEOUT= 0 # time in seconds to boot default
# GRUB_HIDDEN_TIMEOUT=0 # warning: activating this may lock you out from GRUB menu

Düzenlemeden önce bu dosyaların yedeklerini almak her zaman iyi bir fikirdir. Değişiklik yaptıktan sonra bunları etkinleştirmek zorundayız.

sudo update-grub

GRUB_DEFAULT değerleri bireysel sistemimize bağlıdır. Windows'u her zaman önyüklemek için, alternatif olarak "Microsoft Windows XP Professional", giriş numarası yerine Grub menüsünde (örn. ) Gösterildiği gibi giriş adını da koyabiliriz .


Önemli not: bazı makinelerde GRUB menüsü Shift, önyüklemede sol tuşa basıp basılı tutarak görüntülenemez (bkz. Hata # 425979 ). Bu nedenle, bunu varsayılan işletim sistemi olarak ayarlanmış Ubuntu'yu (Windows değil) önyükleme ile ilk sınamak iyi bir fikir olabilir. Ardından, etkilenmeniz durumunda GRUB ayarlarınızı kolayca geri alabilirsiniz.


Bu Ubuntu'yu insanca engelsiz hale getirmiyor mu, yoksa önyüklemeyi kesmek ve istediğimde Ubuntu'yu seçmek için yeterli zaman olacak mı?
Bez Hermoso,

1
@Shasteriskt, zaman aşımını, başka bir önyükleme işletim sistemi seçmek için bir tuşa basacak kadar uzun bir değere ayarlamanız gerekir.
Takkat

Zaman aşımı süresini 0 olarak ayarlayıp Shift tuşunu basılı tuttum ancak menü hala görünmüyor. (İyi ki, ayarları olduğu gibi düzenleyebileceğim Ubuntu'yu başlatmaya ayarladım.)
Bez Hermoso

Kısacası, ihtiyacım olan davranış elde edilemez mi?
Bez Hermoso

@Shasteriskt: ne yazık ki bazı makinelerde GRUB menüsünü açmak için önyükleme sırasında sol tuşunu basılı tut ve sol tuşunu basılı tut (örneğin bu hata ). ESC veya SHIFT + ESC'nin çalışması durumunda şanslı olabilirsiniz.
Takkat

4

Aynı şeyi yapmaya çalışıyordum ve özellikle bu konuda Ubuntu Forumlarında çok yardımcı oldum .

/etc/default/grubDoğru ayarı GRUB_TIMEOUTve GRUB_HIDDEN_TIMEOUT(sırasıyla 0 ve 5'e söylerim) ile doğru olanı yaptığınızı ve hatta GRUB_DEFAULTönyüklenecek varsayılan görüntüyü belirlediğinizi varsayarsak , doğru şekilde çalışmasını sağlamak için gereken prosedür budur.

  1. Bu satırları ekle

    GRUB_FORCE_HIDDEN_MENU="true"
    export GRUB_FORCE_HIDDEN_MENU
    

    sonuna kadar /etc/default/grub

  2. Kendinizinkini yedekleyin /etc/grub.d/30_os-proberve burada bulunan sürümün üzerine yazın.

  3. Dene! Menü tuşuna göstermek için SHIFTanahtar

Bu sorun, çoklu işletim sistemi kurulumuyla ilgilidir ve komut dosyasını düzenlemek, bunu düzeltmenin yollarından biridir.

30_os-prober :

#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

prefix="/usr"
exec_prefix="${prefix}"
datarootdir="${prefix}/share"

. "${datarootdir}/grub/grub-mkconfig_lib"

found_other_os=

make_timeout () {

  if [ "x${found_other_os}" = "x" ] || [ "x${GRUB_FORCE_HIDDEN_MENU}" = "xtrue" ] ; then 
    if [ "x${1}" != "x" ] ; then
      if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
    verbose=
      else
    verbose=" --verbose"
      fi

      if [ "x${1}" = "x0" ] ; then
    cat <<EOF
if [ "x\${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep$verbose --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
EOF
      else
    cat << EOF
if [ "x\${timeout}" != "x-1" ]; then
  if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
    set timeout=0
  fi
fi
EOF
      fi
    fi
  fi
}

adjust_timeout () {
  if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
    cat <<EOF
if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
EOF
    make_timeout "${GRUB_HIDDEN_TIMEOUT_BUTTON}" "${GRUB_TIMEOUT_BUTTON}"
    echo else
    make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}"
    echo fi
  else
    make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}"
  fi
}

if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
  adjust_timeout
  exit 0
fi

if [ -z "`which os-prober 2> /dev/null`" -o -z "`which linux-boot-prober 2> /dev/null`" ] ; then
  # missing os-prober and/or linux-boot-prober
  adjust_timeout
  exit 0
fi

OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
if [ -z "${OSPROBED}" ] ; then
  # empty os-prober output, nothing doing
  adjust_timeout
  exit 0
fi

osx_entry() {
    found_other_os=1
        cat << EOF
menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})" --class osx --class darwin --class os {
EOF
    save_default_entry | sed -e "s/^/\t/"
    prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
    cat << EOF
        load_video
        set do_resume=0
        if [ /var/vm/sleepimage -nt10 / ]; then
           if xnu_resume /var/vm/sleepimage; then
             set do_resume=1
           fi
        fi
        if [ \$do_resume = 0 ]; then
           xnu_uuid ${OSXUUID} uuid
           if [ -f /Extra/DSDT.aml ]; then
              acpi -e /Extra/DSDT.aml
           fi
           $1 /mach_kernel boot-uuid=\${uuid} rd=*uuid
           if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
              xnu_mkext /System/Library/Extensions.mkext
           else
              xnu_kextdir /System/Library/Extensions
           fi
           if [ -f /Extra/Extensions.mkext ]; then
              xnu_mkext /Extra/Extensions.mkext
           fi
           if [ -d /Extra/Extensions ]; then
              xnu_kextdir /Extra/Extensions
           fi
           if [ -f /Extra/devprop.bin ]; then
              xnu_devprop_load /Extra/devprop.bin
           fi
           if [ -f /Extra/splash.jpg ]; then
              insmod jpeg
              xnu_splash /Extra/splash.jpg
           fi
           if [ -f /Extra/splash.png ]; then
              insmod png
              xnu_splash /Extra/splash.png
           fi
           if [ -f /Extra/splash.tga ]; then
              insmod tga
              xnu_splash /Extra/splash.tga
           fi
        fi
}
EOF
}

wubi=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

  case ${BOOT} in
    chain)

      case ${LONGNAME} in
    Windows*)
      if [ -z "$wubi" ]; then
        if [ -x /usr/share/lupin-support/grub-mkimage ] && \
           /usr/share/lupin-support/grub-mkimage --test; then
          wubi=yes
        else
          wubi=no
        fi
      fi
      if [ "$wubi" = yes ]; then
        echo "Skipping ${LONGNAME} on Wubi system" >&2
        continue
      fi
      ;;
      esac

      found_other_os=1
      cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" --class windows --class os {
EOF
      save_default_entry | sed -e "s/^/\t/"
      prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"

      case ${LONGNAME} in
    Windows\ Vista*|Windows\ 7*|Windows\ Server\ 2008*)
    ;;
    *)
      cat << EOF
    drivemap -s (hd0) \${root}
EOF
    ;;
      esac

      cat <<EOF
    chainloader +1
}
EOF
    ;;
    linux)
      LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
      prepare_boot_cache=

      for LINUX in ${LINUXPROBED} ; do
        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
        LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"

        if [ -z "${LLABEL}" ] ; then
          LLABEL="${LONGNAME}"
        fi

    if [ "${LROOT}" != "${LBOOT}" ]; then
      LKERNEL="${LKERNEL#/boot}"
      LINITRD="${LINITRD#/boot}"
    fi

    if [ -z "${prepare_boot_cache}" ]; then
      prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | sed -e "s/^/\t/")"
      [ "${prepare_boot_cache}" ] || continue
    fi
    found_other_os=1
        cat << EOF
menuentry "${LLABEL} (on ${DEVICE})" --class gnu-linux --class gnu --class os {
EOF
    save_default_entry | sed -e "s/^/\t/"
    printf '%s\n' "${prepare_boot_cache}"
    cat <<  EOF
    linux ${LKERNEL} ${LPARAMS}
EOF
        if [ -n "${LINITRD}" ] ; then
          cat << EOF
    initrd ${LINITRD}
EOF
        fi
        cat << EOF
}
EOF
      done
    ;;
    macosx)
      OSXUUID="`grub-probe --target=fs_uuid --device ${DEVICE} 2> /dev/null`"
      osx_entry xnu_kernel 32
      osx_entry xnu_kernel64 64
    ;;
    hurd)
      found_other_os=1
      cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" --class hurd --class gnu --class os {
EOF
      save_default_entry | sed -e "s/^/\t/"
      prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
      grub_device="`${grub_probe} --device ${DEVICE} --target=drive`"
      mach_device="`echo "${grub_device}" | sed -e 's/(\(hd.*\),msdos\(.*\))/\1s\2/'`"
      grub_fs="`${grub_probe} --device ${DEVICE} --target=fs`"
      case "${grub_fs}" in
    *fs)    hurd_fs="${grub_fs}" ;;
    *)  hurd_fs="${grub_fs}fs" ;;
      esac
      cat << EOF
    multiboot /boot/gnumach.gz root=device:${mach_device}
    module /hurd/${hurd_fs}.static ${hurd_fs} --readonly \\
            --multiboot-command-line='\${kernel-command-line}' \\
            --host-priv-port='\${host-port}' \\
            --device-master-port='\${device-port}' \\
            --exec-server-task='\${exec-task}' -T typed '\${root}' \\
            '\$(task-create)' '\$(task-resume)'
    module /lib/ld.so.1 exec /hurd/exec '\$(exec-task=task-create)'
}
EOF
    ;;
    *)
      echo "  ${LONGNAME} is not yet supported by grub-mkconfig." >&2
    ;;
  esac
done

adjust_timeout


    cat <<EOF
if [ "x\${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep$verbose --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
EOF

1
Yöntemini denedim ve başarısız oldu. Ubuntu
14.04

1
Dosyanın hangi kısımlarını değiştirmeliyim? 14.04 dosyamın bu dosyayla pek çok farklılığı var, bu yüzden sadece hedeflenmiş değişiklikler yapmam gerektiğini düşünüyorum.
MakisH

@MayukhNair: Ubuntu 14.04 kullandım ve bu yöntem işe yaradı. Aşağıdakileri yaptım - 1. GRUB_DEFAULT = 0 / etc / default / grub içinde ayarlayın. 2. GRUB_HIDDEN_TIMEOUT = 0 değerini ayarlayın (Dariopnc'in söylediğinin aksine) 3. /etc/grub.d/30_os-prober dosyanızı yedekleyin ve yukarıdaki kopyayı yapıştırın 30-os_prober dosyası 4. sudo güncelleme-grub2
Pushpak Dagade

sudo update-grub/etc/default/grub
Grubun

3

Ubuntu 16.04 tarihinde aşağıdaki değişiklikleri yaptım. Elbette, bunu yapabilmek için ayrıcalıklı bir kullanıcı olmanız gerekir.

  1. İlk değişiklik /etc/grub.d/30_os-proberdosyada:

    • İle aç sudo gedit /etc/grub.d/30_os-prober
    • Değişim quick_boot="1"içinquick_boot="0"
    • Dosya 'yı kaydet
  2. Bundan sonra zaman aşımı değerlerini /etc/default/grubsıfıra veya başka bir değere ayarlayabilirsiniz :

    • İle aç sudo gedit /etc/default/grub
    • GRUB_HIDDEN_TIMEOUT=0ve GRUB_TIMEOUT=0.
    • Dosya 'yı kaydet
  3. Son adım grub güncellemektir

    • sudo update-grub

İlk dosyadaki değişiklikler, varsayılan ayar, başka bir işletim sistemi (örneğin, Windows 10) bulunursa, zaman aşımı değerinin her zaman 10 saniyeye ayarlanmış olması ve bu nedenle tarafından değiştirilememesidir /etc/default/grub. Bu, ayarlanmış olup olmadığını ve başka bir işletim sistemi olup olmadığını adjust_timeoutsoran adlı bir fonksiyonla gerçekleştirilir .quick_boot


Nihayet somurtma zat vorks 16.04!
JLTD,

2

grub optimizer'ı kurun

sudo eklenti apt-repository ppa: danielrichter2007 / grub-customizer

sudo apt-get update
sudo apt-get install grub-customizer

Grub Customizer şimdi Uygulamalar> Sistem Araçları menüsünde görünecek.

Veya komut satırından açabilirsiniz.

gksudo grub-customizer

grub seçenekleri için resim

görüntü tanımını buraya girin


3
Bu düzenleme ile yapılamayan ne yapabilir etc/default/grub?
Bez Hermoso,

3
@Shasteriskt: İngilizce olmayan konuşmacılar, komut satırına aşina olmayanlar veya sadece bir bilgisayar kullanmak isteyen ve yapılandırma dosyaları ile uğraşmayan insanlar için yararlı olabilir.
Flimm

Bu neden iyileştirildi? Herhangi bir sorunu çözmek gibi görünmüyor; Denedim grub-customizer('optimizer' değil) ve çalışırken Shift tuşuna basılmadığı sürece GRUB menüsünü gizlememe yardımcı olmuyor.
Nickolai Leschov

1

Tek bir önyükleme sisteminde de aynı sorunu yaşıyordum. GRUB_TIMEOUT sıfır değilse, menü, GRUB_HIDDEN_TIMEOUT'dan bağımsız olarak her zaman açılır. GRUB_TIMEOUT sıfır olsaydı, GRUB_HIDDEN_TIMEOUT saniye boyunca uykuya daldı, ancak SHIFT ya da ESC menüyü göstermedi.

30_os-prober içindeki ayar_zamanı () sonunda uykuya başka bir madde ekleyerek düzelttim. Şimdi kesintiye uğramazsa, zaman aşımı süresi sıfırdır ve herhangi bir menü olmadan açılır.

Bu gerçekte geriye doğru görünüyor çünkü uyku kesilmezse 0 (yanlış) ve eğer öyleyse 1 (gerçek) ancak benim için çalışıyor gibiydi.


0

GRUB2 BOOT MENU'NİN OTOMATİK OLANLARINI GÖRÜŞTÜRMESİ

Bazı nedenlerden dolayı, GRUB_GFXMODE=640x480Grub Özelleştiricideki ayarları düzenlemek genellikle önyükleme menüsünü görünür kılar:

  1. Grub-customizer'ı yukarıdaki gibi kurun ve güncelleyin
  2. GUI'de Grub Customizer'ı bul (benim için Sistem> Yönetim> ... bölümünde, ancak bazıları için Uygulamalar> Sistem Araçları> altında fon var.)
  3. Grub Customizer'ı açın ve Tercihler> Gelişmiş'i seçin.
  4. GRUB_gfxmode (640X480) öğesini seçin - önceden seçilmişse, seçimini kaldırın, yeniden başlatın ve tekrar seçin.
  5. parmaklarını çapraz ve yeniden başlat!

Bunun neden benim için çalıştığını bilmiyorum, ama her iki bilgisayarımda da çalıştı, umarım sizin için de işe yarar!


0

Shasteriskt, 'SHIFT' çözümünün bir alternatifi, sadece sizin için bazı taşıma işlemlerini yapan bir komut dosyası oluşturmaktır. Demek istediğim, dosyanızın grub.baktam bir kopyası olarak adlandırılan grub.cfgve set timeout=0satırın değiştirildiği tek fark olan bir dosya oluşturmak set timeout=10. Gereksinimlerinize göre yeniden başlatmanıza izin veren bir anahtar yapan bir kabuk betiği oluşturun. Bu gereklilikleri yerine getiren eşdeğer bir python betiği oluşturdum, ama elbette bununla çağırılması gerekiyor sudo. /usr/binKurulumumun içine asıl betiğin kendisine bir bağlantı olarak girdim . Not: Arch üzerinde fluxbox kullanıyorum, bu yüzden bu script ile Ubuntu arasında herhangi bir tutarsızlık olup olmadığından emin değilim, ancak değişiklik yapılmasının çok az veya çok olması gerektiğini düşünüyorum. Script şuna benziyor:

#! /usr/bin/python
from shlex import split
from subprocess import call
from os import rename, chdir

chdir('/boot/grub/')
try:
    with open('grub.bak','r') as alternate:
        pass
    if raw_input('Auto-boot is set. Un-set?> ') == 'y':
        rename('grub.cfg','grub.back')
        rename('grub.bak','grub.cfg')

    if raw_input('Reboot system?> ') == 'y':
        call(split('shutdown -r now'))

except:
    if raw_input('Auto-boot is not set. Set?> ') == 'y':
        rename('grub.cfg','grub.bak')
        rename('grub.back','grub.cfg')

    if raw_input('Reboot system?> ') == 'y':
        call(split('shutdown -r now'))

Betik temel olarak sadece yüklenecek menünün olup olmadığını belirler (otomatik önyükleme veya değil). Bulgularına dayanarak, açmak veya kapatmak isteyip istemediğinizi sorar ve ardından yeniden başlatmak isteyip istemediğinizi sorar. Tersine, başka bir yolla (örneğin Windows'ta) çalışmasını istiyorsanız ve Linux'taki dosyalara erişmek için Windows ayarınız varsa, aynı komut dosyasını o ortamda da çalıştırabilirsiniz. Umarım yardımcı olur.


0

Öyleyse GRUB_TIMEOUT değerini 0 olarak ayarlansanız bile, herhangi bir GRUB_HIDDEN_TIMEOUT varsa, 30_os-prober, ister beğenilsin de istemesin, zaman aşımını 10'a ayarlar. Buradaki diğer çözümler bu betiği düzenler, ancak bu GRUB güncellendiğinde güncelleme sorunlarına neden olabilir.

Daha iyi çözüm: aşağıdakini /etc/grub.d/50_goddamnit(yeni dosyaya) yazın:

#!/bin/sh
echo "set timeout=0"

Temel olarak, bu son çalışacak ve /boot/grub/grub.conf dosyasındaki son satır olacak ve böylece varsayılan yapılandırmada diğer tüm saçma sapanları geçersiz kılacak.

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.