openSUSE 13.1: Partitionierung- & grub2-Problem im Dual Boot

Hallo,

ich habe auf einem neuen Notebook (Dell Latitude E6540) mit vorinstalliertem Win7 noch zusätzlich openSUSE 13.1 im Dual-Boot-Betrieb installiert. Dabei sind mir jetzt zwei Dinge aufgefallen:

  1. Ich habe bei der Installation mit dem SUSE-Installer die Platte partitioniert, dafür die Windows-OS-Partition (sda3) verkleinert, und dann in die Erweiterte Partition das Windows-Daten-Laufwerk (sda5 (noch nicht formatiert)) hineingepackt sowie die Linux-Partitionen. Von Dell sind bereits die Utility-Partition (sda1) sowie die Recovery-Partition (sda2) geliefert worden; diese habe ich nicht modifiziert. Merkwürdig ist nun: während YAST in der Partitionierung sagt, dass die komplette Platte nun verteilt wäre, sagen mir sowohl GParted als auch die Windows-Laufwerksverwaltung, dass da noch 10MB “nicht zugeteilt” wären. Bei YAST ist dementsprechend mit sda8 die Liste zu Ende, während GParted danach noch “10 MB nicht zugeteilt” anhängt. Wie kann das zustande kommen? Woher kommen plötzlich diese 10MB, und die scheinen ja am Ende der Platte zu liegen? Bei der Partitionierung während der Installation war nichts mehr als “nicht zugeteilt” gemeldet worden. Welchen Weg gibt es, die 10MB noch sda8 zuzuweisen - GParted erlaubt nur das Anlegen einer sda9? Nachstehend habe ich mal die Ausgabe von fdisk -l angehängt.
    Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
    Units = Sektoren of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disk label type: dos
    Disk identifier: 0x1c22f247

    Gerät boot. Anfang Ende Blöcke Id System
    /dev/sda1 63 80324 40131 de Dell Utility
    Partition 1 does not start on physical sector boundary.
    /dev/sda2 81920 28987391 14452736 7 HPFS/NTFS/exFAT
    /dev/sda3 28987392 322591331 146801970 7 HPFS/NTFS/exFAT
    /dev/sda4 * 322592768 976773119 327090176 f W95 Ext’d (LBA)
    /dev/sda5 322594816 804937727 241171456 7 HPFS/NTFS/exFAT
    /dev/sda6 804939776 821741567 8400896 82 Linux swap / Solaris
    /dev/sda7 821743616 874176511 26216448 83 Linux
    /dev/sda8 874178560 976752639 51287040 83 Linux

  2. Als Bootloader wurde grub2 installiert. Nun sieht die Dell-Konfiguration aber auf sda2 die System-Recovery-Partition vor, so dass grub2 mit dem OS_Probe-Skript als erstes auf die sda2 stößt und annimmt, dass darauf Windows liegt. Wählt man das dann im Bootmenü aus, landet man natürlich auf der Recovery-Partition, wo nunmal kein System liegt und nichts geht mehr. Ich muss also manuell im grub.cfg im Eintrag

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

menuentry ‘Windows 7 (loader) (auf /dev/sda3)’ --class windows --class os $menuentry_id_option ‘osprober-chain-7E1A570C1A56C0B7’ {
insmod part_msdos
insmod ntfs
set root=‘hd0,msdos3’
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 --hint=‘hd0,msdos3’ 7E1A570C1A56C0B7
else
search --no-floppy --fs-uuid --set=root 7E1A570C1A56C0B7
fi
chainloader +1
}

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

das “sda2” durch “sda3” sowie “msdos2” durch “msdos3” ersetzen (wie in obigem Ausschnitt geschehen). Dies hält aber immer nur bis zum nächsten Update. Über YAST gibt es ja keine Möglichkeit mehr, die einzelnen Einträge zu verändern. Wie muss ich das os-prober-Skript konkret verändern, damit ich den Booteintrag auf sda3 stabil hinbekomme (laut Grub2-Manual ist das auch das “Mittel der Wahl”)?

Besten Dank schonmal im Voraus!

Nachtrag: unter Windows habe ich gesehen, dass der SUSE-Installer alle Linux-Partitionen (swap, root, home) innerhalb der erweiterten Partition als jeweils primäre Partitionen angelegt hat. Mit GParted von der Knoppix-DVD habe ich nun die 10MB manuell sda8 zugewiesen. Daraufhin sehe ich unter Windows nur noch ein logisches Laufwerk innerhalb der erweiterten Partition und alle Linux-Partitionen liegen nun außerhalb der erweiterten Partition als primäre Partitionen auf der Platte. Es sind somit also fünf primäre Partitionen vorhanden. Waren die 10MB eine “Klammer”, um die erweiterte Partition zusammen zu halten?
In GParted sehe ich im Menüpunkt für das Ändern einer Partitionsgröße noch Optionen für “freien Speicherplatz vor oder hinter der Partition” - wofür dient das?
Kann mir jemand dieses Verhalten erklären?

Man kann unter Linux nur maximal 4 primäre Partitionen anlegen. Über die erweiterten Optionen kann dann zusätzlich eine primäre Partition um logische Partitionen erweitert werden, aber auch dort gibt es irgendwann ein Ende. Deshalb sollte man sich schon vor der Partitionierung Gedanken über die Größe der Festplatte und die zukünfige Platzverteilung machen.

Hast Du jetzt ein Problem, wie Du die letzte Partition (mit GParted erstellt) in openSUSE integrierst oder gibt es ein Problem beim Dual Boot mit Grub2?
Im Wiki haben wir eine sehr gute Dokumentation zu den entsprechenden Konfigurations-Dateien: http://de.opensuse.org/GRUB

Um die Dateien manuell editieren zu können, musst Du mit “su -” aber zuerst root werden. :wink:

Ich würd sagen, am Einfachsten ist es, wenn du einfach “Nach fremden OS suchen” ausschaltest, und exakt diesen korrekten menuentry in die Datei /boot/grub2/custom.cfg schreibst (die Datei anlegen, falls sie nicht existiert).
Diese wird falls vorhanden von der normalen grub.cfg nachgeladen und dient dazu benutzerdefinierte Menüeinträge anzuzeigen.

Ansonsten wäre natürlich auch eine Möglichkeit ein Skript in /etc/grub.d zu erstellen, bzw. das 30_os-prober Skript dort zu ändern. Diese Änderungen bleiben auch bei Updates bestehen.
Dein Hauptproblem ist aber, dass “os-prober” (das ist ein eigenständiges Programm, das von grub2 dazu verwendet wird um andere Betriebssysteme zu finden) was falsches zurückliefert.

Nicht nur unter Linux.
Die Partitionstabelle im MBR hat eben nur Platz für 4 Partitionen.
Damals dachte man wahrscheinlich, dass eh niemals jemand mehr benötigt. (es braucht ja auch niemand mehr als 640KB RAM… :P)

Im Wiki haben wir eine sehr gute Dokumentation zu den entsprechenden Konfigurations-Dateien: http://de.opensuse.org/GRUB

Die ist aber nur für GRUB1.
Der OP benutzt aber GRUB2, da ist das alles komplett anders.

Eine gute/vollständige Anleitung für GRUB2 ist mir leider nicht bekannt.

Das Englische Wiki von openSUSE verweist zur Grub-Konfiguration auf die Ubuntu-Seite bzw. zur Homepage von Grub 2 persönlich.
Die Deutsche Dokumentation ist dort auch sehr ausführlich und könnte man übernehmen: http://wiki.ubuntuusers.de/GRUB_2/Shell

Danke für den Link!
Scheint ja wirklich sehr umfassend zu sein.

Man sollte allerdings beachten, dass unter openSUSE teilweise Sachen anders benannt sind um sie vom noch inkludierten grub1 zu distanzieren und eine parallele Installation zu erlauben. Z.B. heißt “grub-mkconfig” bei uns “grub2-mkconfig” (update-grub gibts nicht), und grub2’s Konfiguration (grub.cfg) wird nach /boot/grub2/ statt /boot/grub/ installiert (/etc/grub.d/ und /etc/default/grub z.B. bleiben aber gleich).

Hallo AdaLovelace,

Das hat mit dem Betriebssystem überhaupt nichts zu tun sondern der Art der Partitionierung.
Bei der MBR-Partitionierung ist das was Du schreibst richtig.
Aber der TE hat bereits eine GPT-Partitionierung und unterliegt dieser Einschränkung nicht mehr, dort kann man beliebig viele primären Partitionen haben

Lieben Gruß aus Hessen

Und woran erkennst du das?

Wenn er eine GPT-Partitionierung hätte, würde der Booteintrag mit msdos3 ja gar nicht funktionieren, das müsste dann ja gpt3 heißen.

Außerdem kann fdisk überhaupt nicht mit GPT-Partitionen umgehen, der TE hat aber die Ausgabe von “fdisk -l” gepostet.
Sh. “man fdisk”:

       fdisk  does  not  understand GUID partition tables (GPTs) and it is not
       designed for large partitions.  In these cases, use the  more  advanced
       GNU parted(8).

Hallo wolfi323,

An der Liste der Devices natürlich, da gibt es keine erweiterte Partition.

Da bist Du sicher?

Dafür gibt es gptfdisk welches bei openSUSE 13.1 installiert ist und mit fdisk aufgerufen wird.
Jedenfalls ist es bei mir installiert ohne das ich es explizit installiert habe.
Du kannst ja mal versuchen zypper se -s fdisk Du wirst gar kein fdisk sehen.

Lieben Gruß aus Hessen

An der Liste der Devices natürlich, da gibt es keine erweiterte Partition.

Naja, was ist das:

/dev/sda4 * 322592768 976773119 327090176 f W95 Ext'd (LBA)

Und was ist mit
/dev/sda4 * 322592768 976773119 327090176 f W95 Ext’d (LBA)
? :wink:

Da bist Du sicher?

Ja.
Grub2 benutzt msdosX für MBR-Partitionen, und gptX für GPT-Partitionen.
Siehe http://www.gnu.org/software/grub/manual/grub.html#Device-syntax .

Dafür gibt es gptfdisk welches bei openSUSE 13.1 installiert ist und mit fdisk aufgerufen wird.
Jedenfalls ist es bei mir installiert ohne das ich es explizit installiert habe.
Du kannst ja mal versuchen zypper se -s fdisk Du wirst gar kein fdisk sehen.

gptfdisk ist aber nicht fdisk!
Und fdisk ist kein eigenes Paket, deswegen findet deine “zypper se” Zeile es nicht:

:~> rpm -qf /usr/sbin/fdisk
util-linux-2.23.2-10.1.x86_64

Übrigens, gptfdisk ist bei mir (13.1 natürlich) nicht installiert. Wird vielleicht nur dann automatisch installiert, wenn du tatsächlich GPT verwendest.