Ubuntu Grub retten oder Paketliste erstellen

Hallo zusammen
Aaaalso ich habe auf meine Rechner ein Ubuntu 11.10 laufen.
Daneben habe ich ein Backtrack 5 installiert. Lief alles wunderbar, bis ich eines schönen Tages einen fatalen Fehler in der Paketverwaltung gemacht habe und mein Backtrack einfach schnell neu aufgesetzt habe (waren keine großen Daten oder Einstellungen drauf).
Nach einem Reboot erschien aber nicht mehr das gewohnte Grub Menü, sondern nur noch eine Grub Kommandozeile. Auch stand da, dass es sich wohl um Grub 1.99 handelt (sowohl Backtrack aka. Ubuntu 10.04 als auch Ubuntu 11.10 benutzen doch Grub 2, oder?).
Nun ja, ich habe von einer Live-CD Backtrack deinstalliert und mit folgenden Anleitungen versucht, den Grub wiederherzustellen:

http://wiki.ubuntuusers.de/GRUB_2/Reparatur#chroot-M…

http://wiki.ubuntuusers.de/GRUB_2/Reparatur#Root-Dir…

sowie eigentlich alle Anleitungen aus diesem Abschnitt (konnte natürlich nicht ins laufende System, habe also von Live-CD und chroot gearbeitet)

http://wiki.ubuntuusers.de/GRUB_2/Reparatur#Reparatu…

Ok, ich würde euch nicht schreiben, wenn eine einzige der Methoden funktioniert hätte =(
Dabei sah es so gut aus… (während die Schritte durchliefen, hat er so Sachen geprintet wie ‚found Ubuntu 11.10 on /dev/sda2‘).

Da mein Internetzugang hier im Wohnheim über ein ziemlich ekelhaftes VPN läuft, kriege ich während der Installation kein Internet und konnte Grub nicht vollkommen neu installieren, wie es auf den o.g. Seiten angeboten wird. Das werde ich gleich noch ausprobieren, wollte nur hören, ob ihr auch schon Idee habt.

Andere Frage: WENN ich das scheiß Grub nicht wieder flott bekomme, würde ich mir gern die Mühe ersparen, jedes einzelne Paket neu zu installieren (weiß auch gar nicht mehr was das alles war). Ich weiß dass man sich über Synaptic (ja das habe ich mir auf 11.10 wieder drauf installiert) eine Skript erstellen lassen kann, dass alle installierten Pakete wieder runterläd. Ich habe diese Funktion aber bisher nur über die GUI gefunden, an die ich ja im Moment nicht rankomme. Habt ihr eine Idee wie ich das über das Terminal (also chroot von der Live-CD) machen kann?

So viele Worte für 2 Fragen =)
Ich hoffe euch fällt was ein!
Liebe Grüße und ein schönes Wochenende
elactic

Hallo elactic,

Auch stand da,
dass es sich wohl um Grub 1.99 handelt (sowohl Backtrack aka.
Ubuntu 10.04 als auch Ubuntu 11.10 benutzen doch Grub 2,
oder?).

Grub 1.99 ist Grub2
http://www.bitblokes.de/2011/05/ganz-nah-an-version-…

Ok, ich würde euch nicht schreiben, wenn eine einzige der
Methoden funktioniert hätte =(

„Es funktioniert nicht“ ist eine lausige Fehlermeldung… Die Methoden funktionieren schon, aber so ist es schwer, zu erraten, was bei dir nicht geklappt hat. Außerdem, wenn Du in die Grub-Shell kommst, ist nicht dein Grub2 defekt, sondern etwas an der Konfiguration stimmt nicht.

Ich weiß dass man sich über Synaptic (ja das habe
ich mir auf 11.10 wieder drauf installiert) eine Skript
erstellen lassen kann, dass alle installierten Pakete wieder
runterläd.

Mit

dpkg --get-selections "\*"

erhältst Du eine Liste aller Pakete samt ihrem Zustand. Diese Liste kannst Du mit

dpkg --set-selections 
wieder einlesen, um alle Pakte neu zu installieren. Näheres dazu siehe hier:
http://debiananwenderhandbuch.de/dpkg.html
ab Punkt 4.37.12 --get-selections
Aber willst Du das wirklich tun?

Viele Grüße
Marvin

Huhu

Grub 1.99 ist Grub2

ahh alles klar, na dann =)

„Es funktioniert nicht“ ist eine lausige Fehlermeldung… Die
Methoden funktionieren schon, aber so ist es schwer, zu
erraten, was bei dir nicht geklappt hat. Außerdem, wenn Du in
die Grub-Shell kommst, ist nicht dein Grub2 defekt, sondern
etwas an der Konfiguration stimmt nicht.

Naja dass die Anleitungen da schon ihre Existenzberechtigung haben, ist mir schon klar, und ich kann dir leider keine bessere Beschreibung des Fehlers geben.
Ich führe die Anweisungen Schritt für Schritt aus, es gibt keine Fehlermeldungen jeglicher Art, aber wenn ich neu starte lande ich wieder in der Konsole.

Also ich habe mich jetzt mal mit der Konsole auseinander gesetzt und bin mit der Abfolge:
set root=(hd0,msdos1)
linux /vmlinuz root=/dev/sda1
initrd /initrd.img
boot
wieder in mein System gekommen.
Danach habe ich versucht die Konfigurationsdatei neu zu erstellen
update-grub
und neu in den MBR zu laden
grub-setup /dev/sda
Oder muss es da sda1 heißen? (sda ist die platte, sda1 meine Ubuntu Partition, sda2 der Swap).

Ich komme halt immer wieder auf die Grub Konsole, was zwar heißt, dass Grub noch lebt, aber ich werde sicher nicht jedes mal diese Abfolge da oben eingeben =)
Hat jemand eine Idee woran das liegen könnte, oder welche Schritte ich unternehmen könnte?

Liebe Grüße und einen schönen 2. Advent =)

Hallo elactic,

Also ich habe mich jetzt mal mit der Konsole auseinander
gesetzt und bin mit der Abfolge:

set root=(hd0,msdos1)

Was zum Teufel machst Du da mit msdos1? Ist da noch was mit Windows im Spiel?

Danach habe ich versucht die Konfigurationsdatei neu zu
erstellen

Welche? Doch nicht /boot/grub/grub.cfg? Die wird nicht mit der Hand verändert. Also, welche Datei in /etc/grub.d hast Du wie verändert?

grub-setup /dev/sda
Oder muss es da sda1 heißen?

/dev/sda ist der MBR deiner ersten Festplatte. Das dürfte der Normalfall sein. sda1 wäre möglich, wenn noch ein anderer, vorgelagerter Bootmanager im Spiel ist und wenn dein Grub2 nicht im MBR, sondern in der ersten Partition der ersten FP sitzt (möglich, aber nicht wahrscheinlich).
Aber gut, ein paar Info zu deinen Partitionen, BS usw. wären schon hilfreich. Post mal die Ausgabe folgender Befehle:

sudo fdisk -l
sudo blkid
sudo os-prober

und den Inhalt der /boot/grub/grub.cfg
Vielleicht trägt das zur Klärung bei.

Viele Grüße
Marvin

Hi,

(hd0,msdos1) würde auf eine veraltete Grub-Version deuten. Die neueren fangen mit 1 zu zählen an. msdos1 wird so als Bezeichnung von grub vorgegeben, aber das ist mehr als ein halbes Jahr her, dass ich dieses Problem mal hatte.

führe also grub-setup sowohl als auch aus.

Prüfe auch, wie oben angefragt, welches die eingestellte Boot-Partition ist.

Der Inhalt von /boot/grub/device.map könnte auch interessant sein.

Gruß, Lutz

Also ich habe mich jetzt mal mit der Konsole auseinander
gesetzt und bin mit der Abfolge:

set root=(hd0,msdos1)

Was zum Teufel machst Du da mit msdos1? Ist da noch was mit
Windows im Spiel?

Ganz ruhig, das hat mich auch gewundert, aber wenn ich im Grub Terminal ls eingebe, bietet er mir eben (hd0, msdos1) und (hd0, msdos2) an.

Windows war auf dem Rechner echt ne Weile nicht, und da dürfte eigentlich auch nichts von übrig sein.

Danach habe ich versucht die Konfigurationsdatei neu zu
erstellen

Welche? Doch nicht /boot/grub/grub.cfg? Die wird nicht mit der
Hand verändert. Also, welche Datei in /etc/grub.d hast Du wie
verändert?

Ich verändere da gar nichts per hand, Bootloader sind für mich ein Thema, von dem ich solange es geht die Finger lasse!
Nein ich habe mich an diese Anleitung hier gehalten:
http://wiki.ubuntuusers.de/GRUB_2/Reparatur?highligh…

Scheint aber tatsächlich die grub.cfg zu betreffen.

Aber gut, ein paar Info zu deinen Partitionen, BS usw. wären
schon hilfreich. Post mal die Ausgabe folgender Befehle:

sudo fdisk -l

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005a2e6

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 558005275 279001614 83 Linux
/dev/sda2 558006272 566198271 4096000 82 Linux swap / Solaris

sudo blkid/dev/sda1: UUID=„343322a3-eeef-4533-b0ff-ff2cd0384202“ TYPE=„ext4“

/dev/sda2: LABEL=„sda2“ UUID=„553bf181-3b21-45bd-ac1a-54a46b4e1592“ TYPE=„swap“

sudo os-prober

Hier passiert garnichts, keine Ausgabe.

und den Inhalt der /boot/grub/grub.cfg

DO NOT EDIT THIS FILE

It is automatically generated by grub-mkconfig using templates

from /etc/grub.d and settings from /etc/default/grub

BEGIN /etc/grub.d/00_header

if [-s $prefix/grubenv]; then
set have_grubenv=true
load_env
fi
set default=„0“
if ["${prev_saved_entry}"]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [-z „${boot_once}“]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function recordfail {
set recordfail=1
if [-n „${have_grubenv}“]; then if [-z „${boot_once}“]; then save_env recordfail; fi; fi
}

function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root=’(hd0,msdos1)’
search --no-floppy --fs-uuid --set=root 343322a3-eeef-4533-b0ff-ff2cd0384202
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=1280x1024
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root=’(hd0,msdos1)’
search --no-floppy --fs-uuid --set=root 343322a3-eeef-4533-b0ff-ff2cd0384202
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if ["${recordfail}" = 1]; then
set timeout=-1
else
set timeout=0
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/light-gray

END /etc/grub.d/05_debian_theme

BEGIN /etc/grub.d/10_linux_proxy

END /etc/grub.d/10_linux_proxy

BEGIN /etc/grub.d/30_os-prober_proxy

END /etc/grub.d/30_os-prober_proxy

Ich hoffe das hilft dir!
Viele Grüße

führe also grub-setup sowohl als auch aus.

Tut mir Leid, „als auch“ was?

Prüfe auch, wie oben angefragt, welches die eingestellte
Boot-Partition ist.

Wie finde ich das raus?

Der Inhalt von /boot/grub/device.map könnte auch interessant
sein.

Haha, die gibt es garnicht :wink:

Wenn das kein Hinweis ist… ^^

Viele Grüße

Also nur um das nochmal zu betonen:
Das Betriebssystem, was ich jetzt auf dem Rechner habe ist ein Ubuntu 11.10.
SPÄTER habe ich das Backtrack dazuinstalliert, die Verwaltung des Bootloaders ging also immer von der zweiten Partition aus.
Die gibt es jetzt nicht mehr!
Ich hatte es mir halt so vorgestellt, dass ich „einfach“ alle nötigen Konfigurationsdateien neu erstellen und in den MBR laden kann… zu naiv?

Hallo elactic,

set root=(hd0,msdos1)

Was zum Teufel machst Du da mit msdos1? Ist da noch was mit
Windows im Spiel?

Ganz ruhig, das hat mich auch gewundert, aber wenn ich im Grub
Terminal ls eingebe, bietet er mir eben (hd0, msdos1) und
(hd0, msdos2) an.

Ok, habe mich wieder beruhigt. Das msdos ist laut Handbuch möglich, aber doch etwas irritierend.
„the string ‘msdos’ indicates the partition scheme, while the second integer, ‘2’, indicates the partition number“
http://www.gnu.org/software/grub/manual/grub.html#Na…
Bei mir kommt nur (hd0,1), aber offenbar ist das egal.

Scheint aber tatsächlich die grub.cfg zu betreffen.

Ja, die ist sehr unkonventionell aufgebaut, um es mal vorsichtig auszudrücken…

> ### BEGIN /etc/grub.d/10\_linux\_proxy ###  
> ### END /etc/grub.d/10\_linux\_proxy ###  
>   
> ### BEGIN /etc/grub.d/30\_os-prober\_proxy ###  
> ### END /etc/grub.d/30\_os-prober\_proxy ###

Warum deine Skript-Header alle auf _proxy enden
/etc/grub.d/10_linux _proxy
/etc/grub.d/30_os-prober _proxy
mag ich ja noch auf Version 1.99 verbuchen, ich kenne die jedenfalls als 10_linux und 30_os-prober.
Schlimmer ist, daß /etc/grub.d/10_linux keinerlei Ausgabe liefert. Damit fehlen auch die Menupunkte

menuentry "Ubuntu..." {
...
linux /vmlinuz... root=UUID=ff2c12f8... ro 
 initrd /initrd.img...
}

da kann ja GRUB nur in der Shell landen.
Es gibt zwei Möglichkeiten für dich:
Die gründliche wäre, die Datei /etc/default/grub zu überprüfen, ob dort alle default-Werte eingetragen sind und auch ob die Skripte in /etc/grub.d/ alle ordentlich aussehen, oder ob dort etwas verändert wurde, warum und woher auch immer. Eine Hilfe dazu bietet diese Seite:
http://wiki.ubuntuusers.de/grub_2/konfiguration
Auf jeden Fall sollte die Datei /etc/grub.d/10_linux u.a. solche Zeilen enthalten:

linux\_entry ()
{
 cat 
Wenn merkwürdigerweise im Verzeichnis /etc/grub.d/ zwei Skripte existieren, eins **10\_linux** und ein anderes **10\_linux\_proxy** , dann lösche oder verschiebe das Skript, das auf \_proxy endet. Entsprechendes gilt für andere Paare dieser Art in dem Verzeichnis. Aber wirklich nur, wenn ein Skript ohne \_proxy **und ein anderes gleichnamiges** mit dem Zusatz \_proxy existiert!

Der zweite und pragmatische Weg, wäre die Reinstallation von Grub2, also folgende Befehle:


    sudo apt-get update
    sudo apt-get --reinstall install grub-common grub-pc os-prober
    grub-gfxpayload-lists


letzter Befehl nur ab Ubuntu Natty Narwhal.
Gut, Du könntest auch mit


    sudo grub-mkconfig


dir probeweise eine grub.cfg im Terminal ausgeben und nachsehen, ob da die fehlenden Einträge "menuentry ..." (s.o.) vorkommen, oder diese erzeugte Datei hier posten (lässt sich mit sudo grub-mkconfig -o dateiname in eine Datei umleiten). Aber ob das erfolgreich ist bezweifle ich stark.

Viele Grüße
Marvin

Es gibt zwei Möglichkeiten für dich:
Die gründliche wäre, die Datei /etc/default/grub zu
überprüfen, ob dort alle default-Werte eingetragen sind

sieht gut aus

und auch ob die Skripte in /etc/grub.d/ alle ordentlich aussehen,
oder ob dort etwas verändert wurde.

ok, der Seite zur Folge sollten diese Dateien existieren:

00\_header
05\_debian\_theme
10\_linux
20\_memtest86+
30\_os\_prober
40\_custom
20\_linux\_xen
41\_custom

Bei mir gibt es folgende Skripts:

00\_header 
20\_linux\_xen 
40\_custom 
05\_debian\_theme 
20\_memtest86+ 
41\_custom 
10\_linux\_proxy 
30\_os-prober\_proxy

und die Ordner:

bin
proxifiedScripts

warum und woher auch immer

ich fürchte ich bin Schuld *schäm*

Ich habe schon des öfteren das Tool ‚Grub Customizer‘ benutzt.
Geniales Tool - für Laien!
Ich habe mal versucht die Booteinträge aus meinem Ubuntu zu modifizieren, was natürlich nicht funktioniert hat, weil der Bootloader ja aus dem Backtrack verwaltet wurde. Hab ich es damit vielleicht zerhauen?

Auf jeden Fall sollte die Datei /etc/grub.d/10_linux u.a.
solche Zeilen enthalten:

linux_entry ()
{
cat

Wie gesagt, es gibt nur die 10_linux_proxy und die sieht so aus:

#!/bin/sh
#THIS IS A GRUB PROXY SCRIPT
'/etc/grub.d/proxifiedScripts/linux' | /etc/grub.d/bin/grubcfg\_proxy "-\*
+'Ubuntu, with Linux 3.0.0-12-generic'
-'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)'
"

Gruselig oder?^^

Der zweite und pragmatische Weg, wäre die Reinstallation von
Grub2, also folgende Befehle:

sudo apt-get update
sudo apt-get --reinstall install grub-common grub-pc os-prober
grub-gfxpayload-lists

letzter Befehl nur ab Ubuntu Natty Narwhal.

Das hatte ich schonmal gemacht, hatte ncihts gebracht.
Habs natürlich nochmal gemacht (hier bleibt nichts unversucht!)

Gut, Du könntest auch mit

sudo grub-mkconfig

dir probeweise eine grub.cfg im Terminal ausgeben und
nachsehen, ob da die fehlenden Einträge „menuentry …“ (s.o.)
vorkommen, oder diese erzeugte Datei hier posten (lässt sich
mit sudo grub-mkconfig -o dateiname in eine Datei umleiten).

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00\_header ###
if [-s $prefix/grubenv]; then
 set have\_grubenv=true
 load\_env
fi
set default="0"
if ["${prev\_saved\_entry}"]; then
 set saved\_entry="${prev\_saved\_entry}"
 save\_env saved\_entry
 set prev\_saved\_entry=
 save\_env prev\_saved\_entry
 set boot\_once=true
fi

function savedefault {
 if [-z "${boot\_once}"]; then
 saved\_entry="${chosen}"
 save\_env saved\_entry
 fi
}

function recordfail {
 set recordfail=1
 if [-n "${have\_grubenv}"]; then if [-z "${boot\_once}"]; then save\_env recordfail; fi; fi
}

function load\_video {
 insmod vbe
 insmod vga
 insmod video\_bochs
 insmod video\_cirrus
}

insmod part\_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 343322a3-eeef-4533-b0ff-ff2cd0384202
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=1280x1024
 load\_video
 insmod gfxterm
 insmod part\_msdos
 insmod ext2
 set root='(hd0,msdos1)'
 search --no-floppy --fs-uuid --set=root 343322a3-eeef-4533-b0ff-ff2cd0384202
 set locale\_dir=($root)/boot/grub/locale
 set lang=en\_US
 insmod gettext
fi
terminal\_output gfxterm
if ["${recordfail}" = 1]; then
 set timeout=-1
else
 set timeout=0
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/light-gray
### END /etc/grub.d/05\_debian\_theme ###

### BEGIN /etc/grub.d/10\_linux\_proxy ###
Found linux image: /boot/vmlinuz-3.0.0-13-generic
Found initrd image: /boot/initrd.img-3.0.0-13-generic
Found linux image: /boot/vmlinuz-3.0.0-12-generic
Found initrd image: /boot/initrd.img-3.0.0-12-generic
### END /etc/grub.d/10\_linux\_proxy ###

### BEGIN /etc/grub.d/30\_os-prober\_proxy ###
### END /etc/grub.d/30\_os-prober\_proxy ###

Aber ob das erfolgreich ist bezweifle ich stark.

Wie Recht du hattest =)

Man bei mir baut sich grad Frust auf und meine Hand zuckt zur Live-CD…
Naja vielleicht hast Du ja noch eine geniale Idee.
Kann man das nicht wirklich einfach alles ‚resetten‘? (Have you tried turning it off and on again…)
Vielen Dank aber zwischenzeitig für deine Bemühungen!
Grüße!

ahhhhhhhhhh
ich glaub der Grub-Customizer wars tatsächlich!
Schau dir dashier mal an:
http://ubuntuforums.org/showthread.php?t=1752585&page=3
Ich versuche mich mal selbst durchzuarbeiten, aber vielleicht siehst du das ganze schneller =)

Also in besagtem Ordner /etc/grub.d/proxifiedScripts
liegen die Dateien linux mit dem Inhalt:

#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc.
#
# 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 .

prefix=/usr
exec\_prefix=${prefix}
bindir=${exec\_prefix}/bin
libdir=${exec\_prefix}/lib
. ${libdir}/grub/grub-mkconfig\_lib

export TEXTDOMAIN=grub
export TEXTDOMAINDIR=${prefix}/share/locale

CLASS="--class gnu-linux --class gnu --class os"

if ["x${GRUB\_DISTRIBUTOR}" = "x"] ; then
 OS=GNU/Linux
else
 OS="${GRUB\_DISTRIBUTOR}"
 CLASS="--class $(echo ${GRUB\_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
fi

# loop-AES arranges things so that /dev/loop/X can be our root device, but
# the initrds that Linux uses don't like that.
case ${GRUB\_DEVICE} in
 /dev/loop/\*|/dev/loop[0-9])
 GRUB\_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
 # We can't cope with devices loop-mounted from files here.
 case ${GRUB\_DEVICE} in
 /dev/\*) ;;
 \*) exit 0 ;;
 esac
 ;;
esac

if ["x${GRUB\_DEVICE\_UUID}" = "x"] || ["x${GRUB\_DISABLE\_LINUX\_UUID}" = "xtrue"] \
 || ! test -e "/dev/disk/by-uuid/${GRUB\_DEVICE\_UUID}" \
 || uses\_abstraction "${GRUB\_DEVICE}" lvm; then
 LINUX\_ROOT\_DEVICE=${GRUB\_DEVICE}
else
 LINUX\_ROOT\_DEVICE=UUID=${GRUB\_DEVICE\_UUID}
fi

if ["x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2\>/dev/null || true`" = xbtrfs] \
 || ["x`stat -f --printf=%T /`" = xbtrfs]; then
 rootsubvol="`make_system_path_relative_to_its_root /`"
 rootsubvol="${rootsubvol#/}"
 if ["x${rootsubvol}" != x]; then
 GRUB\_CMDLINE\_LINUX="rootflags=subvol=${rootsubvol} ${GRUB\_CMDLINE\_LINUX}"
 fi
fi

for word in $GRUB\_CMDLINE\_LINUX\_DEFAULT; do
 if ["$word" = splash]; then
 GRUB\_CMDLINE\_LINUX\_DEFAULT="$GRUB\_CMDLINE\_LINUX\_DEFAULT vt.handoff=7"
 fi
done

# add crashkernel option if we have the required tools
if [-x "/usr/bin/makedumpfile"] && [-x "/sbin/kexec"]; then
 GRUB\_CMDLINE\_EXTRA="$GRUB\_CMDLINE\_EXTRA crashkernel=384M-2G:64M,2G-:128M"
fi

linux\_entry ()
{
 os="$1"
 version="$2"
 recovery="$3"
 args="$4"
 if ${recovery} ; then
 title="$(gettext\_quoted "%s, with Linux %s (recovery mode)")"
 else
 title="$(gettext\_quoted "%s, with Linux %s")"
 fi
 printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
 cat &2
 basename=`basename $linux`
 dirname=`dirname $linux`
 rel\_dirname=`make_system_path_relative_to_its_root $dirname`
 version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
 alt\_version=`echo $version | sed -e "s,\.old$,,g"`
 linux\_root\_device\_thisversion="${LINUX\_ROOT\_DEVICE}"

 initrd=
 for i in "initrd.img-${version}" "initrd-${version}.img" \
 "initrd-${version}" "initramfs-${version}.img" \
 "initrd.img-${alt\_version}" "initrd-${alt\_version}.img" \
 "initrd-${alt\_version}" "initramfs-${alt\_version}.img" \
 "initramfs-genkernel-${version}" \
 "initramfs-genkernel-${alt\_version}"; do
 if test -e "${dirname}/${i}" ; then
 initrd="$i"
 break
 fi
 done

 config=
 for i in "${dirname}/config-${version}" "${dirname}/config-${alt\_version}" "/etc/kernels/kernel-config-${version}" ; do
 if test -e "${i}" ; then
 config="${i}"
 break
 fi
 done

 initramfs=
 if test -n "${config}" ; then
 initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
 fi

 if test -n "${initrd}" ; then
 echo "Found initrd image: ${dirname}/${initrd}" \>&2
 elif test -z "${initramfs}" ; then
 # "UUID=" magic is parsed by initrd or initramfs. Since there's
 # no initrd or builtin initramfs, it can't work here.
 linux\_root\_device\_thisversion=${GRUB\_DEVICE}
 fi

 linux\_entry "${OS}" "${version}" false \
 "${GRUB\_CMDLINE\_LINUX} ${GRUB\_CMDLINE\_EXTRA} ${GRUB\_CMDLINE\_LINUX\_DEFAULT}" \
 quiet
 if ["x${GRUB\_DISABLE\_RECOVERY}" != "xtrue"]; then
 if [-x /lib/recovery-mode/recovery-menu]; then
 linux\_entry "${OS}" "${version}" true \
 "recovery nomodeset ${GRUB\_CMDLINE\_LINUX}"
 else
 linux\_entry "${OS}" "${version}" true \
 "single nomodeset ${GRUB\_CMDLINE\_LINUX}"
 fi
 fi

 list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`

 if ["$list"] && ! $in\_submenu; then
 echo "submenu \"Previous Linux versions\" {"
 in\_submenu=:
 fi
done

if $in\_submenu; then
 echo "}"
fi

und die Datei os-prober:

#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc.
#
# 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 .

prefix=/usr
exec\_prefix=${prefix}
libdir=${exec\_prefix}/lib

. ${libdir}/grub/grub-mkconfig\_lib

found\_other\_os=

make\_timeout () {
 if ["x${found\_other\_os}" = "x"] ; then
 if ["x${1}" != "x"] ; then
 if ["x${GRUB\_HIDDEN\_TIMEOUT\_QUIET}" = "xtrue"] ; then
 verbose=
 else
 verbose=" --verbose"
 fi

 if ["x${1}" = "x0"] ; then
 cat /dev/null`" -o -z "`which linux-boot-prober 2\> /dev/null`" ] ; then
 # missing os-prober and/or linux-boot-prober
 adjust\_timeout
 exit 0
fi

OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
if [-z "${OSPROBED}"] ; then
 # empty os-prober output, nothing doing
 adjust\_timeout
 exit 0
fi

osx\_entry() {
 found\_other\_os=1
 cat &2

 case ${BOOT} in
 chain)

 case ${LONGNAME} in
 Windows\*)
 if [-z "$wubi"]; then
 if [-x /usr/share/lupin-support/grub-mkimage] && \
 /usr/share/lupin-support/grub-mkimage --test; then
 wubi=yes
 else
 wubi=no
 fi
 fi
 if ["$wubi" = yes]; then
 echo "Skipping ${LONGNAME} on Wubi system" \>&2
 continue
 fi
 ;;
 esac

 found\_other\_os=1
 cat /dev/null | tr ' ' '^' | paste -s -d ' '`"
 prepare\_boot\_cache=

 for LINUX in ${LINUXPROBED} ; do
 LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
 LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
 LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
 LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
 LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
 LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"

 if [-z "${LLABEL}"] ; then
 LLABEL="${LONGNAME}"
 fi

 if ["${LROOT}" != "${LBOOT}"]; then
 LKERNEL="${LKERNEL#/boot}"
 LINITRD="${LINITRD#/boot}"
 fi

 found\_other\_os=1
 cat /dev/null`"
 osx\_entry xnu\_kernel 32
 osx\_entry xnu\_kernel64 64
 ;;
 hurd)
 found\_other\_os=1
 cat &2
 ;;
 esac
done

adjust\_timeout

Juuuuhuuu =)=)=)
Läuft wieder!
Vielen Dank für deine Hilfe!

Hallo elactic,
Glückwunsch. Gut zu wissen, was der Grub Customizer so für Schweinereien im Hintergrund anstellt :wink: Spätestens jetzt weiss ich, warum ich lieber selbst Hand anlege… Soll aber nicht die Leistung von Daniel Richter schmälern, der das Ding geschrieben hat. Es erleichtert Anfängern doch sehr, was in Grub zu verändern. Und ab Version 1.5 soll der Grub Customizer wohl solche Sachen selbst reparieren:
„Since version 1.5 you can use it to repair and configure grub2/burg using a live cd (and Grub Customizer, which has to be installed as usual at the live system before using it). All the required partitions will be automatically mounted when choosing the root partition and some sub partitions on the „partition chooser“ (a dialog which pops up, when you start Grub Customizer inside a live system).“
https://launchpad.net/grub-customizer
Ausprobieren werde ich das nicht, aber Du weisst ja jetzt auch so, wie es geht.

Viele Grüße
Marvin

Naja ich habe eigentlich SEHR gute Erfahrungen, mit dem Tool, eben weil ich mich an Boot Sachen nicht rantraue.
Das Problem war wohl wirklich eher, dass ich daran rumgebastelt habe, als Ubuntu garnicht für die Verwaltung des Bootloaders zuständig war.