Aide personnalisation grub

Salut! Je viens de faire la mise à jour de ma debian wheezy xfce en jessie et me suis dit qu’il fallait que je resolve mes vieux problèmes sur ma deb. Je souhaiterai changer le fond d’écran de grub mais je tombe que sur des tutos périmés ou qui ne fonctionne pas. Comment me connseillez-vous de procéder pour changer l’image de grub? Mon second soucis est le fait de supprimer la ligne de debian pour le depannage car elle ne me sert à rien et de ce fait remonter mon windows 7 en dessous de ma debian. Merci d’avoir lu et j’espère pouvoir réussir à résoudre mes problèmes grace à vous. :wink:

Salut,

Je crois que la documentation d’Ubuntu est assez complète sur ce sujet : doc.ubuntu-fr.org/grub-pc

Ajouter la ligne suivante dans /etc/default/grub

Décommenter la ligne suivante dans /etc/default/grub

Pour appliquer les changements, exécuter [mono]update-grub[/mono].

/etc/grub.d/05_debian_theme

[quote]
#!/bin/sh
set -e

grub-mkconfig helper script.

Copyright © 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/share/grub/grub-mkconfig_lib

We want to work in /boot/grub/ only.

test -d /boot/grub; cd /boot/grub

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(){
case $GRUB_DISTRIBUTOR in
Ubuntu|Kubuntu)
# 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/default.grub ]; then
			sed "s/^/${1}/" /lib/plymouth/themes/default.grub
		fi
		;;
	*)
		# Set the traditional Debian blue theme.
		echo "${1}set menu_color_normal=cyan/blue"
		echo "${1}set menu_color_highlight=white/blue"
		;;
esac

}

module_available(){
local module
for module in “${1}.mod” */"${1}.mod"; do
if [ -f “${module}” ]; then
return 0
fi
done
return 1
}

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 ! module_available "${reader}"; 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).[b] Otherwise the backgound
# image needs to be cached under /boot/grub/.[/b]
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}” ] && [ “xsha1sum "${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.
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.

case $GRUB_DISTRIBUTOR in
Ubuntu|Kubuntu)
;;
*)
if set_background_image “/usr/share/images/desktop-base/desktop-grub.png”; then
exit 0
fi
;;
esac

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

set_default_theme[/quote]
La recette à l’ancienne devrait toujours fonctionner sans définir un chemin vers l’image. On se contentait de copier une image en /boot/grub puis de mettre grub à jour.

Pour ma part je me suis simplifié tout cela. J’ai récupéré les sources de Grub Customizer (https://launchpad.net/grub-customizer), un coup de “make” là-dessus.
Je me fais ma configuration comme je l’entends (ordre de démarrage des OS, choix des couleurs, de la police, du fond d’écran). Une fois fait je désinstalle Grub Customizer. Et voilà mon “Grub” personnalisé à souhait.