update-grub macht System unbootbar

qwali

Active member
Themenstarter
Registriert
22 Mai 2008
Beiträge
3.004
Hi,

Ich habe ein merkwürdiges Problem.

Ich nutze Ubuntu 10.04 und hatte beim letzten Kernelupdate nach dem Neustart nur noch ein


Dies konnte ich durch Neuerstellen unter einem Livesystem beheben.

Führe ich allerdings ein
im wieder lauffähigen System aus (welches erfolgreich abgeschlossen wird) habe ich beim nächsten Start wieder ein nicht startendes System.

Was könnte das sein?
 
Dein Post enthält sehr wenig Informationen. Zeig mal bitte von beiden Fällen in denen Du update-grub aufrufst (d.h. per Live-CD und direkt) alle Terminalbefehle und kpl. Output.
 
Hi,

der Befehl "sudo update-grub" zerstört dir anscheinend die "menu.lst". Vergleiche mal was vor und was nach update-grub in der menu.lst steht.

Paul
 
pawelek' schrieb:
Hi,

der Befehl "sudo update-grub" zerstört dir anscheinend die "menu.lst". Vergleiche mal was vor und was nach update-grub in der menu.lst steht.

Paul
Es geht um Grub2 (Ubuntu 10.04) - die menu.lst existiert also nicht mehr.

Ich rufe den "Fal"l nur einmal auf - und zwar nachdem das System nach folgender Anleitung wieder startet : http://wiki.ubuntuusers.de/grub_2/reparatur (Root-Directory-Methode). Sprich nach Abarbeiten der Anleitung kann ich das System wieder starten und rufe dann einmal "sudo grub-update" auf, welches auch ohne Fehlermeldungen durchläuft - danach startet das System aber wieder nur noch bis "grub> _". Laut der Fehlerauflistung handelt es sich dabei um eine defekte grub.cfg
Nun ist es kein Problem das zu beheben, aber es passiert ja nun bei jedem Kernelupdate wieder :S
 
Ich möchte nicht die Anleitung sehen, sondern deine Outputs. Zusätzlich wäre die resultierende grub.cfg hilfreich.
 
Script:
#!/bin/bash
sudo mount /dev/sda4 /mnt
sudo mount --bind /dev/ /mnt/dev
sudo grub-install --force --root-directory=/mnt /dev/sda4

Output:
ubuntu@ubuntu:/media/DatenSSD$ ./grub-repair
/usr/sbin/grub-setup: warn: Es wird versucht, GRUB in eine Partition anstatt in den MBR zu installieren. Das ist eine SCHLECHTE Idee..
/usr/sbin/grub-setup: warn: Einbettung ist nicht möglich. GRUB kann in dieser Konfiguration nur mittels Blocklisten installiert werden. Blocklisten sind allerdings UNZUVERLÄSSIG und deren Verwendung wird daher nicht empfohlen..
Installation finished. No error reported.
ubuntu@ubuntu:/media/DatenSSD$

grub.conf

Code:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
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"

grub.cfg

Code:
#
# 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 ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="${saved_entry}"
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
}
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
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
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
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 ###
menuentry 'Ubuntu, mit Linux 2.6.32-29-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux	/boot/vmlinuz-2.6.32-29-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-29-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-29-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	echo	'Linux 2.6.32-29-generic wird geladen …'
	linux	/boot/vmlinuz-2.6.32-29-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro single 
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-2.6.32-29-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic-phc' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux	/boot/vmlinuz-2.6.32-28-generic-phc root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-28-generic-phc
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic-phc (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	echo	'Linux 2.6.32-28-generic-phc wird geladen …'
	linux	/boot/vmlinuz-2.6.32-28-generic-phc root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro single 
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-2.6.32-28-generic-phc
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux	/boot/vmlinuz-2.6.32-28-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-28-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	echo	'Linux 2.6.32-28-generic wird geladen …'
	linux	/boot/vmlinuz-2.6.32-28-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro single 
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-2.6.32-28-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda2)" {
	savedefault
	insmod ntfs
	set root='(hd0,2)'
	search --no-floppy --fs-uuid --set 901828101827f3be
	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 ###

grub.cfg nach update-grub:

qwali@T61:~$ sudo update-grub
[sudo] password for qwali:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-29-generic
Found initrd image: /boot/initrd.img-2.6.32-29-generic
Found linux image: /boot/vmlinuz-2.6.32-28-generic-phc
Found initrd image: /boot/initrd.img-2.6.32-28-generic-phc
Found linux image: /boot/vmlinuz-2.6.32-28-generic
Found initrd image: /boot/initrd.img-2.6.32-28-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sda2
done

Code:
#
# 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 ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="${saved_entry}"
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
}
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
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
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
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 ###
menuentry 'Ubuntu, mit Linux 2.6.32-29-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux	/boot/vmlinuz-2.6.32-29-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-29-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-29-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	echo	'Linux 2.6.32-29-generic wird geladen …'
	linux	/boot/vmlinuz-2.6.32-29-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro single 
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-2.6.32-29-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic-phc' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux	/boot/vmlinuz-2.6.32-28-generic-phc root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-28-generic-phc
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic-phc (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	echo	'Linux 2.6.32-28-generic-phc wird geladen …'
	linux	/boot/vmlinuz-2.6.32-28-generic-phc root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro single 
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-2.6.32-28-generic-phc
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux	/boot/vmlinuz-2.6.32-28-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-28-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-28-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	savedefault
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	echo	'Linux 2.6.32-28-generic wird geladen …'
	linux	/boot/vmlinuz-2.6.32-28-generic root=UUID=df6fa0b6-1981-4e0f-9c54-6b335a170dbd ro single 
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-2.6.32-28-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod ext2
	set root='(hd0,4)'
	search --no-floppy --fs-uuid --set df6fa0b6-1981-4e0f-9c54-6b335a170dbd
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda2)" {
	savedefault
	insmod ntfs
	set root='(hd0,2)'
	search --no-floppy --fs-uuid --set 901828101827f3be
	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 ###
 
"/usr/sbin/grub-setup: warn: Es wird versucht, GRUB in eine Partition anstatt in den MBR zu installieren. Das ist eine SCHLECHTE Idee..
/usr/sbin/grub-setup: warn: Einbettung ist nicht möglich. GRUB kann in dieser Konfiguration nur mittels Blocklisten installiert werden. Blocklisten sind allerdings UNZUVERLÄSSIG und deren Verwendung wird daher nicht empfohlen..
Installation finished. No error reported."

No error reported kommt glaub wegen force, selbst wenn ein Fehler da war.

WIeso nicht direkt in den mbr von sda?

Aber keine Ahnung ob es weiterhilft, bin grad spontan auch überfragt...
 
Die beiden grub.cfg sind identisch. Kannst Du mal statt in einen Partition Boot Record (sda4) in den Master Boot Record (sda) installieren?
 
Nein,

Da hängt ein zweiter Grub drin, der alle anderen BS auf dem Rechner startet. Daher sind die jeweiligen Distributions bzw. BS-Eigenen Bootloader immer auf deren Partition. Der Grub startet also quasi immer nur nen Chainload bzw. map't die HDs, von denen Windows sonst nicht starten würde.

Das --force muss rein, weil grub per grub-install sonst abbricht. Hat aber bisher auf allen meinen Rechnern funktioniert. Ansonsten kann aber selbst bei der Installation des Linux Grub direkt in eine Partition installiert werden.
 
linrunner' schrieb:
Hast Du schon mal die chroot-Methode zur Reparatur probiert?

Nein, kann ich aber probieren. Wenn beide grub.cfg identisch sind - woran könnte es dann liegen? Ich meine die eine startet, die andere nicht...
 
*argl*

Nach Reparatur über chroot meldet sich grub nun gar nicht mehr - jetzt gibts nur noch "Starting Up" und einen blinkenden Cursor ....
Und ich sitz in der Bibliothek und komm nicht verschlüsselt ins Netz, weil man für XP extra Software braucht (die ich nicht habe) und oder ein Linux (das nicht startet) oder ein Windows 7 (welches auf der Ultrabay-Platte liegt, die ich nicht mit habe). Verdammich... gestern abend ist es doch noch gestartet...
 
Wie wäre es, wenn du auf ein Grub umsteigst für alle Systeme, welches dann im MBR der Platte liegt?
 
Wollte ich auch gerade vorschlagen ...

Hallo,

das wollte ich auch gerade vorschlagen. Es gibt keine Notwendigkeit mehrere Bootloader hintereinander laufen zu lassen ... Dass da mal was schief gehen muss ist ziemlich wahrscheinlich möchte ich meinen.

so long
 
Es hat jahrelang und auf mehreren Rechnern gut funktioniert - auch auf diesem hier. Der Fehler ist erst beim letzten Kernelupdate aufgetreten.

Ein Grub für alles hätte den massiven Nachteil, dass sich bei jedem Kernel-Update die Auflistung verändern würde. Ausserdem macht das Probleme wenn man mehrere Linuxe nutzen möchte. Diese können sich ein Grub nicht vernünftig teilen. Selbst die SuperGrub-Disk beruht auf mehreren Hintereinander geschalteten Grubs. Warum sollte so ein großes Projekt etwas nutzen, was bei mir im kleinen Maßstab nicht funktionieren sollte.

Es trifft ja schliesslich nur dieses eine Ubuntu - alle anderen BS funktionieren weiterhin wie vorgesehen. Es ist also kein Fehler meines vorgeschalteten Grubs, sondern eben des Ubuntus. Eine Reparatur von aussen funktioniert ja - nur wenn die Systemeigenen Routinen (eben das update-grub) eingreifen gehts schief. Und das passiert ja nu bei jedem Kernel-Update...
 
Wenn ich bisher Probleme hatte, dann eher mit chainloading.

qwali' schrieb:
Ein Grub für alles hätte den massiven Nachteil, dass sich bei jedem Kernel-Update die Auflistung verändern würde .
Ich verstehe jetzt nicht, was du mit "massiven Nachteil" meinst.

qwali' schrieb:
Ausserdem macht das Probleme wenn man mehrere Linuxe nutzen möchte. Diese können sich ein Grub nicht vernünftig teilen.
Bei mit verwaltet der grub aus Ubuntu zusätzlich XP und Fedora. Es ist zwar etwas umständlich, nach einer Fedora-Kernelinstallation erst Ubuntu starten zu müssen, um den neuen Fedora-Kernel in Grub eintragen zu lassen, aber das kommt ja nicht oft vor.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben