• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Upgrade Suse 12.3===>13.2 & GRUB2.0

ekke

Newbie
Hallo,
bei der Durchsicht des Forums fand ich eine Reihe von Leuten mit ähnlichen Problemen wie ich sie habe, aber - leider - nicht mit identischen. Deshalb Nachstehendes:
Auf meinem Desktop habe ich zwei HDDs: ./sda, ./sdb. Auf sda sind WinXP, das ausschließlich offline genutzt wird, und ein paar zugehörige Partitionen. Auf sdb JETZT Suse 13.2 in einer erweiterten Partition mit /, /home und /swap als logische. Zuvor war auf sdb Suse 12.3. Von der DVD habe ich das Upgrade gemacht, was recht glatt ging. Alle Partitionen nach ext4 formatiert. Nachdem die Sache einige Zeit gut gelaufen war, stürzte das Internet ohne Vorwarnung ab und war nicht mehr zu reanimieren. Vermutung: Hard-oder Firmwarecrash. War aber nicht, denn ich konnte mit dem Knoppixstick sofort Verbindung aufnehmen. Daraufhin habe ich die gesamte sdb formatiert und Suse 13.2 allein neu aufgespielt. Ergebnis: "GRUB loading Welcome GRUB error: no such device: 4711xyz....."
Bei der Installation hatte ich vorgegeben, Grub in den MBR von sda zu schreiben. tatsächlich landete es in sdb2. Ich habe danach das Spiel noch zweimal mit wechselnden Einstellungen während der Installation wiederholt, mit dem gleichen Ergebnis. Mittels Knoppix, Parted Magic und Supergrub 2.0 bin ich dem Problem näher gekommen, konnte es aber nicht beseitigen. Für mich sieht es so aus, als ob es noch ein Parallel-GRUB gibt, das auf eine ./fstab verweist, der die /-Partition fehlt. Ein device mit der genannten UUID gibt es auf dem System nicht. Mit Supergrub kann ich beide HDDs booten und nutzen. Das ist aber keine astreine Lösung.
Das ist jedoch nur die eine Hälfte des Dramas. Viel übler ist, dass der Drucker auch noch von der Rolle ist. Er druckt Dateien, z.B. die Testseite, genau nach Einstellung DIN A4, Hochformat, ABER er braucht dafür zwei Blatt, je Seitenhälfte eines. Wie komme ich weiter? Grüße ekke.
 

josef-wien

Ultimate Guru
Zu GRUB2 kann ich bekanntlich nichts sagen, aber einige Denkanstöße können vielleicht helfen.

ekke schrieb:
tatsächlich landete es in sdb2
Wenn das stimmt, solltest Du im BIOS die Linux-Platte als Boot-Platte definieren. Startet das System, wird sich im MBR (und eventuell in den Sektoren danach) der Windows-Platte noch ein alter Boot-Manager befinden.

ekke schrieb:
das auf eine ./fstab verweist, der die /-Partition fehlt
Die Systempartition steht zwar in der Regel auch in der fstab, aber das ist für weniger intelligente Programme gedacht, die sich sonst nicht auskennen. Sie wird über die initrd festgelegt und kann mit der Boot-Option root=xxx übersteuert werden.

ekke schrieb:
Ein device mit der genannten UUID gibt es auf dem System nicht.
Die hier verwendete UUID ist ein Attribut des Dateisystems, wird als "Zufallswert" bei dessen Formatierung vergeben und kann danach auch verändert werden.

Ansonsten kann ich nur auf http://wiki.linux-club.de/opensuse/GRUB_2#Installation verweisen.
 
OP
E

ekke

Newbie
Hallo,

vielen Dank an Sauerland und Josef-Wien!

Mit zypper se -si cups konnte ich den Drucker wieder auf Vordermann bringen.

Den Übeltäter für die Bootmisere habe ich lokalisiert: Er steckt im MBR von sda wie ich schon vermutet habe, weshalb es mir darum ging, die Bootsequenz in den MBR von sda schreiben zu lassen, wobei SuSe nicht mitgespielt hat. Ich habe im BIOS die HDD abgeschaltet. Allerdings bin ich noch nicht dahinter gekommen, wie man die Reihenfolge der Platten tauschen kann. Die Bezeichnung der HDDs scheint eine der Ursachen für das Durcheinander zu sein. Sie ist nicht konsistent. Mal ist die sda - wie ursprünglich - die hd0, mal ist sie hd1 und sdb entsprechend. Das geht bis in die ./grub.cfg.

Grüße

ekke
 

susejunky

Moderator
Teammitglied
Hallo ekke,

ekke schrieb:
... Auf meinem Desktop habe ich zwei HDDs: ./sda, ./sdb
Ich verstehe nicht, welche Bedeutung das "./" haben soll. Ich nehme an, Du willst nur sagen, dass in Deinem System zwei Festplatten vorhanden sind, die Dir im Verzeichnis "/dev" als "/dev/sda" und "/dev/sdb" angezeigt werden (ggf. mit noch weiteren "/dev/sda1" oder "/dev/sdb1", etc.).

ekke schrieb:
... Grub in den MBR von sda zu schreiben. tatsächlich landete es in sdb2.
Bedeutet diese Aussage, dass
  • der grub2-Loader in den MBR von sdb installiert wurde?
  • es auf sdbn das Verzeichnis "/boot/grub2" gibt (was noch nichts über den Ort des grub2-Loader aussagen würde)?
Um Dir gezielter helfen zu können, wären es gut, wenn Du hier die Ergebnisse der folgenden Befehle (als Administrator in einer Konsole ausgeführt) zur Verfügung stellen könntest:

Code:
# fdisk -l /dev/sda

# fdisk -l /dev/sdb

# lsblk -f
Auch der Inhalt von "/boot/grub2/grub.cfg" wäre für eine Fehleranalyse hilfreich.

Und last but not least:

Bislang gehe ich von der Annahme aus, dass Dein System ein BIOS besitzt und Deine Festplatten mit einem MBR-Partitionierungsschema partitioniert sind.

Falls Dein System ein UEFI besitzt und/oder Deine Festplatten mit einem GPT-Partitionierungsschema partitioniert sind, dann ist das wichtig zu wissen. Auch wenn Du ein UEFI hast und im CSM/LEGACY-Modus arbeitest, solltest Du uns das sagen.

Viele Grüße

susejunky
 
A

Anonymous

Gast
ekke schrieb:
... Auf meinem Desktop habe ich zwei HDDs: ./sda, ./sdb
».« bzw. »./« steht für das aktuelle Verzeichnis.

Um Verwechslungen zu vermeiden solltest Du die Bezeichnungen in »/dev/disk/ (by-id, by-label, by-path oder by-uuid)« anstelle von »/dev/sda« »/dev/sdb« verwenden.

susejunky schrieb:
Bislang gehe ich von der Annahme aus, dass Dein System ein BIOS besitzt und Deine Festplatten mit einem MBR-Partitionierungsschema partitioniert sind.
Das unter dem Basic Input Output System funktionierende Partitionierungsschema bzw. das Disklabel nennt sich »msdos«,
denn einen Master Boot Record (MBR) gibt es auch in der GUID Partition Table (GPT).
 

susejunky

Moderator
Teammitglied
Hallo ekke,

rolandb schrieb:
... Das unter dem Basic Input Output System funktionierende Partitionierungsschema bzw. das Disklabel nennt sich »msdos«,
denn einen Master Boot Record (MBR) gibt es auch in der GUID Partition Table (GPT).
nur der Vollständigkeit halber:
  • Auch auf einem BIOS-basierten System kann man Festplatten mit GPT-Partitionsschema verwenden (auch, um davon zu starten). Vorausgesetzt das Betriebssystem kann mit GPT umgehen (openSUSE 13.2 kann das).
  • Grundsätzlich kann auch ein UEFI-basiertes System mit einem MBR-Partitionsschema umgehen. Wenn man jedoch von einer Festplatte mit MBR-Partitionsschema starten will, muss das UEFI über den CSM/Legacy-Modus verfügen.
  • Auch GPT kennt einen MBR (aus Kompatibilitätsgründen), nur wird er bei GPT "Protective MBR" genannt und weicht in seiner Sezifikation vom MBR des MBR-Partitionierungsschema leicht ab.

Es ist wichtig zu wissen, welche Technologie (BIOS, UEFI, MBR, GPT, ...) bei Dir zum Einsatz kommt, da die Installation/Konfiguration von grub2 je nach dem etwas anders ist.

Weiter Informationen zu MBR & Co. findest Du hier:

http://de.wikipedia.org/wiki/BIOS
http://de.wikipedia.org/wiki/Master_Boot_Record
http://de.wikipedia.org/wiki/UEFI
http://de.wikipedia.org/wiki/GUID_Partition_Table
http://en.wikipedia.org/wiki/BIOS
http://en.wikipedia.org/wiki/Master_boot_record
http://en.wikipedia.org/wiki/UEFI
http://en.wikipedia.org/wiki/GUID_Partition_Table
http://www.uefi.org/specifications
http://www.rodsbooks.com/efi-bootloaders/

Viele Grüße

susejunky
 
A

Anonymous

Gast
Vielen Dank für Deine Info!

Es ist richtig: Es gab eine Zeit lang Mainboards mit einem klassischem Basic Input Output System (BIOS), welches aber bereits über GPT-Unterstützung verfügte.

Wenn Du jedoch vom (PC-BIOS) Partitionierungsschema sprichst, dann ist das weiterhin »msdos« oder einfach »dos«.
Der Master Boot Record (MBR) ist 512 Byte groß, die msdos-Partitionstabelle an dessen Ende aber nur 4×16 Byte.
Sie bietet gerade Platz genug für 4 Partitionen.
 

josef-wien

Ultimate Guru
Obwohl es mit dem Thema nichts zu tun hat (ich denke, eine manuelle GRUB2-Installation in den gewünschten MBR löst das Problem), muß ich einiges anmerken.

susejunky schrieb:
Wenn man jedoch von einer Festplatte mit MBR-Partitionsschema starten will, muss das UEFI über den CSM/Legacy-Modus verfügen.
Dieser Modus veranlaßt das UEFI, den im Sektor Null (üblicherweise als MBR benannt) der festgelegten Platte befindlichen Boot-Code auszuführen (und zwar unabhängig vom Typ der Partitionentabelle). Im UEFI-Modus dagegen wird die Datei \EFI\BOOT\BOOTX64.EFI der EFI-Systempartition der festgelegten Platte (oder eine andere im NVRAM vorhandene Eintragung) ausgeführt; ob die Platte eine msdos-Partitionentabelle oder eine GPT hat, ist ebenso belanglos wie der Umstand, ob es sich um eine primäre oder eine logische Partition handelt (daß sich Windows nicht an Spezifikationen hält, ist eine andere Geschichte).

rolandb schrieb:
Basic Input Output System (BIOS), welches aber bereits über GPT-Unterstützung verfügte.
Ein herkömmliches BIOS hat keine Ahnung von Partitionen und sonstigen Dingen, die Menschen oder Programme mit Platten anstellen, es ist nur in der Lage, den Boot-Code im Sektor Null einer Platte auszuführen (und z. B. einem Boot-Manager Funktionen zur Verfügung zu stellen, um auf einen sonstigen Sektor zuzugreifen).
 
OP
E

ekke

Newbie
Hallo, Leute,

zunächst vielen Dank an Alle!
Da ich nicht immer so schnell kann wie ich es gern wollte, antworte ich mit Stottern. Auf meinem Desktop habe ich ein zehn Jahre altes BIOS, barfuß, kein GPT.

Code:
linux-l2s4:~ # fdisk -l /dev/sdb

Disk /dev/sdb: 149 GiB, 160000000000 bytes, 312500000 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
Disklabel type: dos
Disk identifier: 0xa0d12b52

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sdb1  *         2048 209713151 209711104  100G  f W95 Ext'd (LBA)
/dev/sdb5            4096 104855551 104851456   50G 83 Linux
/dev/sdb6       104857600 167766015  62908416   30G 83 Linux
/dev/sdb7       167768064 178257919  10489856    5G 82 Linux swap / Solaris

Code:
linux-l2s4:~ # fdisk -l /dev/sda

Disk /dev/sda: 149 GiB, 160000000000 bytes, 312500000 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
Disklabel type: dos
Disk identifier: 0xbd296e65

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1              63    128519    128457 62.7M de Dell Utility
/dev/sda2  *       128520 143492579 143364060 68.4G  7 HPFS/NTFS/exFAT
/dev/sda3       306198900 312496379   6297480    3G db CP/M / CTOS / ...
/dev/sda4       143492580 267482249 123989670 59.1G  f W95 Ext'd (LBA)
/dev/sda5       143492643 163991519  20498877  9.8G  b W95 FAT32
/dev/sda6       163991583 225424079  61432497 29.3G  7 HPFS/NTFS/exFAT
/dev/sda7       225424143 267482249  42058107 20.1G 83 Linux

Partition table entries are not in disk order.
Code:
linux-l2s4:~ # lsblk -f
NAME   FSTYPE   LABEL       UUID                                 MOUNTPOINT
fd0                                                              
sda                                                              
├─sda1 vfat     DellUtility 07D5-081E                            
├─sda2 ntfs                 F03459CE34599884                                                                                  
├─sda3 vfat     DellRestore                                                                                                   
├─sda4                                                                                                                        
├─sda5 vfat     M           88F8-A21A                                                                                         
├─sda6 ntfs     N           50E8FBDFE8FBC0F0                                                                                  
└─sda7 reiserfs /local      2e3ea3b3-68e3-4e71-91f9-ed11fb034a8d                                                              
sdb                                                                                                                           
├─sdb1                                                                                                                        
├─sdb5 ext4                 780f72e9-eb50-47a1-9b28-4681c968f27a /                                                            
├─sdb6 ext4                 a7903f33-82f7-462b-b8a3-03979efc538d /home                                                        
└─sdb7 swap                 f06d3387-d522-4f4e-81f4-b1c61d30ee17 [SWAP]                                                       
sr0                                                              
linux-l2s4:~ #
Grüße ekke
 

susejunky

Moderator
Teammitglied
Hallo ekke,

vielen Dank für die Informationen. Jetzt wäre es noch wichtig den Inhalt der Datei "/boot/grub2/grub.cfg" zu sehen und zu wissen, wie die von Dir angestrebte Situation beim Systemstart aussehen soll:

  • Systemstart ohne Nutzung des BIOS-Geräteauswahlmenüs; "sda" ist im BIOS als erste Festplatte für den Systemstart festgelegt; der grub2-Loader ist im MBR von "sda" und das grub2-coreimage direkt hinter dem MBR auf "sda" installiert; sowohl openSUSE als auch MS Windows XP werden mit Hilfe von grub2 gestartet
    ODER
  • Systemstart immer mit Nutzung des BIOS-Geräteauswahlmenüs; um openSUSE zu starten wird im BIOS-Geräteauswahlmenüs "sdb" ausgewählt; um MS Windows XP zu starten wird im BIOS-Geräteauswahlmenüs "sda" ausgewählt; der grub2-Loader ist im MBR von "sdb" und das grub2-coreimage direkt hinter dem MBR auf "sdb" installiert; openSUSE wird mit Hilfe von grub2 und MS Windows XP wird mit Hilfe des MS Windows Bootloaders (im MBR von sda) gestartet
    ODER
  • ... andere Vorgehensweise (bitte detailliert beschreiben) ...
"sda" und "sdb" habe ich hier nur der Lesbarkeit halber verwendet, "sda" ist die Festplatte mit dem Disk identifier: 0xbd296e65 "sdb" ist die Festplatte mit dem Disk identifier: 0xa0d12b52.

Viele Grüße

susejunky
 
OP
E

ekke

Newbie
Hallo Susejunkie,

Danke! Ich bevorzuge die erste Version Deiner Vorschläge. Anbei ./grub.cfg :
Code:
 #
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -f ${config_directory}/grubenv ]; then
  load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

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 load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos 
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos5 --hint-efi=hd1,msdos5 --hint-baremetal=ahci1,msdos5 --hint='hd0,msdos5'  780f72e9-eb50-47a1-9b28-4681c968f27a
else
  search --no-floppy --fs-uuid --set=root 780f72e9-eb50-47a1-9b28-4681c968f27a
fi
    font="/usr/share/grub2/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=de_DE
  insmod gettext
fi
terminal_output gfxterm
insmod part_msdos 
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos5 --hint-efi=hd1,msdos5 --hint-baremetal=ahci1,msdos5 --hint='hd0,msdos5'  780f72e9-eb50-47a1-9b28-4681c968f27a
else
  search --no-floppy --fs-uuid --set=root 780f72e9-eb50-47a1-9b28-4681c968f27a
fi
insmod gfxmenu
loadfont ($root)/boot/grub2/themes/openSUSE/ascii.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
insmod png
set theme=($root)/boot/grub2/themes/openSUSE/theme.txt
export theme
if [ x${boot_once} = xtrue ]; then
  set timeout=0
elif [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=8
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=8
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-780f72e9-eb50-47a1-9b28-4681c968f27a' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos 
	insmod ext2
	set root='hd0,msdos5'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos5 --hint-efi=hd1,msdos5 --hint-baremetal=ahci1,msdos5 --hint='hd0,msdos5'  780f72e9-eb50-47a1-9b28-4681c968f27a
	else
	  search --no-floppy --fs-uuid --set=root 780f72e9-eb50-47a1-9b28-4681c968f27a
	fi
	echo	'Linux 3.16.7-21-desktop wird geladen …'
	linux	/boot/vmlinuz-3.16.7-21-desktop root=UUID=780f72e9-eb50-47a1-9b28-4681c968f27a   resume=/dev/sdb7 splash=silent quiet showopts
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd-3.16.7-21-desktop
}
submenu 'Erweiterte Optionen für openSUSE' $menuentry_id_option 'gnulinux-advanced-780f72e9-eb50-47a1-9b28-4681c968f27a' {
	menuentry 'openSUSE, mit Linux 3.16.7-21-desktop' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.7-21-desktop-advanced-780f72e9-eb50-47a1-9b28-4681c968f27a' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_msdos 
		insmod ext2
		set root='hd0,msdos5'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos5 --hint-efi=hd1,msdos5 --hint-baremetal=ahci1,msdos5 --hint='hd0,msdos5'  780f72e9-eb50-47a1-9b28-4681c968f27a
		else
		  search --no-floppy --fs-uuid --set=root 780f72e9-eb50-47a1-9b28-4681c968f27a
		fi
		echo	'Linux 3.16.7-21-desktop wird geladen …'
		linux	/boot/vmlinuz-3.16.7-21-desktop root=UUID=780f72e9-eb50-47a1-9b28-4681c968f27a   resume=/dev/sdb7 splash=silent quiet showopts
		echo	'Initiale Ramdisk wird geladen …'
		initrd	/boot/initrd-3.16.7-21-desktop
	}
	menuentry 'openSUSE, mit Linux 3.16.7-21-desktop (Wiederherstellungsmodus)' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.7-21-desktop-recovery-780f72e9-eb50-47a1-9b28-4681c968f27a' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_msdos 
		insmod ext2
		set root='hd0,msdos5'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos5 --hint-efi=hd1,msdos5 --hint-baremetal=ahci1,msdos5 --hint='hd0,msdos5'  780f72e9-eb50-47a1-9b28-4681c968f27a
		else
		  search --no-floppy --fs-uuid --set=root 780f72e9-eb50-47a1-9b28-4681c968f27a
		fi
		echo	'Linux 3.16.7-21-desktop wird geladen …'
		linux	/boot/vmlinuz-3.16.7-21-desktop root=UUID=780f72e9-eb50-47a1-9b28-4681c968f27a  showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe
		echo	'Initiale Ramdisk wird geladen …'
		initrd	/boot/initrd-3.16.7-21-desktop
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Dell Utility Partition (auf /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-07D5-081E' {
	insmod part_msdos 
	insmod fat
	set root='hd1,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd1,msdos1'  07D5-081E
	else
	  search --no-floppy --fs-uuid --set=root 07D5-081E
	fi
	drivemap -s (hd0) ${root}
	chainloader +1
}
menuentry 'Microsoft Windows XP Home Edition (auf /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-F03459CE34599884' {
	insmod part_msdos 
	insmod ntfs
	set root='hd1,msdos2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd1,msdos2'  F03459CE34599884
	else
	  search --no-floppy --fs-uuid --set=root F03459CE34599884
	fi
	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 ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/80_suse_btrfs_snapshot ###
### END /etc/grub.d/80_suse_btrfs_snapshot ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###

By the way: Ich habe versucht, mittels Recovery-CD den MBR der sda zu rekonstruieren, aber sie will mein Password nicht.
Ich verwende SUSE seit SUSE 7.3. (2001), aber so einen Kokolores habe ich noch nicht erlebt. Nie wieder werde ich - wie bisher - auf diese Weise ein upgrade machen.

Grüße

ekke.
 

josef-wien

Ultimate Guru
ekke schrieb:
Ich habe versucht, mittels Recovery-CD den MBR der sda zu rekonstruieren
Das wird Dir höchstwahrscheinlich nicht helfen, und wenn bei
ekke schrieb:
Zuvor war auf sdb Suse 12.3.
noch GRUB Legacy verwendet wurde, dann erst recht nicht.

Prinzipiell ist es immer heikel, den Boot-Manager im MBR einer anderen Platte zu haben. Selbst wenn sich ein Teil des Boot-Managers in den Sektoren nach dem MBR befindet, muß er mit zu diesem Zeitpunkt eher unzulänglichen Mitteln auf eine andere Platte zugreifen. Ich empfehle Dir, Deine Linux-Platte als Boot-Platte zu verwenden und den Boot-Manager dort einzurichten (was er vermutlich ohnehin schon ist).

Wenn Du trotzdem von der Windows-Platte starten willst, dann verwende die Super Grub2 Disk und versuche im laufenden System laut Linupedia mit
Code:
grub2-install /dev/sda
Dein Glück. Du solltest dann darüber nachdenken, auf der Windows-Platte eine Boot-Partition einzurichten, auch dann ist der Boot-Manager auf der Boot-Platte.
 

susejunky

Moderator
Teammitglied
Hallo ekke,

vielen Dank für die von Dir gezeigten Inhalte Deiner "grub.cfg".

Meines Erachtens passen die Einträge "--hint='hd0,msdos5' 780f72e9-eb50-47a1-9b28-4681c968f27a" und "set root='hd0,msdos5'" nicht zu dem von Dir gezeigten Ergebnis von "lsblk -f". Ich halte "--hint='hd1,msdos5' 780f72e9-eb50-47a1-9b28-4681c968f27a" und "set root='hd1,msdos5'" für korrekt.

Aber ich bin mir nicht sicher, ob es ausreicht an den genannten Stellen in der "grub.cfg" das "hd0" durch "hd1" zu ersetzen (insbesondere wenn Du zwischenzeitlich schon ein paar weitere Rettungsversuche unternommen hast). Da die Änderung jedoch mit wenig Aufwand verbunden ist (vorausgesetz, Du kannst auf Dein System zugreifen; z.B. mit einer LIVE-CD) könnte es ein Versuch wert sein.

Sollte sich das Problem so nicht lösen lassen, dann sind noch folgende Lösungsansätze denkbar, die allerdings alle voraussetzen, dass Du Dein openSUSE-System auf sdb (Disk identifier: 0xa0d12b52) mit Supergrub 2.0 starten kannst.

  • Nachdem Du openSUSE auf sdb (Disk identifier: 0xa0d12b52) mit Supergrub 2.0 gestartet hast, öffnest Du eine Konsole und meldest Dich (mit "su") als Administrator an. Um den grub2-Loader und das grub2-core-image auf der Festplatte sda (Disk identifier: 0xbd296e65) erneut aufzuspielen und die grub-Konfigurationsdatei neu zu erzeugen gibst Du folgende Befehle ein:
    Code:
    grub2-install /dev/sda
    grub2-mkconfig -o /boot/grub2/grub.cfg
    Danach startest Du das System - ohne das BIOS-Geräteauswahlmenü zu verwenden - neu (im BIOS sollte dabei sda als erste Festplatte für den Systemstart eingetragen sein).
Wie josef-wien bereits gesagt hat, kann aber auch der festplattenübergreifende Systemstart zu Problemen führen. Sollte Dein Problem also trotz der obigen Aktionen immer noch vorhanden sein, dann kannst Du noch folgendes ausprobieren:

  • Zunächst legst Du sdb im BIOS-Geräteauswahlmenü als erste Festplatte für den Systemstart fest. Nachdem Du dann openSUSE auf sdb (Disk identifier: 0xa0d12b52) mit Supergrub 2.0 gestartet hast, öffnest Du eine Konsole und meldest Dich (mit "su") als Administrator an. Um den grub2-Loader und das grub2-core-image auf der Festplatte sdb (Disk identifier: 0xa0d12b52) aufzuspielen und die grub-Konfigurationsdatei neu zu erzeugen gibst Du folgende Befehle ein:
    Code:
    grub2-install /dev/sdb
    grub2-mkconfig -o /boot/grub2/grub.cfg
    Danach startest Du das System - ohne das BIOS-Geräteauswahlmenü zu verwenden - neu (im BIOS sollte dabei sdb als erste Festplatte für den Systemstart eingetragen sein).

Wenn auch das fehlschlägt oder Du Dein openSUSE nicht mehr mit Supergrub 2.0 starten kannst, dann melde Dich bitte wieder (wenn möglich mit ausführlichen Details zu den aufgetretenen Fehlern).

Viel Erfolg und viele Grüße

susejunky
 
OP
E

ekke

Newbie
Hallo, Leute,

nach ein paar Tagen Zwangspause, kann ich den Faden wieder aufnehmen. Das Bootproblem hat seine Ursache vermutlich in dem Bezeichnungsducheinander für die HDDs, über das ich gleich anfangs gestolpert bin. Suse ist installiert in sdb. Folglich müßte es in grub.cfg heißen: (hd 1,5) /dev/sdb.

In der /boot/grub2/device.map steht aber:
(hd1) /dev/sda
(hd0) /dev/sdb
Insofern stimmen die Einträge in grub.cfg mit hd (0,5) für Suse und hd (1,2) für Windows.
Ich habe keine Ahnung, woher das rührt.
Wenn ich mittels SuperGRUB2 boote, erscheint hd (1,5) als aktive Partition.. Im BIOS sind sda als 1. Platte und sdb als 2.eingetragen.

Ich bin keineswegs darauf fixiert, von sda zu booten. Meine Versuche gingen nur dahin, den MBR von sda zu überschreiben, weil dort eindeutig die Fehlerquelle liegt.

Grüße

ekke.
 
Hier auf der Internetseite ist zu lesen:
Bezeichnung Festplatten

GRUB 2 bezeichnet die Festplattenpartitionen mit (hdX,Y), dabei ist

X die lfd. Nummern der Festplatte

Y die lfd. Zählnummer der Partition

Die Zählung der Festplatten beginnt immer mit 0, die der Partitionen immer mit 1:

ekke schrieb:
In der /boot/grub2/device.map steht aber:

(hd1) /dev/sda
(hd0) /dev/sdb
Ich denke die Bezeichnung der FP stimmt nicht.

Grüße Heinz-Peter
 

josef-wien

Ultimate Guru
Beim Systemstart vergibt das BIOS für jede Platte eine Nummer (BIOS ID). Die Boot-Platte erhält immer die BIOS ID 0x80 (bei GRUB[2] wird dafür üblicherweise der Begriff hd0 verwendet), die anderen Platten werden in aufsteigender Folge als 0x81, 0x82 usw. bezeichnet (was hd1, hd2 usw. bei GRUB[2] entspricht). Die von Linux verwendeten Gerätenamen (z. B. /dev/sda) werden dagegen nach anderen Gesichtspunkten vergeben.

Die Datei /boot/grub[2]/device.map spielt beim Systemstart nicht mit. Im laufenden Betrieb dient sie als "Übersetzungstabelle" für GRUB[2]-Aktivitäten. Wenn sie nicht die Realität abbildet, sind falsche Bootloader-Installationen die Folge.

Entscheide Dich, von welcher Platte Du starten willst, und sorge für eine korrekte /boot/grub2/device.map, dann sollte es auch mit der Bootloader-Einrichtung klappen.
 
A

Anonymous

Gast
ekke schrieb:
In der /boot/grub2/device.map steht aber:
(hd1) /dev/sda
(hd0) /dev/sdb
Und da liegt der Hund begraben.

Warum verwendest Du immer noch als Bezeichner (sda, sdb, sdc …) die alphabetische Plattennummerierung, die von Linux nach der Erkennungsreihenfolge vergeben wird?

Benutze statt dessen generell und überall in Grub, wie ich oben schon geschrieben habe: z.B.
(hd0) /dev/disk/by-id/ata-Hersteller1Typ2-Modell3_Seriennummer4
(hd1) /dev/disk/by-id/ata-Hersteller5Typ6-Modell7_Seriennummer8
 
OP
E

ekke

Newbie
Hallo Leute,

der Kittel ist geflickt! Ich habe GRUB schließlich in sda untergebracht und damit den Störenfried beseitigt. Alles funzt bestens.

Susejunky schrieb:
]Nachdem Du openSUSE auf sdb (Disk identifier: 0xa0d12b52) mit Supergrub 2.0 gestartet hast, öffnest Du eine Konsole und meldest Dich (mit "su") als dministrator an. Um den grub2-Loader und das grub2-core-image auf der Festplatte sda (Disk identifier: 0xbd296e65) erneut aufzuspielen und die grub-Konfigurationsdatei neu zu erzeugen gibst Du folgende Befehle ein:
Code:
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
Danach startest Du das System - ohne das BIOS-Geräteauswahlmenü zu verwenden - neu (im BIOS sollte dabei sda als erste Festplatte für den Systemstart eingetragen sein).[
(sda ist erste Platte geblieben).

So habe ich's gemacht.

Vielen Dank an Alle!

Grüße

ekke.
 
Oben