ďťż
 
 
   Walka z GRUB-em 2?
 
 

Tematy

 
    
 

 

 

 

Walka z GRUB-em 2?





raven18 - 28-09-2009 20:48
Zaktualizowałem GRUB-a do wersji 2. Myślałem że wszystko idzie ku prostocie, ostatnio popularne stwierdzenie przyjazne dla użytkownika ale jak widać niekoniecznie. Ale do rzeczy, chcę dodać sobie coś takiego jak hiddenmenu:
http://grub.enbug.org/Hiddenmenu
Można to dodać do /etc/grub.d/XX_script (za XX sobie coś wpisuje, może być np 66, hę) ale czy nie powinno to być dopisane do 00_header a może 40_custom? Trzeba jeszcze dodać wpis do /etc/default/grub
Jaki wpis i z jakimi opcjami? Dla skryptu 66_hiddenmenu wpis hiddenmenu?
Jak i gdzie dodać opcje do kernela (modprobe np.)?
System uruchamia mi się jak w trybie recovery, da się coś z tym zrobić, średnio mi się chce czekać kilkadziesiąt sekund jak dotychczas to było kilkanaście.

Naprawione
Zostało hiddenmenu.
Na razie to wszystko, po pierwszej godzinie korzystania z gruba2 i przejrzeniu dokumentacji.

Zrobiłem, skrypt dodałem do custom. Ta cała konfiguracja w /etc/default/grub jest do niczego, zupełnie nie wiadomo co wpisać. Najlepiej wszystko robić bezpośrednio na skryptach konfiguracyjnych w /etc/grub.d i trzymać się daleko od dokumentacji, która tylko jeszcze bardziej miesza.



KeFaS - 29-09-2009 00:44
Po ostatniej aktualizacji, po której niestety też zdecydowałem się zainstalować GRUB2 i walczyłem z nim prawię godzinę, wróciłem do grub-legacy. Moim zdaniem bezsensem jest używać czegoś co ma tak beznadziejne wsparcie no i w sumie po co zmieniać coś co działa dobrze (no może do obsługi ext4, ale akurat mi to niepotrzebne)?



raven18 - 29-09-2009 20:23
Jeszcze co do tego gruba, gdyby ktoś miał problemy i trafił na mój temat :mrgreen:
Wartości najlepiej dopisywać jest do /etc/grub.d/40_custom
# Boot automatically after 30 secs.
set timeout=30 Ile czasu ma być widoczne menu wyboru systemu
# By default, boot the first entry.
set default=0 Ustawiamy system, który chcemy by nam się automatycznie uruchamiał (podobnie w grub1)
# Change the colors.
menuentry "Change the colors" {
        set menu_color_normal=light-green/brown
        set menu_color_highlight=red/blue
} Kolory menu tekstowego, sam mam standardowo, szary + czerń
set menu_color_normal=light-gray/black
set menu_color_highlight=black/light-gray echo -n "Press `ESC' to enter the menu... "
if sleep --verbose --interruptible 3 ; then
  set timeout=0
fi Wpis dla hiddenmenu
menuentry "Debian GNU/Linux, Linux 2.6.30-1-amd64" {
        insmod reiserfs
        set root=(hd0,5)
        search --no-floppy --fs-uuid --set 7c202321-7c9a-4160-9c1c-6ebb1dc2933c
        linux        /boot/vmlinuz-2.6.30-1-amd64 root=UUID=7c202321-7c9a-4160-9c1c-6ebb1dc2933c ro quiet 
        initrd        /boot/initrd.img-2.6.30-1-amd64
} Przykładowy wpis do bootownia linuksa, UUID-y sprawdza się za pomocą:
ls -l /dev/disk/by-uuid/ menuentry "Windows Vista/Longhorn (loader) (on /dev/sda1)" {
        insmod ntfs
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set 885847ac58479838
        drivemap -s (hd0) ${root}
        chainloader +1
} Dla Windowsa - nie testowane, ale powinno być ok.
Po skończonej edycji
# update-grub i # reboot :-)
Instalacja/naprawa gruba:
http://grub.enbug.org/Grub2LiveCdInstallGuide



darkwater - 29-09-2009 21:03
Jeśli na dysku masz inne systemy, i chciałbyś je widzieć "automatycznie" w menu grub2, zainstaluj os-prober.
UUIDy możesz sprawdzić za pomocą blkid



konju009 - 10-10-2009 19:26
Dziś próbowałem zmienić ustawienia gruba2, w tym celu jako root edytowałem plik /boot/grub/grub.cfg

Zmieniłem wartość w: set default oraz w:code]set gfxmode=640x480[/code] Ustawiłem: set gfxmode=1440x900 i zapisałem zmiany.

Potem jako root wpisałem: grub-update ale nie zaobserwowałem żadnych zmian.

Co zrobiłem źle lub czego nie zrobiłem?



gruby - 10-10-2009 19:58
Edytujesz jako root /etc/grub.d/00_header szukasz ścieżki i zmieniasz na if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=1440x900 ; fi potem grub-update powinno być dobrze ;-)



ArnVaker - 10-10-2009 20:30
...



konju009 - 10-10-2009 20:33
Dziękuję za odpowiedź, działa ale nie o to mi chodziło chciałbym żeby rozdzielczość ekranu podczas ładowania Debiana była wyższa. W starym grubie dało się to zrobić.



budzigniew - 11-10-2009 14:57
ArnVaker, mozna to tez zrobic za pomoca
update-grub2 konju009, w /etc/grub.d/10_linux musisz znalezc linijke

linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro $2 i po ro dodac

vga=xxx gdzie "xxx" to tryb VGA.

Po tym system bedzie krzyczal, ze to przestarzala forma zmiany rozdzielczosci, ale na razie nie chcialo mi sie szukac, jak to zrobic w nowej.

I jeszcze tabelka.



kodzik - 11-10-2009 15:30
W /etc/default/grub

Zmieniasz wpis GRUB_GFXMODE= i po = dajesz rozdzielczość, jaką chcesz mieć w grubie

By zmienić rozdzielczość konsoli to w /etc/default/grub zmieniasz wpis:
GRUB_CMDLINE_LINUX_DEFAULT="quiet" i tutaj dopisz po spacji vga=792 i daj update-grub



Akkon - 27-10-2009 10:24

By zmienić rozdzielczość konsoli to w /etc/default/grub zmieniasz wpis:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
i tutaj dopisz po spacji vga=792 i daj update-grub W tym poradniku radzisz inaczej. Niestety tatmtem sposób u mnie nie zadziałał. Na marginesie myślę, że do tamtego opisu warto by dodać informację o konieczności zainstalowania zaktualizowanego gruba również w MBR
grub-install /dev/dysk W przeciwnym wypadku może okazać się, że mimo aktualizacji ciągle korzystamy ze starej wersji.

grub-update Czyli w nowym grubie zamiast polecenia:
update-grub jest:
grub-update Co to komu przeszkadzało? Eh, jakoś nie mogę się do niego przekonać... U mnie działa tylko komenda
update-grub



oliss - 29-10-2009 13:46
Po zaktualizowaniu grub-a zanim załaduję się grub mam napis
[Minimal BASH-like editing is supported.For the first eord, TAB lists possible command completions.Anywhare else TAB lists the possible completions of a device/filename] po jakiejś minucie mam okno wyboru systemu
Oto mój grub.cfg może się przyda
#
# 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 ###
set default=0
insmod ext2
set root=(hd1,2)
search --no-floppy --fs-uuid --set fe5ac7b0-5301-47ca-b82d-26dca4e9c3f9
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  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
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod ext2
set root=(hd1,5)
search --no-floppy --fs-uuid --set f8fa5220-66bc-43ed-aaf9-9d5258586b49
insmod png
if background_image /grub/moreblue-orbit-grub.png ; then
  set color_normal=black/black
  set color_highlight=magenta/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry "Debian GNU/Linux, with Linux 2.6.30-2-486" {
        insmod ext2
        set root=(hd1,5)
        search --no-floppy --fs-uuid --set f8fa5220-66bc-43ed-aaf9-9d5258586b49
        linux        /vmlinuz-2.6.30-2-486 root=UUID=fe5ac7b0-5301-47ca-b82d-26dca4e9c3f9 ro  quiet vga=792
        initrd        /initrd.img-2.6.30-2-486
}
menuentry "Debian GNU/Linux, with Linux 2.6.30-2-486 (recovery mode)" {
        insmod ext2
        set root=(hd1,5)
        search --no-floppy --fs-uuid --set f8fa5220-66bc-43ed-aaf9-9d5258586b49
        linux        /vmlinuz-2.6.30-2-486 root=UUID=fe5ac7b0-5301-47ca-b82d-26dca4e9c3f9 ro single
        initrd        /initrd.img-2.6.30-2-486
}
menuentry "Debian GNU/Linux, with Linux 2.6.26-1-486" {
        insmod ext2
        set root=(hd1,5)
        search --no-floppy --fs-uuid --set f8fa5220-66bc-43ed-aaf9-9d5258586b49
        linux        /vmlinuz-2.6.26-1-486 root=UUID=fe5ac7b0-5301-47ca-b82d-26dca4e9c3f9 ro  quiet vga=792
        initrd        /initrd.img-2.6.26-1-486
}
menuentry "Debian GNU/Linux, with Linux 2.6.26-1-486 (recovery mode)" {
        insmod ext2
        set root=(hd1,5)
        search --no-floppy --fs-uuid --set f8fa5220-66bc-43ed-aaf9-9d5258586b49
        linux        /vmlinuz-2.6.26-1-486 root=UUID=fe5ac7b0-5301-47ca-b82d-26dca4e9c3f9 ro single
        initrd        /initrd.img-2.6.26-1-486
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/hda1)" {
        insmod ntfs
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set aaf03466f0343ac1
        drivemap -s (hd0) ${root}
        chainloader +1
}
### 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 ###



jaqbeu - 29-10-2009 16:34
To ja się tylko wypowiem co do rozdzielczości konsoli, bo mi działa. :)
Ja zmieniłem tylko 1 linijkę w
/boot/grub/grub.cfg Fragment pliku:
menuentry "Debian GNU/Linux, Linux 2.6.30-2-amd64" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set 28830157-4e90-4456-9e31-2115192ca2a7
        linux  /vmlinuz-2.6.30-2-amd64 root=UUID=1a3871b7-5391-4479-9ff4-0af88dace0ca ro  quiet vga=792
        initrd  /initrd.img-2.6.30-2-amd64
} Jak widać zmieniłem tylko linijkę z kernelem ("linux /vmlinuz..."), na końcu dodając vga=792 i działa jak należy. Przynajmniej u mnie. :)



jasiekmarc - 29-10-2009 18:57
I źle robisz, bo to zniknie. Powinieneś zrobić tak, jak powiedział kilka postów wyżej kodzik z tą różnicą, że zamiast niedziałającego update-grub powinieneś zrobić update-grub2 .



oliss - 30-10-2009 11:52
Zgadzam się, dobrym sposobem jest sposób, który przedstawił kodzik i ja też tak mam.
Wie ktoś, jak usunąć ten napis, o którym wcześniej napisałem? Denerwuje mnie to czekanie.



najczarniejszy - 02-11-2009 13:31
Ja zrobiłem tak:

1. Plik /etc/default/grub:
GRUB_GFXMODE=1366x768x32 2. Plik /etc/grub.d/00_header:
if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=1366x768x32; fi oraz w tym samym pliku:
set gfxmode=${GRUB_GFXMODE}
set gfxpayload=keep
insmod gfxterm 3. update-grub oczywiście w konsoli z uprawnieniami roota.

Dzieki opcji set gfxpayload=keep unikamy niepotrzebnych zmian rozdzielczości w czasie startu systemu, jeśli oczywiście nasz tryb graficzny ma ustawioną taką samą.



Akkon - 02-11-2009 19:34
Co człowiek to inne rozwiązanie. U mnie żaden sposób podany przez kodzika nie działa.



zomer - 30-12-2009 22:35
Jest jakiś odpowiednik polecenia: grub> root (hd0,0) grub> setup (hd0) Bo po sformatowaniu wszystkiego na partycji: /dev/sda1 To moja partycja /boot i ponownym zainstalowaniu nowego gruba grub-install oraz aktualizacji grub.cfg update-grub2 Grub w ogóle się nie uruchamia. Próbowałem rozwiązać problem instalując starego gruba z Knoppiksa ale przy okazji zmieniłem partycję /dev/sda2 (systemową) z ext3 do ext4. Z tego co czytam to stary grub nie da rady uruchomić systemu na ext4 mimo iż sam jest na ext3.



Yampress - 11-03-2010 13:35
Ja wole stary grub . Ponieważ dobrze go znam i nie mam problemów ustawić 3 systemy w multiboocie. Wiem jak go przywracać, konfigurować. Odnośnie grub2 to nie widziałem jeszcze zadowalającej dokumentacji do niego. :( może z czasem znajde i spróbuje.



zet120 - 12-03-2010 08:51
Wedle mojej oceny jest dokładnie odwrotnie ponieważ dla mnie Grub2 jest naturalnym rozwinięciem możliwości starszego brata, a że zmienił się sposób konfiguracji....
Również i w Grubie2 nie ma większych problemów z 3 systemami w multiboocie w tym i z wystartowaniem Chameleona jak i bezpośrednio samego Mac OS X.
Intnieją również przynajmniej dla Ubuntu możliwości dosyć gruntownej zmiany wyglądu Gruba2, początkowo jako modernizacja samego Gruba2, a teraz jako niezależny projekt.
http://code.google.com/p/burg/wiki/InstallUbuntu

Odnośnie grub2 to nie widziałem jeszcze zadowalającej dokumentacji do niego. W mojej ocenie jest:
http://members.iinet.net/~herman546/p20.html
http://grub.enbug.org/Manual
http://ubuntuforums.org/showthread.php?t=1195275



Bastian - 09-05-2010 17:06
Witam.
Nie mogę poradzić sobie ze zmuszeniem GRUB2 do wyświetlania ekranu powitalnego podczas ładowania systemu. Obrazek pojawia się podczas wyświetlania menu gruba, a potem już tylko wyświetlają się wyniki ładowania skryptów. Z tego co widzę to wszystko jest dobrze i powinno działać.

/etc/grub.d/05_debian_theme: #!/bin/bash -e                                     

source /usr/lib/grub/grub-mkconfig_lib

# this allows desktop-base to override our settings
f=/usr/share/desktop-base/grub_background.sh     
if test -e ${f} ; then                           
  source ${f}                                     
else                                             
  WALLPAPER="/usr/share/images/desktop-base/moreblue-orbit-grub.png"
  COLOR_NORMAL="black/black"                                       
  COLOR_HIGHLIGHT="magenta/black"                                 
fi                                                                 

set_blue_theme()
{             
  cat << EOF   
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
EOF
}

# check for usable backgrounds
use_bg=false
if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then
  for i in /boot/grub/`basename ${WALLPAPER}` ${WALLPAPER} ; do
    if is_path_readable_by_grub $i ; then
      bg=$i
      case ${bg} in
        *.png)          reader=png ;;
        *.tga)          reader=tga ;;
        *.jpg|*.jpeg)  reader=jpeg ;;
      esac
      if test -e /boot/grub/${reader}.mod ; then
        echo "Found background image: `basename ${bg}`" >&2
        use_bg=true
        break
      fi
    fi
  done
fi

# set the background if possible
if ${use_bg} ; then
  prepare_grub_to_access_device `${grub_probe} --target=device ${bg}`
  cat << EOF
insmod ${reader}
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
  set color_normal=${COLOR_NORMAL}
  set color_highlight=${COLOR_HIGHLIGHT}
else
EOF
fi

# otherwise, set the traditional Debian blue theme
if ${use_bg} ; then
  set_blue_theme | sed -e "s/^/  /g"
  echo "fi"
else
  set_blue_them
fi etc/default/grub: # If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
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=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_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1" Początkowo miałem wartość: GRUB_CMDLINE_LINUX_DEFAULT="quiet" i myślałem ze to dopisanie "splash" rozwiąże problem ale nic to nie dało. Również odkomentowałem: GRUB_GFXMODE=640x480 Ale to tez nie pomogło. Oczywiście za każdym razem robię: update-grub Mój Debian do wersja testowa.

Czy ktoś ma pomysł o co chodzi?

Dodane:
Jeszcze mi na myśl jedna rzecz przyszła. Czy może ktoś sprawdzić, czy po starcie systemu macie wgrany moduł glxterm? Wydaje mi się, że powinien on być wgrany wraz ze startem systemu i od niego zależy wyświetlanie obrazka. U mnie nie ma.



Bastian - 10-05-2010 19:53
OK, temat rozwiązany.

Po pierwsze GRUB2 nie obsługuje wyświetlania grafiki podczas startupu i nie wiem skąd mi się wzieło przekonanie, że jest inaczej.

Tak więc powróciłem do splashy. Jednak wymagało to troche pracy gdyż, GRUB2 nie używa już poleceń bufora ramki vga=791. Żeby na debianie cieszyć sie poprawnym splashy należy:

1. w /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 2. W skrypcie uruchamiającym splasha /etc/init.d/splash dopisać:

#!/bin/sh                                       
### BEGIN INIT INFO                             
# Provides:          splashy                     
# Required-Start:    mountkernfs                 
# Required-Stop:                                 
# Default-Start:    S                           
# Default-Stop:      0 6                         
# Short-Description: A script to calculate the progress percentage for init scripts
# Description:      This calculates the progress percentage for the scripts in   
#                    /etc/rcS.d and /etc/rc$CURRENT_RUNLEVEL.d. This will also   
#                    start Splashy at boot (if not already started from initramfs),
#                    and at shutdown (yes, when "stop" argument is given,         
#                    which is really counter-intuitive).                         
### END INIT INFO                                                                 

# Author: Tim Dijkstra <tim@famdijkstra.org>,
#        Luis Mondesi <lemsx1@gmail.com>   
#        Luca Capello <luca@pca.it>         
#                                           
# If called in the rc[06].d runlevels with the stop target it will start
# splashy in 'shutdown' mode. In the rcS.d runlevel it will try         
# to start splashy if it didn't start yet from initramfs.               
#                                                                       
# When it decides to start splashy it will first calculate the         
# progress percentage which will be used by the calls to splashy_update 
# in the log_end_msg functions.                                         
# This is really simple. We just count them and put them               
# in alpha-numeric order. Their percentage is then just                 
# int( their number on the list * ( 100 / total number on list) )       
#                                                                       
# Of course not all packages use log_end_msg yet, but that             
# doesn't matter. The packages that do, will trigger the update                                                                                                   
# anyway. This may result in big jumps in the percentage.                                                                                                         
# The more scripts start using it, the more granular it will become.                                                                                               
#                                                                                                                                                                 
#                                                                                                                                                                 
# This script also needs to detect if Splashy is running and if not                                                                                               
# start it. It's assumed that this will only be run while halt/reboot                                                                                             
# and at RUNLEVEL S.                                                                                                                                               
#                                                                                                                                                                 
                                                                                                                                                                   
PATH="/sbin:/bin:/usr/sbin:/usr/bin"                                                                                                                               
NAME="splashy"                                                                                                                                                     
DESC="Boot splash manager"                                                                                                                                         
STEPS_DIR="/lib/init/rw/$NAME"                                                                                                                                     
DEBUG=0                                                                                                                                                           

[ -r "/etc/default/$NAME" ] && . "/etc/default/$NAME"

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
if [ -r "/lib/lsb/init-functions" ]; then                         
    . "/lib/lsb/init-functions"                                   
else                                                               
    echo "Could not read file /lib/lsb/init-functions. Please install lsb-base"
    exit 1                                                                   
fi                                                                           

set -e

[ "$ENABLE" = "1" ] && log_warning_msg "To enable $NAME add 'splash' to the kernel command line. Use of ENABLE in /etc/default/$NAME is deprecated.";

check_to_enable () {
        ENABLE=0   
        SINGLE=false
        SPLASH=false
        FBMODESET=false

        for x in $(cat /proc/cmdline); do
            case $x in                 
                single)                 
                    SINGLE="true"       
                ;;                     
                splash)                 
                    SPLASH="true"       
                ;;                     
                nosplash)               
                    SPLASH="false"     
                ;;                     
                vga=*|video=*)         
                    FBMODESET="true"   
                ;;                     
            esac                       
        done                           
        # grub2 gfxmode?               
        [ "$FBMODESET" != "true" ] && [ -f /boot/grub/grub.cfg ] && \
        grep -q "^[[:space:]]*set[[:space:]]*gfxmode=" /boot/grub/grub.cfg && \
                FBMODESET="true"
                                             

        [ "$SPLASH" = "true" -a "$FBMODESET" = "true" ] && ENABLE=1
        [ "$SINGLE" = "true" ] && ENABLE=0                       

        if [ "$ENABLE" = "0" ]; then
            log_warning_msg "To enable $NAME on multiuser runlevel add 'splash' and a valid framebuffer videomode to the kernel command line"
            exit 0                                                                                                                         
        fi                                                                                                                                 
}                                                                                                                                           

calculate_steps () {
        log_daemon_msg "(Re)generating splash steps for"

        [ -f /etc/inittab ] &&  RLVL=`sed -n 's/id:\([2345]\):initdefault:/\1/ p' /etc/inittab`

        [ ! -d $STEPS_DIR ] && mkdir -p $STEPS_DIR
        #                                       
        # Mount a tmpfs on $STEPS_DIR           
        #                                       
        # on Ubuntu our Steps dir gets umounted if using /dev/shm/splashy
        # we will always use /lib/init/rw/splashy and mount a tmpfs there
        SHM_OPT=                                                       
        [ "${SHM_SIZE:=$TMPFS_SIZE}" ] && SHM_OPT="-osize=$SHM_SIZE"   
        mount -n -t tmpfs shmfs $STEPS_DIR                             

        TMP=`mktemp -p $STEPS_DIR`

        # While booting rcS will also be executed
        # we only care about the scripts that actually call log_end_msg
        # if not we could end up never completing our progressbar!   
        grep -l log_end_msg /etc/rcS.d/S* > $TMP 2> /dev/null || true 

        for ILVL in ${RLVL:=2} 0 6; do
            # in debian rc.local runs log_end_msg conditionally. we simply skip that
            grep -l log_end_msg /etc/rc$ILVL.d/[KS]* 2> /dev/null | grep -v rc.local >> $TMP  || true
                                                                                                   
            NR=`sed -n -e '$=' $TMP`                                                               
            I=1                                                                                     
            for SCR in `cat $TMP`; do                                                               
                echo "$SCR $(($I*100/$NR))"                                                         
                I=$(($I+1))                                                                         
            done > "$STEPS_DIR/$ILVL-progress"                                                     

            # Truncate $TMP file
            echo -n > $TMP     
            log_action_cont_msg " rc$ILVL.d"
        done                               

        # In the first stage of booting RUNLEVEL will be S
        ln -sf "$STEPS_DIR/${RLVL:=2}-progress" "$STEPS_DIR/S-progress"
        rm -f $TMP                                                   

        log_action_end_msg 0
}                         

# Bug #400598,#401999
if [ -z "${RUNLEVEL:-}" ]; then
    # we need only the current level
    RUNLEVEL=`runlevel | sed 's/^. //'`
fi                                   

case "$1" in
    start) 
        check_to_enable

        # We start splashy in rcS.d if we haven't already in initramfs
        [ "x$RUNLEVEL" = "xN S" -o "x$RUNLEVEL" = "xS" ] || exit 0   
        calculate_steps                                             

        log_daemon_msg "Starting $DESC" $NAME
        if [ "$DEBUG" = "1" ]; then         
            pidof $NAME > /dev/null || \   
            echo "$0: Splashy not running?" >> $STEPS_DIR/splashy.log
        fi                                                         
        if (pidof $NAME > /dev/null); then                         
            # as suggested by John Hughes <john@calva.com> Bug# 462626
            # Splashy is running and we want to avoid our TTY to be corrupted
            stty -icanon -clocal                                           
        else                                                               
            /sbin/$NAME boot                                               
            sleep 0.2                                                       
        fi                                                                 
        # Before X starts we need to turn off the cursor to avoid artifacts:
        for i in 7 8 9 10 11 12; do                                         
            if [ -c /dev/tty$i ]; then                                     
                setterm -cursor off > /dev/tty$i || true                   
            fi                                                             
        done                                                               
        log_end_msg $?                                                     
    ;;                                                                     
    stop)                                                                   
        check_to_enable                                                     
                                                                           
        # avoid displaying ugly text at shutdown                           
        clear >/dev/tty8                                                   
        clear >/dev/tty1                                                   
        # wait for all gdm servers to exit (DBTS# 504389)                   
        COUNTER=0                                                           
        ATTEMPTS=10                                                         
        set +e                                                             
        while [ $COUNTER -lt $ATTEMPTS ]; do                               
            ps -C "gdm"                                                     
            if [ $? -eq 0 ]; then                                           
                sleep 0.5                                                   
                COUNTER=`expr $COUNTER + 1` #works in dash
            else
                break
            fi
        done
        set -e
        if [ $COUNTER -eq $ATTEMPTS ]; then
            echo "$NAME stopping because gdm is still active"
            exit
        fi

        /sbin/splashy_chvt 8

        calculate_steps

        # sanity check, kill Splashy if running (old bug)
        pidof $NAME > /dev/null && splashy_update "exit" && pkill -9 splashy

        log_daemon_msg "Starting $DESC" $NAME
        /sbin/$NAME shutdown
        sleep 0.2
        # tell killall5 to not kill us too early at shutdown/restart:
        pidof $NAME >> /var/run/sendsigs.omit
        RET=$?
        [ -d /lib/init/rw/sendsigs.omit.d ] || mkdir -p /lib/init/rw/sendsigs.omit.d
        cat /var/run/sendsigs.omit >> /lib/init/rw/sendsigs.omit.d/splashy
        # log_end_msg calls splashy_update, so we need to allow Splashy to start
        sleep 0.5
        log_end_msg $RET

    ;;

    restart|force-reload)
        calculate_steps $RUNLEVEL
        ;;

    *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0 źródło: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=539239

3. W /etc/grub.d/00_header wpisać:

set gfxpayload=keep pomiędzy:

set gfxmode=${GRUB_GFXMODE}                                             
  set gfxpayload=keep                                                     
  insmod gfxterm Dzięki temu rozdzielczość początkowa (standardowo 640x480 ale można zmieniać parametrem GRUB_GFXMODE=) będzie utrzymana dla konsoli.

Na koniec

sudo update-grub i działa.

Przydatne linki:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=539239
http://harrison3001.blogspot.com/200...ps-to-set.html
http://linuxers.org/howto/how-change...-splash-images
http://blogs.koolwal.net/2008/12/16/...splash-images/
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis