System lässt sich nicht mehr booten - Eventuell Problem mit grub

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Re: System lässt sich nicht mehr booten - Eventuell Problem mit grub

Beitrag von Cordess » 06.08.2020 16:30:38

So, dass mit dem fehlenden Win 10 Menüeintrag konnte ich jetzt auch mit einem einfachen
update-grub
grub-install
beheben.

Damit geht jetzt wieder alles wie gewünscht.
Aber es ist schon irgendwie ärgerlich, da ich den ganzen Tag damit verschwendet habe.

Dafür, wie ich jetzt zukünftig meine grub Menüeinträge für meinen Multi-OS USB Stick akutallisieren kann,
wenn ich den Paramter --root-directory=/media/nutzername/multi_os/ nicht mehr verwenden kann, ohne meine Grubinstallation für mein System zu beschädigen, dafür werde ich auch noch nach einer Lösung suchen müssen.

Dabei wäre es auch sinnvoll, wenn ich auch noch eine Lösung finde, wie ich die auf dem USB Stick installierte grub Version update.
2.02~beta2-3 ist laut Debian Changelog jedenfalls aus dem Jahr 2014 und dem Monat Januar, also uralt.

smutbert hat geschrieben: ↑ zum Beitrag ↑
06.08.2020 15:56:41
Ok, da dürfte das Modul für die Partitionierung per gpt fehlen. Das habe ich vergessen zu bedenken oder erwähnen. Vorher einfach ein

Code: Alles auswählen

insmod part_gpt
dann sollten die Partitionen und Dateisysteme erkannt werden. Sicherheitshalber kannst du auch noch den Dateisystemtreiber laden, für ext2/3/4 also etwa

Code: Alles auswählen

insmod ext2
Danach müsste ls zumindest die Partitionen erkennen und hoffentlich auch das Dateisystem

Code: Alles auswählen

ls (hd1,gpt1)
wobei du das ls (hd1,gpt1) natürlich anpassen musst – du musst deine boot-Partition nehmen. Anhand der Ausgabe (den Dateien) erkennst du dann auch gleich ob es wirklich /boot ist und kannst dann die grub.cfg laden, wie oben beschrieben.
Danke, das werde ich dann beim nächsten mal so machen.


EDIT:
Ach ja, von mir noch ein Dankeschön an alle, die mir geholfen haben.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: System lässt sich nicht mehr booten - Eventuell Problem mit grub

Beitrag von smutbert » 06.08.2020 23:06:09

Cordess hat geschrieben: ↑ zum Beitrag ↑
06.08.2020 16:30:38
[...]

Dafür, wie ich jetzt zukünftig meine grub Menüeinträge für meinen Multi-OS USB Stick akutallisieren kann,
wenn ich den Paramter --root-directory=/media/nutzername/multi_os/ nicht mehr verwenden kann, ohne meine Grubinstallation für mein System zu beschädigen, dafür werde ich auch noch nach einer Lösung suchen müssen.

[...]
Ok, also erst einmal bin ich überrascht, dass du behauptest in der Vergangenheit mit grub-install mit der Option --root-directory=... nicht nur grub auf dem USB-Stick installiert sondern gleichzeitig eine passende grub.cfg erstellt zu haben.
Eigentlich dachte ich (und glaube es noch immer), dass update-grub für das Erstellen der grub.cfg zuständig ist und die Menüeinträge immer für das aktuell laufende System oder gegebenenfalls, das System in das man ge-chrootet hat, erstellt und mit zusätzlichen Paketen nur zusätzlich weitere Menüeinträge zum Starten fremder Systeme (Debianos-prober) oder zum Beispiel von grml-iso-Images (Debiangrml-rescueboot) erstellen kann.


Ich meine also es läuft darauf hinaus, dass man die grub.cfg selbst schreibt. Um den grub zuerst auf einem USB-Stick oder einem anderen Medium für ein anderes System bzw. Systeme zu installieren, muss man angeben wo die Dateien von grub landen sollen (die Module von grub, die grub.cfg u. s. w.).
Für grub-pc (für BIOS/Legacy/CSM-Modus) muss man zusätzlich angeben wohin der Bootcode von grub geschrieben werden soll (üblicherweise in den MBR eines Speichermediums).
Bei grub-efi muss man stattdessen angeben wo die EFI System Partition ist, auf der grub landen soll und eventuell weitere Optionen für das Anlegen der Booteinträge im nvram.


Für grub-pc sollte mit

Code: Alles auswählen

grub-install --boot-directory=/media/nutzername/multi_os/ /dev/sdz
der Bootcode beispielsweise im MBR von /dev/sdz landen und die zugehörigen Dateien von grub in »/media/nutzername/multi_os/grub«, wo man dann auch selbst die grub.cfg anlegen kann. (Das ist im allgemeinen auch nicht besonders schwierig und man muss es vor allem nur einmal machen.)
Mit demselben Befehl lässt sich grub dann in Folge auch leicht updaten.


Bei grub-efi könnte man die gewünschte EFI System Partition unter »/mnt/efi« mounten und dann mit

Code: Alles auswählen

grub-install --boot-directory=/mnt/efi/EFI --efi-directory=/mnt/efi --removable --no-nvram
grub so installieren, dass alle seine Dateien in »EFI/grub« auf der EFI System Partition landen, wo man auch wieder die die grub.cfg anlegen kann, wobei --removable dafür sorgt, dass die .efi-Datei, die dann vom UEFI geladen wird, in einem Pfad gespeichert wird in dem sie auch ohne eigenen Booteintrag sucht und -no-nvram sorgt dafür, dass kein Booteintrag erstellt wird (anders hätte es auf einem Wechselmedium auch keinen Sinn, weil die Booteinträge ja im nichtflüchtigen Speicher des Computers erstellt werden).

Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Re: System lässt sich nicht mehr booten - Eventuell Problem mit grub

Beitrag von Cordess » 06.08.2020 23:38:19

smutbert hat geschrieben: ↑ zum Beitrag ↑
06.08.2020 23:06:09
Cordess hat geschrieben: ↑ zum Beitrag ↑
06.08.2020 16:30:38
[...]

Dafür, wie ich jetzt zukünftig meine grub Menüeinträge für meinen Multi-OS USB Stick akutallisieren kann,
wenn ich den Paramter --root-directory=/media/nutzername/multi_os/ nicht mehr verwenden kann, ohne meine Grubinstallation für mein System zu beschädigen, dafür werde ich auch noch nach einer Lösung suchen müssen.

[...]
Ok, also erst einmal bin ich überrascht, dass du behauptest in der Vergangenheit mit grub-install mit der Option --root-directory=... nicht nur grub auf dem USB-Stick installiert sondern gleichzeitig eine passende grub.cfg erstellt zu haben.
Da liegt ein Missverständnis vor. So etwas habe ich nicht behauptet.

Meine grub.cfg für den USB Stick editiere ich per Hand.
Und mit grub--install --root-directory=/...usw /dev/sd? wurde es dann bisher installiert.


Ich meine also es läuft darauf hinaus, dass man die grub.cfg selbst schreibt. Um den grub zuerst auf einem USB-Stick oder einem anderen Medium für ein anderes System bzw. Systeme zu installieren, muss man angeben wo die Dateien von grub landen sollen (die Module von grub, die grub.cfg u. s. w.).
Für grub-pc (für BIOS/Legacy/CSM-Modus) muss man zusätzlich angeben wohin der Bootcode von grub geschrieben werden soll (üblicherweise in den MBR eines Speichermediums).
Bei grub-efi muss man stattdessen angeben wo die EFI System Partition ist, auf der grub landen soll und eventuell weitere Optionen für das Anlegen der Booteinträge im nvram.
Einfacher wäre es, wenn man grub-install sagen könnte wo die grub.cfg liegt bzw. welche es nehmen soll.
Dann noch den devicenamen mitangeben und das root Verzeichnis übergeben, damit die Pfadangaben in der übergebenen grub.cfg stimmen und schon könnte das alles ausreichen.

Leider ist es irgendwie komplett verdreht, so dass man sogar chrooten muss.


Für grub-pc sollte mit

Code: Alles auswählen

grub-install --boot-directory=/media/nutzername/multi_os/ /dev/sdz
der Bootcode beispielsweise im MBR von /dev/sdz landen und die zugehörigen Dateien von grub in »/media/nutzername/multi_os/grub«, wo man dann auch selbst die grub.cfg anlegen kann. (Das ist im allgemeinen auch nicht besonders schwierig und man muss es vor allem nur einmal machen.)
Mit demselben Befehl lässt sich grub dann in Folge auch leicht updaten.
--boot-directory werde ich mal ausprobieren.


Bei grub-efi könnte man die gewünschte EFI System Partition unter »/mnt/efi« mounten und dann mit

Code: Alles auswählen

grub-install --boot-directory=/mnt/efi/EFI --efi-directory=/mnt/efi --removable --no-nvram
grub so installieren, dass alle seine Dateien in »EFI/grub« auf der EFI System Partition landen, wo man auch wieder die die grub.cfg anlegen kann, wobei --removable dafür sorgt, dass die .efi-Datei, die dann vom UEFI geladen wird, in einem Pfad gespeichert wird in dem sie auch ohne eigenen Booteintrag sucht und -no-nvram sorgt dafür, dass kein Booteintrag erstellt wird (anders hätte es auf einem Wechselmedium auch keinen Sinn, weil die Booteinträge ja im nichtflüchtigen Speicher des Computers erstellt werden).
Danke, werde ich mir morgen mal angucken.

Antworten