Wie zwinge ich grub2, meine Arch Linux-Installation zu erkennen?


8

Ich habe ein ungewöhnliches Setup. Ich habe Ubuntu auf einem installiert und ein Backup von einer direkten Kopie einer älteren Arch Linux-Installation auf dem zweiten. Mit direktem Kopieren meine ich, dass ich zunächst den Inhalt einer gesamten Partition tariert habe, und jetzt habe ich diesen Inhalt auf eine andere Partition extrahiert. Damit:

1 - Ubuntu mit GRUB2

2 - Bogen von einem Backup

Ubuntu läuft und bootet gut. Nachdem ich Arch in eine Partition extrahiert hatte, änderte ich fstab, um die neue Partition wiederzugeben. Aber jetzt stecke ich fest und versuche, Arch zum Booten zu bringen. Ich habe versucht, update-grub in Ubuntu auszuführen, aber die Arch-Installation wird nicht ausgeführt. Wie kann ich das zum Laufen bringen?


Grub benutzt nicht fstab
matzahboy

Antworten:


9

Ich hatte ein ähnliches Problem nach der Installation von Fedora 17. Ubuntu konnte es nicht beheben. Nachdem ich im Internet keine Antworten gefunden hatte, fragte ich mich, ob es daran lag, dass grub die Fedora-Installation nicht sehen konnte. Also habe ich die Fedora / Partition in Ubuntu gemountet und update-grub ausgeführt. Die Fedora-Installation wurde gefunden und dem Boot-Menü hinzugefügt. Ich benutze die gleiche Technik mit Archlinux


3

Haben Sie versucht, dem ArchWiki- Artikel auf Grub2 zu folgen? Sie möchten wahrscheinlich das Paket os-prober auf Ihrem System installieren, bevor Sie grub-mkconfig ausführen. Dadurch wird die richtige grub.cfg-Datei für Ihr System erstellt.

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.


2

Derzeit verwenden Sie grub aus Ihrer Ubuntu-Installation. Wenn Sie Arch davon booten möchten, müssen Sie einen benutzerdefinierten Eintrag hinzufügen, der Ihr Ubuntu konfiguriert, damit Ihr neuer Eintrag nicht jedes Mal entfernt wird, wenn ein Paket update-grub ausführt.

Der neue Eintrag sollte ziemlich ähnlich aussehen wie das, was Sie bereits zum Booten von Ubuntu haben, aber auf die Partitionen von Arch verweisen und die Kernel-Parameter von Arch verwenden (Sie könnten wahrscheinlich die Wiki-Seite von Arch auf grub2 verwenden).

Weitere Informationen finden Sie hier: https://help.ubuntu.com/community/Grub2/CustomMenus


0

Ich bin über Google darauf gekommen, weil ich dieses Problem mit einer Debian Buster-Installation von Deboostrap hatte , einem sehr minimalistischen System, um Debian von Grund auf neu zu erstellen. Ich wollte mein altes Debian Stretch noch verfügbar haben, also brauchte ich einen Dual Boot. Mit Debootstrap ist nichts vorinstalliert, daher brauchte ich alle anderen drei Antworten von @sever (unbekanntes Root-Dateisystem einbinden ), @darnir (os- prober installieren) und @tripledes (benutzerdefinierte Konfiguration verwenden in /etc/grub.d/40_custom). So füge ich alles zusammen.

Installieren Sie zuerst os-prober :

~$ sudo apt install os-prober

Os-prober findet die alte Installation jedoch nicht, wenn das Root-Dateisystem nicht bereitgestellt ist. Also mach es (mein ist auf / dev / sda1):

~$ sudo mkdir /mnt/oldroot
~$ sudo mount /dev/sda1 /mnt/oldroot

Jetzt führe ich aus, grub-mkconfigum die Grub-Menüeinträge auf stdout zu erhalten und sie in eine temporäre Datei umzuleiten:

~$ sudo grub-mkconfig > /tmp/oldmenu.cfg

Jetzt habe ich bearbeiten diese Datei und löschen alles außer den Einträgen für die alten Menüs so habe ich nur übrig menuentry ... {...}und submenu ... {...}. Dann hänge ich es an /etc/grub.d/40_custom:

~$ sudo bash -c 'cat /tmp/oldmenu.cfg >> /etc/grub.d/40_custom'
~$ sudo update-grup

Aufräumen:

~$ sudo umount /mnt/oldroot
~$ sudo rmdir /mnt/oldroot
~$ rm /tmp/oldmenu.cfg

Das ist es. Jedes Mal, wenn ein Paket update-grub ausführt, geht der Eintrag für die alte Installation nicht verloren und wird immer hinzugefügt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.