Wie kann ich verhindern, dass zwei Betriebssysteme Grub-Dateien blockieren?

445
Chris Quenelle

Ich möchte Linux und OpenSolaris in verschiedenen Partitionen auf derselben Festplatte installieren. Ich mache mir Sorgen, weil OpenSolaris offenbar die Grub-Daten aktiv verwaltet, wenn das Betriebssystem aktualisiert wird (Teil der Funktion "Boot-Umgebung"). Gibt es etwas, auf das ich mich vorbereiten sollte, um zu verhindern, dass meine Grabdaten verschmutzt werden. Wenn ich später eine andere Linux-Version zu demselben System hinzufügen möchte, was sind die Überlegungen? Soll ich ein Betriebssystem auswählen und immer Grub-Updates von diesem Betriebssystem durchführen? Wenn ja, wie verwende ich die Installations-ISO für eine neue Linux-Version? Wird es nicht weitergehen und die Grub-Daten selbst ändern? Wenn ich bereits in Linux gebootet habe und meine Grub-Dateien aktualisieren möchte, sollte ich einen Grub-Befehl ausführen, der die Daten aus dem Boot-Abschnitt des Laufwerks liest und in das lokale Dateisystem kopiert, in das ich gerade gebootet wurde?

6
Dies ist eher eine IT-Frage und nicht für SO geeignet. Das ist eine gute Frage, gehört aber anderswo. swilliams vor 15 Jahren 0
Wiedereröffnet In einer Entwicklungsumgebung führt ein Programmierer möglicherweise beide Betriebssysteme (oder zwei ähnliche Betriebssysteme) aus und ist auf dieses Problem gestoßen, das das Booten verhindern und die Entwicklung daher stoppen würde. Thomas Owens vor 15 Jahren 0
Programmierer müssen essen und schlafen, aber das macht diese akzeptablen Themen nicht zu SO. Nur weil Programmierer davon betroffen sind, ist es nicht programmierungsbezogen. ephemient vor 15 Jahren 0
Essen und Schlafen sind nicht technisch. Dies ist eine gültige technische Frage, die einem Programmierer hilft, seine / ihre Arbeit zu erledigen. Ich denke, es ist genauso akzeptabel wie das Finden des richtigen Stuhls, Werkzeuge für die Zeiterfassung und dergleichen. Thomas Owens vor 15 Jahren 0
Ich wollte die Argumentation von Swilliams verteidigen. Ich bin mir nicht sicher, ob dies eine Frage ist, die für SO geeignet ist oder nicht, sie befindet sich in einem Bereich, in dem ich eine Grauzone sehe (bis die FAQs weiter klären oder die Community abstimmt). ephemient vor 15 Jahren 0
Es ist eine ziemlich schmale Linie in diesem Fall, also stimme ich der Entscheidung von Thomas Owens zu, obwohl ich mit Ihnen einverstanden bin. swilliams vor 15 Jahren 0
http://stackoverflow.com/questions/42962/system-administration-questions-yes-or-no Paul Tomblin vor 15 Jahren 0
Ich denke, diese Frage ist viel passender als einige der am besten bewerteten und meistgesehenen Fragen (wie: "Was ist Ihr Lieblingsprogrammierer-Cartoon?"). Da dieser Fragesteller tatsächlich Hilfe sucht, scheint es falsch, sie zu bestrafen. vor 15 Jahren 0
Keine programmierungsspezifische Frage. Andrew Medico vor 13 Jahren 0

6 Antworten auf die Frage

3
Dan

Sie müssen dem einen oder anderen Betriebssystem mitteilen, dass der GRUB-Boot-Sektor nicht automatisch blockiert wird.

Alle Linux-Distributionen, die ich gesehen habe, haben einige Möglichkeiten, um zu verhindern, dass ihre Installations-CD den Boot-Sektor blockiert, aber es ist oft eine obskure erweiterte Option.

Die meisten Konfigurationsdaten von GRUB werden nicht in dem sehr kleinen Boot-Sektor gespeichert, der nur ein kleines Ladeprogramm und einen Zeiger auf den Rest enthält. Die Konfigurationsdaten werden normalerweise in einem regulären Verzeichnis in einer regulären Partition auf dem Laufwerk gespeichert ( /bootunter vielen Linux-Distributionen). Wenn Solaris sich also nicht wirklich mit den Daten auf der Linux-Partition befasst, ist dies wahrscheinlich keine große Sache. Wenn ein Betriebssystem den Boot-Sektor des anderen Betriebssystems blockiert, können Sie es problemlos wiederherstellen.

3

Grub ist ein Programm wie jedes andere. Es gibt einen kleinen Abschnitt am Anfang Ihrer Festplatte (Master Boot Record), der angibt, welches Programm zum Laden von Betriebssystemen verwendet werden soll. Dies ist die Sache, die durch die Installation einer neuen Grub verschmiert wird. Es ist jedoch möglich, grub nicht mit einem neuen Betriebssystem zu installieren (außer Windows, das in einem Multi-Boot-System immer zuerst installiert werden sollte). Wenn Sie grub nicht installieren möchten, müssen Sie die Größe des ursprünglichen Systems so konfigurieren, dass das neue erkannt wird. Mit anderen Worten, Sie steuern die Betriebssysteme aller Betriebssysteme von einem (in diesem Fall sieht es so aus, als wäre Solaris die beste Wahl, wenn es so aggressiv ist). In diesem Betriebssystem ist es sehr einfach, weitere Optionen zu Ihrem Grub hinzuzufügen. In /boot/grub/menu.lst können Sie neue Optionen hinzufügen und deren Reihenfolge auswählen. Zum Beispiel führe ich Ubuntu, Windows, und Gentoo zum Spielen. Mein menu.lst enthält die Einträge:

title Ubuntu 8.04.1, kernel 2.6.24-18-generic root (hd1,0) kernel /boot/vmlinuz-2.6.24-18-generic root=UUID=887466bc-8a0d-4408- 17a-91ec1cfd9f2a ro quiet splash vga=795 initrd /boot/initrd.img-2.6.24-18-generic quiet  title Microsoft Windows XP Professional root (hd0,0) savedefault makeactive chainloader +1  title Gentoo Linux 2.6.25-gentoo-r7 root (hd0,1) kernel /boot/kernel-2.6.25-gentoo-r7 root=/dev/hdb2 

Jede dieser Informationen enthält grundlegende Informationen über das System, das ich laden möchte, einschließlich Name, Speicherort der Festplatte (Festplatte und Partition) und wo sich auf dieser Festplatte das zu ladende Objekt befindet. Beachten Sie, da Windows sich selbst laden möchte, lassen Sie Grub wissen, dass es zu einer Kettenladung kommt, indem Sie den Windows-Bootloader auf Platte 0 (Partition 0 (rechts am Anfang)) finden und stattdessen ausführen. Für ein Linux-System benötigen Sie wirklich nur den Namen, das Root-Laufwerk und den Kernel-Speicherort, um Ihrem Grub-Menü eine neue hinzuzufügen.

Wenn Sie später einen Linux installieren und vergessen, die Grub-Installation zu überspringen, können Sie die menu.lst auch von einer in die andere kopieren.

2

Ich denke, Sie sollten eines der Betriebssysteme besser als virtuelle Maschine ausführen.

Mit einer modernen CPU, die VM-Erweiterungen unterstützt, und einigen GB RAM können Sie 3-4 Maschinen problemlos ausführen. Überprüfen Sie anhand des folgenden Snippets, ob Ihre CPU diese unterstützt.

egrep '^flags.*(vmx|svm)' /proc/cpuinfo 

Dafür gibt es viele Möglichkeiten: Xen, kvm, VirtualBox, VMware.

1
Paul Tomblin

The last time I set up a dual boot system (before the days of virtual machines as in the previous person's answer), it used to give you the option of making a boot floppy. This was useful, because then after you installed another OS and it wrote all over the Master Boot Record, you could boot from the floppy, set up Grub to chain load the other OSes, and reinstall it on the MBR. I don't know what the modern equivalent is, because I use VMware.

0
ephemient

Teilen Sie nicht /bootzwischen Betriebssystemen, es ist nur mehr Arbeit. Die meisten modernen Distributionen haben standardmäßig ein einziges /Dateisystem, wobei /bootes sich lediglich um ein Unterverzeichnis handelt/boot es sich um eine eigene Partition handelt, ist dies mit einem separaten pro Betriebssystem in Ordnung.

Jedes Betriebssystem verwaltet dann sein eigenes /boot, und eines davon ist die standardmäßige startfähige Partition. Sie sollten es in der Lage sein, es leicht zu konfigurieren, um das andere zu verketten. Grub kann seine Header nur in einer eigenen Partition installieren, ohne die gesamte Festplatte zu beeinflussen.

Das Problem ist nicht die / boot-Partition. Viele Installationsprogramme legen ihre eigenen Daten in den Master-Boot-Record ab, ohne dabei zu berücksichtigen, was bereits vorhanden ist. Paul Tomblin vor 15 Jahren 0
Nach der Installation sollte nichts den MBR ohne Ihre Erlaubnis berühren, und Sie können nach der Installation mehrere Grub-Installationen problemlos reparieren. Davon abgesehen weiß ich, dass Debian fragt, ob Sie Grub auf der Festplatte oder Partition installieren möchten, und ich würde ähnliche Optionen in anderen Installationsprogrammen erwarten. ephemient vor 15 Jahren 0
0

you can try installing both WITHOUT grub, and just keep a cd containing super grub which will allow you to boot either OS.

Super Grub Disk is this utlity which once run, runs grub and you can choose your OS, fix the grub on your MBR, and others.

i think you can also create a boot disk aside from grub or lilo. i'm not sure how it's done however.