Aktive Partition löschen Grub2 Multiboot

Hallo,

so ganz habe ich die Funktionsweise von Grub2, den Bootvorgang u.v.a. noch nicht verinnerlicht, bzw. bin mir unsicher und frage lieber nach, ob ich alles richtig verstanden habe.

In der grub.cfg sind alle / Verzeichnisse meiner Distributionen unter menuentry eingetragen.
Also set root=(hd0,msdos1) (hd0,msdos5) (hd0,msdos7), dann die jew. UUID und linux /boot/vmlinuz-xxxx und initrd /boot/initrd.img-xxxx

Ansonsten steht da ganz oben noch set default=„0“
Falls das wichtig ist: Dies steht auch in der /etc/default/grub.txt

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=lsb_release -i -s 2\> /dev/null || echo Debian
GRUB_CMDLINE_LINUX_DEFAULT=„quiet“
GRUB_CMDLINE_LINUX=""

Das bedeutet doch, dass auf dem Bootsektor jeder Partition die Bootinformationen liegen, und Grub der im MBR liegt, diese jeweils ausliest.

Wenn nun z. B. die sda 7 - die als aktive Partition markiert ist ! - gelöscht und umpartitioniert wird, kann ich dennoch die beiden anderen vorhandenen Distris booten.
http://www.boot-us.de/gloss07.htm
Bei installiertem Bootmanager ist die Kennzeichnung als aktive Partition bedeutungslos.

Ist das so weit korrekt?

Zusatzfrage:
Z. B. sda 7 und sda 8 werden zusammengeführt zu einer Partition und erhalten ein anderes Filesystem (=> sda7) und eine neue UUID?
Die vorherige sda 9 wird dann zu sda 8.
Das wird in die Partitionstabelle geschrieben und auch von Grub erkannt.
Da dort dann aber noch kein BS installiert ist, erscheinen diese Partitionen nicht im Bootmenü, sondern erst, wenn darauf wieder ein BS installiert ist?

Sorry, wenn es so viele Fragen sind, aber irgend wie muss man ja lernen und verstehen. Nur lesen hilft da nicht immer zuverlässig.

Danke im Voraus Diphda

Hallo Diphda,

In der grub.cfg sind alle / Verzeichnisse meiner
Distributionen unter menuentry eingetragen.

Naja, wenn Du Windows-Systeme auch als root-Verzeichnisse bezeichnen willst, ja. Ich halte das für etwas unglücklich und würde eher davon sprechen, daß dort alle zu bootenden Betriebssysteme mit den notwendigen Angaben zum Booten verzeichnet sind.

/etc/default/grub.txt
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=lsb\_release -i -s 2\> /dev/null || echo Debian
GRUB_CMDLINE_LINUX_DEFAULT=„quiet“
GRUB_CMDLINE_LINUX=""
Das bedeutet doch, dass auf dem Bootsektor jeder Partition die
Bootinformationen liegen, und Grub der im MBR liegt, diese
jeweils ausliest.

Keine Ahnung, wie Du da jetzt drauf kommst. Das bedeutet nur das, was z.B. hier beschrieben ist:
http://wiki.ubuntuusers.de/GRUB_2/Konfiguration
also z.B. GRUB_TIMEOUT=5 bedeutet nur, daß eben 5 Sekunden gewartet wird, bis der durch GRUB_DEFAULT bezeichnete Standard-Eintrag geladen wird (wenn Du nicht vorher was anderes auswählst).

Wenn nun z. B. die sda 7 - die als aktive Partition markiert
ist ! - gelöscht und umpartitioniert wird, kann ich dennoch
die beiden anderen vorhandenen Distris booten.

Das kommt nun ein wenig drauf an, was Du unter „umpartitioniert“ verstehst. Wenn die Nummerierung der Partitionen gleich bleibt, ist es ja gut. Wenn Du aber die weiter unten beschriebene Aktion als „umpartitionieren“ bezeichnest, bekommst Du Probleme.

Z. B. sda 7 und sda 8 werden zusammengeführt zu einer
Partition und erhalten ein anderes Filesystem (=> sda7) und
eine neue UUID?
Die vorherige sda 9 wird dann zu sda 8.
Das wird in die Partitionstabelle geschrieben und auch von
Grub erkannt.

Aber nur wenn Du Grub bzw. grub.cfg durch den Befehl update-grub (im Idealfall) oder mittels einer dieser Methoden
http://wiki.ubuntuusers.de/GRUB_2/Reparatur
wieder „repariert“ hast. Aber so generell lässt sich das eh nicht sagen. Wenn Du z.B. auf sda1 und sda2 dein Linux liegen hast, dann juckt es das nicht im geringsten, wenn Du hinten dein Windows, das auf sda6 liegt, platt machst.

Da dort dann aber noch kein BS installiert ist, erscheinen
diese Partitionen nicht im Bootmenü, sondern erst, wenn darauf
wieder ein BS installiert ist?

Kein BS -> kein Eintrag im Menu, ja. Aber kein update-grub -> auch kein neuer Eintrag im Menu. So „auto-magisch“ wie Du dir das vorstellst, geht es auch nicht, zumindest wenn ich dich recht verstehe.

Sorry, wenn es so viele Fragen sind, aber irgend wie muss man
ja lernen und verstehen. Nur lesen hilft da nicht immer
zuverlässig.

Aber ausprobieren :wink:
Allerdings stellt sich mir die Frage, sind das jetzt theoretische Überlegungen, oder hast Du praktische Pläne in diese Richtung? Du solltest in deine Überlegungen, soweit sie Linux betreffen, auch mit einbeziehen, daß Grub2 ja nur der Anfang ist und es auch noch die /etc/fstab gibt, die ebenfalls stimmen muß. Es hilft dir wenig, wenn zwar Grub startet, aber anschliessend eine Kernel Panic ausgelöst wird
http://de.wikipedia.org/wiki/Kernel_panic
weil irgendwelche Routinen für den Init-Prozess nicht mehr dort liegen, wo sie liegen sollten, um mal den worst case anzunehmen.

Viele Grüße
Marvin

Hi Marvin,

danke für deine ausführliche Antwort!

Naja, wenn Du Windows-Systeme auch als root-Verzeichnisse
bezeichnen willst, ja. Ich halte das für etwas unglücklich und

Wie kommst du auf Windows? Ich habe nur Linux auf meinem Laptop.

würde eher davon sprechen, daß dort alle zu bootenden
Betriebssysteme mit den notwendigen Angaben zum Booten
verzeichnet sind.

Oder so. Das ist präziser!

Das bedeutet doch, dass auf dem Bootsektor jeder Partition die
Bootinformationen liegen, und Grub der im MBR liegt, diese
jeweils ausliest.

Keine Ahnung, wie Du da jetzt drauf kommst.

Ok, ich dachte wegen „set root=(hd0,msdos1)“ msdos5 etc. Das entspricht auch den jew. Partitionen, auf denen meine Distris/BS liegen.

Ich bin jetzt sehr verwirrt. Wieso ist das Löschen eines (von dir fiktiv angenommenen) Win auf sda 6 problemlos, das Löschen eines Linux auf sda 7 aber nicht? Anscheinend habe ich den Bootvorgang überhaupt nicht verstanden :frowning:

Ich dachte:
In Grub sind die Eintragungen aller bootbaren Linux-Partitionen hinterlegt. Durch das Löschen und Umpartitionieren ändern sich ja nicht deren UUID, oder die Bootsektoren auf deren devices.
Die Einträge in der fstab und Partitionstabelle bleiben für diese beiden unangetasteten Partitionen ja auch gleich. Auch dachte ich, dass das Partitionsprogramm die Änderungen in die Partitionstabelle schreibt und die Partitonstabelle bei jedem Booten neu gelesen wird. Lediglich von sda 7 und 8 ändert sich dann die UUID und der Eintrag in der Partitionstabelle.

Offenbar liege ich da falsch und muss mir dann alles nochmal genauer durchlesen :frowning:(

Wenn die Nummerierung der
Partitionen gleich bleibt, ist es ja gut. :

Bleiben ja 2 davon, aber die aktive Partition wäre dann weg.
Das ist die Kernfrage, ob dann alles zusammenbricht.

Wenn Du aber die
weiter unten beschriebene Aktion als „umpartitionieren“
bezeichnest, bekommst Du Probleme.
Z. B. sda 7 und sda 8 werden zusammengeführt zu einer
Partition und erhalten ein anderes Filesystem (=> sda7) und
Aber nur wenn Du Grub bzw. grub.cfg durch den Befehl
update-grub (im Idealfall) oder mittels einer dieser Methoden
http://wiki.ubuntuusers.de/GRUB_2/Reparatur
wieder „repariert“ hast. Aber so generell lässt sich das eh
nicht sagen. Wenn Du z.B. auf sda1 und sda2 dein Linux liegen
hast, dann juckt es das nicht im geringsten, wenn Du hinten
dein Windows, das auf sda6 liegt, platt machst.

Eigentlich wollte ich ja nur wissen, ob die anderen wirklich noch bootbar sind, weil ich dies gelesen habe:
Bei installiertem Bootmanager ist die Kennzeichnung als aktive Partition bedeutungslos.

Ok, Grub wird immer als Bootloader bezeichnet, ist in der funktionsweise aber letztlich ein Bootmanager. In Wiki ist das leider etwas verwirrend und unklar erklärt.

Also nochmal ganz konkret und relativ kurz:
Die Situation:
Grub 2 im MBR -> enthält alle bootfähigen BS
sda 1 Linux 1
sda 5 Linux 2
sda 7 Linux 3 *aktive Partition.

Wenn ich diese * Lösche (ob zusätzlich umpartitioniert wird ist da mal irrelevant) startet Grub dann noch die anderen beiden BS oder nicht?

Und wenn du Lust und Zeit hast, kannst du gerne auch noch eine Nachhilfestunde einlegen und dies noch beantworten :wink:

Wieso muss Grub dann repariert werden?
Das würde bedeuten, dass sich das Löschen der aktiven Partition auf Grub2 im MBR auswirken würde und obiger Hinweis aus dem Link nicht stimmt?

Kein BS -> kein Eintrag im Menu, ja. Aber kein update-grub ->
auch kein neuer Eintrag im Menu.

Auch nicht, wenn ein weiteres BS installiert wird?
Das widerspricht meinen Erfahrungen, als ich die 3 Linux Distris nacheinander installierte. Das erkannte Grub immer und fügte das neue BS hinzu.
Und für gelöschte Betriebssysteme brauche ich ja auch keinen Eintrag, bzw. wo soll der auch herkommen, wenn der Bootsektor der Partition leer ist.

daß Grub2 ja nur der
Anfang ist und es auch noch die /etc/fstab gibt, die ebenfalls
stimmen muß.

Danke für den Hinweis. Ich habe mir alle Eintragungen der jew. fstab und auch brav alle UUIDs aller meiner Partitionen ausgedruckt und auch in einer Datei gespeichert.

um mal den worst case anzunehmen.

Beschwöre es nicht herauf, sonst werde ich hier womöglich zum Dauergast mit meinen vielen aufwändigen, dummen, komplizierten, langen… Fragen *schmunzel*

Ich hoffe ja mal, dass wir uns zumindest teilweise missverstanden haben, denn sonst muss ich total an mir zweifeln, wenn ich wirklich gar nichts verstanden habe.

Viele Grüße
Marvin

Dito Diphda

Hallo Diphda,
das ist ja ein richtiges Déjà-vu-Erlebnis :wink:

Naja, wenn Du Windows-Systeme auch als root-Verzeichnisse
bezeichnen willst, ja.

wie kommst du auf Windows?? Ich habe nur Linux auf meinem
Laptop.

Wahrscheinlich deshalb, weil ich deinen Laptop von hier aus etwas schlecht erkennen kann :wink:
Wahrscheinlich habe ich das geschrieben, weil in den Menus eben auch Windows-Systeme vorkommen können.

Oder so. Das ist präziser!

Und mir das eben präziser erscheint :wink:

Ok, ich dachte wegen „set root=(hd0,msdos1)“ msdos5 etc. Das
entspricht auch den jew. Partitionen, auf denen meine
Distris/BS liegen.

Naja, das will ich doch stark hoffen. Diese Einträge der Form set root=(hd0,1) teilen Grub doch mit, auf welcher Festplatte und welcher Partition sich das Rootverzeichnis der zu startenden Distribution befindet. Diese so bezeichnete Partition wird daraufhin von Grub gemountet und der durch

linux /vmlinuz-2.6.32-5-amd64 root=UUID=374f3e1c....

gekennzeichnete Kernel vmlinuz-2.6.32-5-amd64 mitsamt der initial ramdisk initrd.img-2.6.32-5-amd64

initrd /initrd.img-2.6.32-5-amd64

„gestartet“. Ist dies geschehen, so kann sich Grub zurücklehnen, weil seine Aufgabe erledigt ist und er den Staffelstab an den init-Prozess 1 übergeben hat.

Ich bin jetzt sehr verwirrt. Wieso ist das Löschen eines (von
dir fiktiv angenommenen) Win auf sda 6 problemlos, das Löschen
eines Linux auf sda 7 aber nicht? Anscheinend habe ich den
Bootvorgang überhaupt nicht verstanden :frowning:

Nein, nein, das möchte ich nun nicht behaupten. Ich habe mich einfach undeutlich ausgedrückt. Der Einwand bezog sich ja auf das „Umpartitionieren“, bzw. Löschen einer Partition. Grundsätzlich interessiert es die Distribution A ganz und gar nicht, wenn Du die Distribution B löschst, sei es nun Windows oder Linux.
Aber, und darauf bezog sich mein Einwand, wenn Du z.B. Partition 5 löschst, verschieben sich die Nummerierungen der nachfolgenden Partitionen, aus 6 wird 5, aus 7 wird 6 usw. Das führt natürlich in allen Fällen, in denen diese Nummerierung verwandt wird (z.B. bei sowas wie hd0,6) zu Problemen. So verständlicher?

Die Einträge in der fstab und Partitionstabelle bleiben für
diese beiden unangetasteten Partitionen ja auch gleich.

Aber eben nur, wenn Du überall Labels oder eben UUIDs benutzt, und bei den
„set root“-Nummerierungen habe ich solche noch nie gesehen. Bin jetzt auch zu faul, um nachzusehen, ob dort UUIDs möglich wären, bezweifle es aber stark.
Wenn Du also ein Linux unter

set root='(hd1,msdos7)'

hast, und löschst die Partition 6, dann liegt dein Linux nicht mehr auf Partition 7, sondern Partition 6 und stimmt somit nicht mehr mit dem Eintrag überein -> Crash!

Wenn die Nummerierung der
Partitionen gleich bleibt, ist es ja gut. :

Bleiben ja 2 davon, aber die aktive Partition wäre dann weg.
Das ist die Kernfrage, ob dann alles zusammenbricht.

Es bricht zusammen, wenn sich die Nummerierung in der oben beschriebenen Art ändert.

Eigentlich wollte ich ja nur wissen, ob die anderen wirklich
noch bootbar sind, weil ich dies gelesen habe:
Bei installiertem Bootmanager ist die Kennzeichnung als aktive
Partition bedeutungslos.

Die sind solange bootbar, solange die Kennzeichnungen in der grub.cfg und in der /etc/fstab „stimmen“.

Ok, Grub wird immer als Bootloader bezeichnet, ist in der
funktionsweise aber letztlich ein Bootmanager.

Naja, das ist wahrscheinlich mehr theoretisch von Belang, oder eine Frage der Definition. Wenn man unbedingt will, kann man Bootmanager als „intelligente“ Bootloader bezeichnen. Für das Verständnis von Grub2 scheint mir die Frage, ob es sich dabei um einen Bootmanager oder einen Bootloader handelt, nicht wichtig. Soweit ich es sehe, wird bei Grub2 jedoch meist von einem Bootloader gesprochen. Das Acronym GRUB2 heisst ja auch " GR and U nified B ootloader 2"

Die Situation:
Grub 2 im MBR -> enthält alle bootfähigen BS
sda 1 Linux 1
sda 5 Linux 2
sda 7 Linux 3 *aktive Partition.

So ist es schön übersichtlich, auch wenn ich nicht weiss, was Du immer mit der „aktiven Partition“ willst. „Aktiv“ ist immer das Linux, das gerade gestartet wurde. Wenn Du Linux 1 startest, dann ist eben Linux 1 oder eben sda1 „aktiv“. Insofern ist dieser Begriff bedeutungslos.

Wenn ich diese * Lösche (ob zusätzlich umpartitioniert wird
ist da mal irrelevant) startet Grub dann noch die anderen
beiden BS oder nicht?

Ja, wenn Du Linux 3 löschst (und dabei alles gut geht), kannst Du sowohl Linux 1 als auch Linux 2 noch starten. Das natürlich nur mit der Einschränkung, daß weder Linux 1 noch Linux 2 auf einer eventuell vorhandenen Partition 8 (oder höher) noch irgendwelche Verzeichnisse liegen haben. Sage ich jetzt, weil ich mich frage, was denn z.B. mit Partition 6 ist? Und das „Umpartitionieren“ lassen wir jetzt auch mal aussen vor…

Wieso muss Grub dann repariert werden?

In dem Fall ist der Begriff „repariert“ zu viel gesagt. Du kannst das „update-grub“ da auch lassen, hast dann aber in deinem Bootmenu noch die Auswahl von Linux 3 stehen, obwohl es nicht mehr existiert. Mich würde das stören.

Kein BS -> kein Eintrag im Menu, ja. Aber kein update-grub ->
auch kein neuer Eintrag im Menu.

Auch nicht, wenn ein weiteres BS installiert wird?

Wenn Du ein neues BS installierst (wir reden natürlich von Linux), wird auch Grub wieder in den MBR installiert (außer Du möchtest es woanders hin). Das schliesst auch ein update-grub, oder genauer gesagt, ein Ausführen des Skriptes /etc/grub.d/30_os-prober ein, so daß in dem Fall auch eine neue grub.cfg erzeugt wird.

Das widerspricht meinen Erfahrungen, als ich die 3 Linux
Distris nacheinander installierte. Das erkannte Grub immer und
fügte das neue BS hinzu.

Insofern bezog sich mein Einwand auf das Umpartitionieren, bei dem ein solches update-grub eben nicht automatisch gemacht wird.
Solche Mißverständnisse kannst Du also auf mein Konto schreiben, nach dem Motto „Je länger der Text und je später der Abend, um so unpräziser“ :wink:

es auch noch die /etc/fstab gibt, die ebenfalls
stimmen muß.

Ich habe mir alle Eintragungen der jew.
fstab und auch brav alle UUIDs aller meiner Partitionen
ausgedruckt und auch in einer Datei gespeichert.

Sehr gut. Das, sowie das Sichern des MBR und die regelmäßigen Backups sind sozusagen Pflichtübungen eines jeden Linux-Users.
Da brauche ich dir ja nur noch diesen Artikel ans Herz zu legen:
http://www.dedoimedo.com/computers/grub-2.html
Musst Du nicht auswendig lernen :wink: nur aufmerksam lesen.

Viele Grüße
Marvin

Hi Marvin,

es scheint unser „Schicksal“ zu sein, dass wir uns missverstehen. Ist jetzt das 2. Mal :wink:
Aber schön, dass du das locker nimmst.

Nun bin ich beruhigt, weil mir deine Antworten zeigen, dass ich dann doch alles richtig verstanden habe, du mich aber nicht so wirklich, weil ich mich oft zu ausführlich und kompliziert ausdrücke.

Und ein bisschen dazu gelernt habe ich auch!

In aptosid z. B. wird in der fstab automatisch die UUID angelegt. Ist wohl eine sicherere Methode als nur über labels. Ist ja kein Problem, schnell mal ls -l /dev/disk/by-uuid einzugeben, dann die Partitions in der fstab mit # sdaX kommentieren, separat speichern und drucken, fertig.

Damke für den Link. Mit Englisch habe ich es leider nicht so :frowning: Erst seit ich Linux habe *gg*
Ich genug deutsche Seiten zum Thema gefunden.
Ubuntu selbst finde ich zwar nicht so toll, aber deren Wiki ist echt sehr gut.

Hallo Diphda,

es scheint unser „Schicksal“ zu sein, dass wir uns
missverstehen. Ist jetzt das 2. Mal :wink:

Seufz, das heisst jetzt, daß immer noch viele (oder alle) Unklarheiten bestehen?

Nun bin ich beruhigt, weil mir deine Antworten zeigen, dass
ich dann doch alles richtig verstanden habe, du mich aber
nicht so wirklich, weil ich mich oft zu ausführlich und
kompliziert ausdrücke.

wie wahr, wie wahr…

Und ein bisschen dazu gelernt habe ich auch!

Na wenigstens etwas.

In aptosid z. B. wird in der fstab automatisch die UUID
angelegt. Ist wohl eine sicherere Methode als nur über labels.

Ist bei mir genauso. Aber diese UUIDs sind eigentlich furchtbar, wie 100-stellige Telefonnummern :wink:

Ist ja kein Problem, schnell mal ls -l /dev/disk/by-uuid
einzugeben, dann die Partitions in der fstab mit # sdaX
kommentieren, separat speichern und drucken, fertig.

Ja, ja. Aber wie schön sind dagegen Labels:

_ls -l /dev/disk/by-label_
lrwxrwxrwx 1 root root 10 6. Mär 10:53 DEB\_BOOT -\> ../../sda1
lrwxrwxrwx 1 root root 11 6. Mär 10:53 DEB\_HOME -\> ../../sda10
lrwxrwxrwx 1 root root 10 6. Mär 10:53 DEB\_ROOT -\> ../../sda6

ist doch viel lesbarer als das hier:

_ls -l /dev/disk/by-uuid_
lrwxrwxrwx 1 root root 10 6. Mär 10:53 2837cfba-d517-43c2-9abc-f21568bb7341 -\> ../../sda1
lrwxrwxrwx 1 root root 11 6. Mär 10:53 a14e00d5-8aaf-4c64-a87c-eed36d2c3690 -\> ../../sda10
lrwxrwxrwx 1 root root 10 6. Mär 10:53 374f3e1c-5115-4596-b47c-4335faf795dd -\> ../../sda6

aber ich komme ins Plaudern.

Ubuntu selbst finde ich zwar nicht so toll, aber deren Wiki
ist echt sehr gut.

Ja, das Ubuntu-Wiki ist toll. Dort finden sich eigentlich die meisten Antworten, auch wenn man kein Ubuntu benutzt.

Viele Grüße
Marvin

Wichtige Ergänzung
Hallo Diphda,
ich habe mir dein Problem nochmals durch den Kopf gehen lassen und leider festgestellt, daß ein entscheidender Punkt noch fehlt. Und zwar handelt es sich um die Reihenfolge, in der Du deine Distris installiert hast.
Deine Belegung:

sda1: Linux 1
sda5: Linux 2
sda7: Linux 3

Wenn Du Linux 3 zuletzt installiert hast, dann würde das Entfernen von Linux 3 (also Partition sda7) dazu führen, das Du doch anschliessend GRUB2 reparieren bzw. neu installieren müsstest.
Begründung:
Du hast dann zwar noch GRUB2 im MBR, aber die Datei grub.cfg, die Grub unbedingt einlesen muss, existiert nicht mehr, weil diese Datei ja auf sda7 lag.
Wenn Du dagegen Linux 3 nicht zuletzt installiert hast, dann kannst Du diese Partition entfernen, weil Grub seine grub.cfg entweder auf sda1 oder sda5 findet, je nachdem, welche von den beiden Distris die neueste, also zuletzt installierte war.

Tut mir leid, daß dieser wichtige Punkt mir erst jetzt wieder eingefallen ist.

Viele Grüße
Marvin