Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Jone - 29.11.09 - klo:00.42
-
koneessa xubuntu karmic. Uusimman kernelpäivityksen 2.6.31-15 jälkeen hidden menu ei enää toimi. ennen päivitystä grubin menu pysyi kiltisti piilossa kuten halusin, mutta nyt se tulee näkyviin ja vielä ilman minkäänlaista aika rajaa. /etc/default/grub on samanlainen kuin ennen päivitystäkin ja siitä on säädetty ajat 0 sekuntiin ja hidden menu päälle. Onko muilla samanlaista ongelmaa? Ratkaisu ehdotuksia, vai odotellaanko vain että korjaantuu?
-
Näytäpä mitä siellä /etc/default/grub-tiedostossa on nyt?
-
Näytäpä mitä siellä /etc/default/grub-tiedostossa on nyt?
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
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 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=800x600x32
# 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 entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"
# Ei etsi muilta osioilta asennettuja käyttiksiä
GRUB_DISABLE_OS_PROBER=true
# HUOMIO!!
# /etc/grub.d/00_header tiedostoon lisätty "set gfxmode={$GRUB_GFXMODE}"
# kohdan jälkeen rivi:
# set gfxpayload=keep
# joka säilyttää grub2-valikon resoluution käynnistyksessä.
Tuo viimeinen kommenttikohta on ihan vain oman muistin virkistämiseksi. Toiseksi viimeinen kohta on lisätty siksi ettei grub etsi muita käyttiksiä ja löydä xp:n palautusosiota. Koneella siis pelkästään xubuntu ja xp:n recovery osio.
-
Grubin asetusskripteissä on sellainen ominaisuus, että piilotettu valikko on käytössä vain silloin kun os-prober ei löydä koneesta muita käyttöjärjestelmiä tai jos os-proberin käyttö on estetty (kuten sinulla on). Ehkä tässä on nyt jotain häiriötä.
Aja sudo update-grub ja tarkista, että /boot/grub/grub.cfg:n loppupuolella on tämä pätkä:
### BEGIN /etc/grub.d/30_os-prober ###
if [ ${timeout} != -1 ]; then
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep --interruptible 3 ; then
set timeout=0
fi
fi
fi
-
Kyllähän sieltä lopusta löytyi tuo mainitsemasi pätkä ja juuri niin kuin olit sen laittanut. Ainut mitä grubin menussa tällä hetkellä on uusimman kernelin ja sen recoveryn lisäksi on kaksi memtestiä. Muistaakseni ennen on ollut vain yksi?? Liittyykö tämä mahdollisesti ongelmaan, vai onko asia merkityksetön. Toinen havainto, grubin menun tullessa näkyviin valinta on valmiiksi recovery moden rivillä, eikä normaalissa käynnistyksessä. Joutuu siis tekemään vielä yhden ylimääräisen painalluksen käynnistäessä..
Laitan tähän vielä kokonaisuudessaan tuon /boot/grub/grub.cfg tiedoston jos siitä voisi bongata jonkun virheen.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s /boot/grub/grubenv ]; then
have_grubenv=true
load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
saved_entry=${prev_saved_entry}
save_env saved_entry
prev_saved_entry=
save_env prev_saved_entry
fi
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set c3cd96eb-2c6e-446b-8429-63783a8ab17f
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=800x600x32
set gfxpayload=keep
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
if [ ${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=1
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/white
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-15-generic" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set c3cd96eb-2c6e-446b-8429-63783a8ab17f
linux /boot/vmlinuz-2.6.31-15-generic root=UUID=c3cd96eb-2c6e-446b-8429-63783a8ab17f ro
initrd /boot/initrd.img-2.6.31-15-generic
}
menuentry "Ubuntu, Linux 2.6.31-15-generic (recovery mode)" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set c3cd96eb-2c6e-446b-8429-63783a8ab17f
linux /boot/vmlinuz-2.6.31-15-generic root=UUID=c3cd96eb-2c6e-446b-8429-63783a8ab17f ro single
initrd /boot/initrd.img-2.6.31-15-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
if [ ${timeout} != -1 ]; then
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep --interruptible 3 ; then
set timeout=0
fi
fi
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
-
Toinen havainto, grubin menun tullessa näkyviin valinta on valmiiksi recovery moden rivillä, eikä normaalissa käynnistyksessä. Joutuu siis tekemään vielä yhden ylimääräisen painalluksen käynnistäessä..
Ahaa, siinä tapauksessa ongelmana taitaa olla recordfail-muuttujaan jäänyt arvo.
Mitä tämä komento tulostaa: sudo grub-editenv /boot/grub/grubenv list
Jos se sanoo jotain recordfailista, tyhjennä arvo komennolla: sudo grub-editenv /boot/grub/grubenv unset recordfail
-
Noniin, siellä oli tosiaan arvo "recordfail=1" ja kun sen poisti, niin toimii hidden menu taas oikein.
Kiitos avusta!
Jaksaisitko vielä kertoa mikä tuo recordfail oikeastaan on ja mistä sellainen oli sinne tullut? Kiinnostaisi tietää, enkä nopeasti ainakaan löytänyt googlaamalla vastausta..
-
Käsittääkseni GRUB käyttää sitä vikatilanteiden käsittelyyn, eli jos käynnistys epäonnistuu, GRUB osaa seuraavalla kerralla näyttää valikon.