grub2 (изменение загрузочной заставки)

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
PolecatZZZ
Сообщения: 258
ОС: Debian 6

grub2

Сообщение PolecatZZZ »

Всем привет! Хотелось бы сменить дефолтную заставку при загрузке. Во многих руководствах, которые нашел, в частности здесь говорится, что нужно изменить строку

Код: Выделить всё

for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/winter.{png,tga} ; do
в файле 05_debian_theme. Но у меня нет такой :mellow:
Подскажите, как решить эту проблему?
OpenSUSE >>> Debian
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2104

Re: grub2

Сообщение chitatel »

Э-э-э-э... Это Вы не ракету имеете в виду? Или точно фон grub'a?

Если хотите похерить ракету (актуально в свете последних успехов очечественной космонавтики) то Вам нужно, видимо, смотреть в сторону пакета plymouth - Graphical Boot Animation and Logger
Спасибо сказали:
Аватара пользователя
PolecatZZZ
Сообщения: 258
ОС: Debian 6

Re: grub2

Сообщение PolecatZZZ »

chitatel писал(а):
28.08.2011 17:37
Э-э-э-э... Это Вы не ракету имеете в виду? Или точно фон grub'a?

Если хотите похерить ракету (актуально в свете последних успехов очечественной космонавтики) то Вам нужно, видимо, смотреть в сторону пакета plymouth - Graphical Boot Animation and Logger

Даааа! Именно её! :happy: Но пакет plymouth у меня не установлен. Как быть?

P.S. А за державу всё-таки обидно.
OpenSUSE >>> Debian
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2104

Re: grub2

Сообщение chitatel »

PolecatZZZ писал(а):
28.08.2011 17:50
Как быть?

Установить, наверное.

Я конкретно-точно не помню, но смутный меморайз имеется, что менял этот дебильный Прогресс как раз настройкой plymouth. Вмот сейчас посмотрел - так и есть, ракета в разобранном виде каталоге /usr/share/plymouth/themes/spacefun

Код: Выделить всё

plymouth-set-default-theme -l
details
fade-in
glow
script
solar
spacefun
spinfinity
text

Поменял на какой-то столь же дурацкий spinfinity.
Спасибо сказали:
Аватара пользователя
PolecatZZZ
Сообщения: 258
ОС: Debian 6

Re: grub2

Сообщение PolecatZZZ »

Буду честен - я не совсем понял, что же нужно сделать... :wacko:
OpenSUSE >>> Debian
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: grub2

Сообщение sash-kan »

PolecatZZZ писал(а):
28.08.2011 21:56
Буду честен - я не совсем понял, что же нужно сделать... :wacko:
вы не единственный·
уважаемый chitatel стал настолько загадочен в последние годы, что, возможно, сам не всегда понимает, что советует·

а вообще лучше послушать первоисточник: http://wiki.debian.org/Grub/SplashImage
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2104

Re: grub2

Сообщение chitatel »

Очень может быть, что я ступил. В любом случае лучше проследовать по ссылке, предложенной уважаемым sash-kan.

P.S.
Вобщем так: если ракета стоячая - это наверняка grub. Если летячая - с большой вероятностью plymouth. У меня летячая была "искаропки", сбивал системой plymouth как раз.

Спасибо сказали:
Аватара пользователя
PolecatZZZ
Сообщения: 258
ОС: Debian 6

Re: grub2

Сообщение PolecatZZZ »

ссылка, которую дал sash-kan мне показалась малоинформативной... Кажется здесь поболее будет. Но почему-то после команды

Код: Выделить всё

plymouth-set-default-theme -R spinfinity
желанная тема не устанавливается. Ладно, поставил Plymouth Manager и через GUI поставил более менее подходящую тему. Теперь процесс загрузки красивые шарики-фонарики... Беда в том, что используется две ОС и во время загрузки появляется менюшка с выбором одной из них. И на ней остался этот spacefun, от которого уже начинает тошнить. Как заставку меню изменить? :frusty:
OpenSUSE >>> Debian
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2104

Re: grub2

Сообщение chitatel »

PolecatZZZ писал(а):
29.08.2011 10:09
две ОС и во время загрузки появляется менюшка с выбором одной из них. И на ней остался этот spacefun, от которого уже начинает тошнить. Как заставку меню изменить? :frusty:

А вот это уже grub2 тюнинговать нужно. Покажите тут на всякий случай файл 05_debian_theme.

P.S.
желанная тема не устанавливается.

Надо было посмотреть man(!) и обновить initramfs + grub:
update-grub
update-initramfs -u
Спасибо сказали:
Аватара пользователя
PolecatZZZ
Сообщения: 258
ОС: Debian 6

Re: grub2

Сообщение PolecatZZZ »

05_debian_theme

Код: Выделить всё

#!/bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2010  Alexander Kurtz <kurtz.alex@googlemail.com>
#
# 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/>.

# 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 the traditional Debian blue theme.
    echo "${1}set menu_color_normal=cyan/blue"
    echo "${1}set menu_color_highlight=white/blue"
}

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-640x480.png
0431e97a6c661084c59676c4baeeb8c2f602edb8  debian-blueish-wallpaper-640x480.png
968ecf6696c5638cfe80e8e70aba239526270864  debian-blueish-wallpaper-640x480.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.
# Next try to use the background image and colors specified by desktop-base.
# If we haven't found a background image yet, use the default from desktop-base.
# Finally, if all of the above fails, use the default theme.
set_background_image "`ls -1 *.jpg *.JPG *.jpeg *.JPEG *.png *.PNG *.tga *.TGA 2>/dev/null | head -1`" ||
set_background_image "${WALLPAPER}" "${COLOR_NORMAL}" "${COLOR_HIGHLIGHT}" ||
set_background_image "/usr/share/images/desktop-base/desktop-grub.png" ||
set_default_theme
OpenSUSE >>> Debian
Спасибо сказали:
Аватара пользователя
PolecatZZZ
Сообщения: 258
ОС: Debian 6

Re: grub2

Сообщение PolecatZZZ »

Для чего ещё в папке /etc/alternatives/grub/ лежат .svg-изображения заставки?
OpenSUSE >>> Debian
Спасибо сказали:
Аватара пользователя
PolecatZZZ
Сообщения: 258
ОС: Debian 6

Re: grub2

Сообщение PolecatZZZ »

Решено. Отредактировал файл /usr/share/desktop-base/grub_background.sh. Там указала нужную заставку.
OpenSUSE >>> Debian
Спасибо сказали:
c0de
Сообщения: 10

Re: grub2

Сообщение c0de »

все всем виноват http://packages.debian.org/squeeze/desktop-base этот пакет,в зависимостях от gnome и xfce
а ракету ужасной сделали,позор
Спасибо сказали: