[Ubuntu 11.04] GRUB2 – zmiana tła

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Zmiana tła GRUB2 w Ubuntu 11.04 nie jest już tak skomplikowana jak wcześniej.

Wymagania dotyczące obrazka

Obraz musi być zapisany w jednym z poniższych rozszerzeń:

  • jpeg,
  • png,
  • tga.

Rozdzielczość i głębia kolorów również jest ściśle określona. Szczegółowe informacje uzyskasz wciskając klawisz C podczas uruchamiania GRUBa (gdy widoczna jest lista systemów) i wpisując w wierszu poleceń:

vbeinfo

Zmiana tła w GRUB2

  1. Pierwszym krokiem będzie przekopiowanie pliku z tłem do katalogu /boot/grub. Jako, że katalog znajduje się w katalogu głównym, potrzebne będą prawa roota:
    sudo cp /ścieżka/do/obrazka/z/tłem.png /boot/grub

    Drugim rozwiązaniem wpisanie w terminalu:

    sudo nautilus

    i przekopiowanie pliku w tradycyjny sposób. Owe polecenie uruchamia menedżer plików z prawami administratora i dotyczy to jedynie tego okna, które pojawiło się po wpisaniu polecenia.

  2. Zaktualizuj GRUBa:
    sudo update-grub

    Po wykonaniu polecenia powinna pojawić się taka linijka:

    Generating grub.cfg ...
    Found background image: plik_z_tlem.jpg
    Found linux image: /boot/vmlinuz-2.6.38-8-generic
    Found initrd image: /boot/initrd.img-2.6.38-8-generic
    Found memtest86+ image: /boot/memtest86+.bin
    Found Windows 7 (loader) on /dev/sda1
    done

    Gdzie plik_z_tlem.jpg to plik, który przekopiowałeś.

Uruchom ponownie komputer, aby cieszyć się z rezultatów.

Źródło: ubuntuguide.net
Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • Mewtwomew

    Rewelacyjnie :) Od razu dałem sobie Tux’a na tło, bardzo ładnie to wygląda. Szkoda trochę, że nie znika zaraz po wybraniu systemu, ale to w sumie żadna wada.

    • Crea

      To zrób sobie tło na ekran logowania i dla pulpitu z tym samym Tux’em co tło dla GRUBa.

  • rasegan

    robię tak jak jest opisane i nic w dodatku namieszałem w 05_debian_theme
    i przy upgrade mam tak:
    lukasz@lukasz-M68M-S2P:~$ sudo update-grub
    [sudo] password for lukasz:
    Generating grub.cfg …
    Found background image: /usr/share/images/desktop-base/desktop-grub.png
    [: 154: missing ]
    Found Microsoft Windows XP Professional on /dev/sda1
    Found linux image: /boot/vmlinuz-2.6.38-13-generic
    Found initrd image: /boot/initrd.img-2.6.38-13-generic
    Found linux image: /boot/vmlinuz-2.6.38-8-generic
    Found initrd image: /boot/initrd.img-2.6.38-8-generic
    Found memtest86+ image: /boot/memtest86+.bin
    done
    kombinowałem na różne sposoby i nic w dodatku w menadżerze uruchamiania nie mam opcji do ustawiania tła nie wiem czemu? w tej wersji nie ma tam tej opcji?

    • http://www.ubuntu-pomoc.org Szmitas

      A po co w tym pliku grzebałeś? System wskazuje Ci gdzie leży problem – 154 linijka owego pliku.

    • http://www.ubuntu-pomoc.org Szmitas
      # Next try to use the background image and colors specified by desktop-base.
      if set_background_image "${WALLPAPER}" "${COLOR_NORMAL}" "${COLOR_HIGHLIGHT}"; then
      	exit 0
      fi
  • rasegan

    a to zawartość 05_debian_theme

    #!/bin/sh
    set -e

    # grub-mkconfig helper script.
    # Copyright (C) 2010 Alexander Kurtz
    #
    # 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 .

    # Include the GRUB helper library for grub-mkconfig.
    . /usr/lib/grub/grub-mkconfig_lib

    # We want to work in /boot/grub/ only.
    test -d „${GRUB_PREFIX}”; cd „${GRUB_PREFIX}”

    # Set the location of a possibly necessary cache file for the background image.
    # NOTE: This MUST BE A DOTFILE to avoid confusing it with user-defined images.
    BACKGROUND_CACHE=”.background_cache”

    set_default_theme(){
    # Set a monochromatic theme for Ubuntu.
    echo „${1}set menu_color_normal=white/black”
    echo „${1}set menu_color_highlight=black/light-gray”

    if [ -e /lib/plymouth/themes/moreblue-orbit-wallpaper.png; then
    sed „s/^/${1}/” /lib/plymouth/themes/moreblue-orbit-wallpaper.png.
    fi
    }

    set_background_image(){
    # Step #1: Search all available output modes …
    local output
    for output in ${GRUB_TERMINAL_OUTPUT}; do
    if [ „x$output” = „xgfxterm” ]; then
    break
    fi
    done

    # … and check if we are able to display a background image at all.
    if ! [ „x${output}” = „xgfxterm” ]; then
    return 1
    fi

    # Step #2: Check if the specified background image exists.
    if ! [ -f „${1}” ]; then
    return 2
    fi

    # Step #3: Search the correct GRUB module for our background image.
    local reader
    case „${1}” in
    *.jpg|*.JPG|*.jpeg|*.JPEG) reader=”jpeg”;;
    *.png|*.PNG) reader=”png”;;
    *.tga|*.TGA) reader=”tga”;;
    *) return 3;; # Unknown image type.
    esac

    # Step #4: Check if the necessary GRUB module is available.
    if ! [ -f „${reader}.mod” ]; then
    return 4
    fi

    # Step #5: Check if GRUB can read the background image directly.
    # If so, we can remove the cache file (if any). Otherwise the backgound
    # image needs to be cached under /boot/grub/.
    if is_path_readable_by_grub „${1}”; then
    rm –force „${BACKGROUND_CACHE}.jpeg” \
    „${BACKGROUND_CACHE}.png” „${BACKGROUND_CACHE}.tga”
    elif cp „${1}” „${BACKGROUND_CACHE}.${reader}”; then
    set — „${BACKGROUND_CACHE}.${reader}” „${2}” „${3}”
    else
    return 5
    fi

    # Step #6: Prepare GRUB to read the background image.
    if ! prepare_grub_to_access_device „`${grub_probe} –target=device „${1}”`”; then
    return 6
    fi

    # Step #7: Everything went fine, print out a message to stderr …
    echo „Found background image: ${1}” >&2

    # … and write our configuration snippet to stdout. Use the colors
    # desktop-base specified. If we’re using a user-defined background, use
    # the default colors since we’ve got no idea how the image looks like.
    # If loading the background image fails, use the default theme.
    echo „insmod ${reader}”
    echo „if background_image `make_system_path_relative_to_its_root „${1}”`; then”
    if [ -n „${2}” ]; then
    echo ” set color_normal=${2}”
    fi
    if [ -n „${3}” ]; then
    echo ” set color_highlight=${3}”
    fi
    if [ -z „${2}” ] && [ -z „${3}” ]; then
    echo ” true”
    fi
    echo „else”
    set_default_theme ” ”
    echo „fi”
    }

    # Earlier versions of grub-pc copied the default background image to /boot/grub
    # during postinst. Remove those obsolete images if they haven’t been touched by
    # the user. They are still available under /usr/share/images/desktop-base/ if
    # desktop-base is installed.
    while read checksum background; do
    if [ -f „${background}” ] && [ „x`sha1sum „${background}”`” = „x${checksum} ${background}” ]; then
    echo „Removing old background image: ${background}” >&2
    rm „${background}”
    fi
    done <<EOF
    648ee65dd0c157a69b019a5372cbcfea4fc754a5 debian-blueish-wallpaper-640×480.png
    0431e97a6c661084c59676c4baeeb8c2f602edb8 debian-blueish-wallpaper-640×480.png
    968ecf6696c5638cfe80e8e70aba239526270864 debian-blueish-wallpaper-640×480.tga
    11143e8c92a073401de0b0fd42d0c052af4ccd9b moreblue-orbit-grub.png
    d00d5e505ab63f2d53fa880bfac447e2d3bb197c moreblue-orbit-grub.png
    f5b12c1009ec0a3b029185f6b66cd0d7e5611019 moreblue-orbit-grub.png
    EOF

    # Include the configuration of desktop-base if available.
    if [ -f "/usr/share/desktop-base/grub_background.sh" ]; then
    . "/usr/share/desktop-base/grub_background.sh"
    fi

    # First check whether the user has specified a background image explicitly.
    # If so, try to use it. Don't try the other possibilities in that case
    # (#608263).
    if [ -n "${GRUB_BACKGROUND+x}" ]; then
    set_background_image "${GRUB_BACKGROUND}" || set_default_theme
    exit 0
    fi

    # Next search for pictures the user put into /boot/grub/ and use the first one.
    for background in *.jpg *.JPG *.jpeg *.JPEG *.png *.PNG *.tga *.TGA; do
    if set_background_image "${background}"; then
    exit 0
    fi
    done

    # Next try to use the background image and colors specified by desktop-base.
    if set_background_image "${WALLPAPER}" "${COLOR_NORMAL}" "${COLOR_HIGHLIGHT}"; then
    exit 0
    fi

    # If we haven't found a background image yet, use the default from desktop-base.
    if set_background_image "/usr/share/images/desktop-base/desktop-grub.png"; then
    exit 0
    fi

    # Finally, if all of the above fails, use the default theme.
    set_default_theme

  • rasegan

    kombinowałem na różne sposoby również w ten http://www.ubucentrum.net/2009/11/co-warto-wiedziec-o-grub-2-edycja.html dlatego tam zaglądałem

  • rasegan

    linijka w której grzebałem:

    if [ -e /lib/plymouth/themes/moreblue-orbit-wallpaper.png; then
    sed „s/^/${1}/” /lib/plymouth/themes/moreblue-orbit-wallpaper.png.
    fi
    }

    czy mógł by ktoś wkleić treść pliku 05_debian_theme który nie zawiera ingerencji w niego

    • http://www.ubuntu-pomoc.org Szmitas
      • rasegan

        Dziękuje za pomoc :) jesteś wielki ;)

  • rasegan