Das bringt mich wirklich runter. Ich habe Gentoo und Ubuntu, beide mit Grub2. Gentoo hat eine dedizierte /boot
Partition, Ubuntu nicht. Ich habe ein menuentry
in Gentoo /etc/grub.d/40_custom
, um Ubuntu zu booten (und Ubuntu bootet OK).
Da Ubuntu mit Grub geliefert wird, möchte ich einen Chainload in diesen ausführen, anstatt meinen Eintrag zu pflegen, der Root, Kernel, Initrd und so weiter festlegt. Folgendes habe ich für den Chainloader (Ubuntu ist aktiviert /dev/sda4
und ich habe Grub dort bereits installiert):
menuentry 'Chainloader' {
insmod chain
set root=(hd0,4)
chainloader +1
}
Es gibt mir error: Invalid signature
und ich fand keine Lösung zur Verfügung. Kann jemand auf etwas hinweisen?
Dies ist das Ergebnis von </dev/sda4 head -c 512 | hd
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
Dies ist das Ergebnis von fdisk -l
. /dev/sda1
ist /boot
von Gentoo, Gentoo ist in /dev/sda2
, Ubuntu ist in /dev/sda4
. Ubuntu /boot
ist /dev/sda4
auch dabei.
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe001152b
Device Boot Start End Blocks Id System
/dev/sda1 1 9 72261 83 Linux
/dev/sda2 10 13064 104864287+ 8e Linux LVM
/dev/sda4 * 18152 19457 10490445 83 Linux
Es liegt kein Fehler bei grub-install /dev/sda4 --no-floppy --force
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea..
/usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
/dev/sda4
. Haben Sie mehr als eine Festplatte? Was ist Ihre Partitionstabelle? Bitte posten Sie die Ausgabe vonfdisk -l
und die Nachrichten vongrub-install /dev/sda4 --no-floppy --force
.Antworten:
Sie können GRUB2 von GRUB2 in einer Kette laden. Ich habe es so ausprobiert, wie Sie es beschrieben haben, und es funktioniert. Die von Ihnen angegebenen Informationen lassen jedoch den Eindruck entstehen, dass das Startabbild nicht in den MBR der Festplatte eingebettet wurde (oder dass es sich nicht nur um Nullen handelt).
Ich würde dies versuchen, obwohl es nicht genau den GRUB2 von Ubuntu verwendet (nur die Konfigurationsdatei). Sie können einen Menüeintrag in der Gentoo GRUB2-Konfigurationsdatei erstellen, der die Ubuntu-Konfigurationsdatei lädt. Ich sehe zwei Möglichkeiten, dies zu tun.
Das , was ich verwenden würde, ist mit dem normalen Befehl, mit dem Sie eine Konfigurationsdatei angeben können, die für den normalen Modus geladen werden soll. Wenn Sie diesen Weg gehen, gibt es einen Befehl namens normal_exit , den Sie als benutzerdefiniertes Element in Ihrer Ubuntu-Konfiguration hinzufügen können, um zu Ihrer Gentoo-Konfiguration zurückzukehren.
Die andere Option ist der Befehl configfile , mit dem Sie eine alternative Konfigurationsdatei zum Laden angeben können. Es scheint jedoch schwieriger zu sein, von dieser Option zurückzutreten.
Weitere Informationen zu diesen Befehlen finden Sie hier .
quelle
Der erste Teil des Startvorgangs besteht aus dem Laden von Code aus dem ersten Sektor der Festplatte, dem sogenannten Master Boot Record (MBR) . Normalerweise wird Grub in diesen ersten Festplattensektor geschrieben und nicht in den ersten Sektor der Partition, die / den bootet. Normalerweise können Sie dies während der Linux-Installation ändern. In modernen Installationsroutinen wird dies jedoch häufig ausgeblendet.
Sie sagen, dass Sie Grub in / dev / sda4 installiert haben, Ihre Konfiguration jedoch korrekt aussieht und die Fehlermeldung, die Sie veröffentlicht haben, darauf hinweist, dass Grub möglicherweise nicht korrekt in der Partition installiert ist, die Sie verketten möchten. Sie sollten Gentoo starten und dann die Ubuntu-Partition chrooten. Stellen Sie sicher, dass / boot jetzt korrekt auf Ubuntu- / boot und nicht auf Gentoo verweist! Jetzt installieren Graben 2 in den ersten Sektor der Ubuntu-Partition / dev / sda4:
grub-install /dev/sda4 --no-floppy
.Stellen Sie, wie immer beim Umgang mit MBR und Partitionen, sicher, dass Sie über ein funktionierendes, aktuelles Backup verfügen, bevor Sie beginnen.
quelle
/dev/sda4
(die letzten beiden Bytes müssen sein0x55 0xaa
). Könnten Sie die Ausgabe von posten</dev/sda4 head -c 512 | hd
?grub-install /dev/sda4 --no-floppy --force
, sonst wird es ein paar beschwerden über blocklisten gebenWird sda4 nicht in grub (hd0,3) sein, oder hat sich so etwas in grub2 geändert?
quelle