Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Als kleines Wochenendprojekt wollte ich einen verschlüsselten Debian USB Stick erstellen, den man in einen beliebigen Rechner benutzen kann, mit Persistenz.
Leider klappt dies nicht recht. Der USB Stick bootet nur auf dem Rechner, auf dem er erstellt wurde. Bin mir nicht sicher, ob ich etwas falsch mache, oder ob dies einfach mit Debian nicht möglich ist.
Meine Schritte:
-debian-11.5.0-amd64-netinst.iso mit Rufus auf USB Stick kopiert, vom Stick gebootet und Debian mit den Default Einstellungen auf einen zweiten USB Stick installiert
-Als Partitionsmethode habe ich "Guided - Use entire Disk and set up encrypted LVM" gewählt.
Nach der Installation startet der Stick auf dem System, auf dem er erstellt wurde, problemlos.
Interessanterweise wurde ein neues Boot Device mit dem Namen "debian" erstellt. Dies ist im Bios auch noch sichtbar, wenn der Stick nicht eingesteckt ist.
Benutzt man dieses Boot Device, und der neu erstellte Stick ist eingesteckt, startet Debian. Versucht man den Stick mit Debian selbst als Boot Device zu benutzen, funktioniert der Start nicht (Kein Betriebssystem gefunden).
Hier sieht man auch schon das Problem. Der Stick selbst startet nicht, sondern nur das während der Installation erstellt Boot Device "debian". Und dieses Boot Device haben natürlich nur Rechner, auf denen Debian schon mal installiert wurde. Somit kann mein Stick auch nur auf solchen Rechnern benutzt werden.
Mein Ziel ist es, dass der Stick auf allen Rechnern starten kann.
Hat jemand dieses Problem schon mal gehabt, mache ich etwas falsch, oder ist dies eine Limitierung von Debian?
Bin dankbar für Hinweise!
Leider klappt dies nicht recht. Der USB Stick bootet nur auf dem Rechner, auf dem er erstellt wurde. Bin mir nicht sicher, ob ich etwas falsch mache, oder ob dies einfach mit Debian nicht möglich ist.
Meine Schritte:
-debian-11.5.0-amd64-netinst.iso mit Rufus auf USB Stick kopiert, vom Stick gebootet und Debian mit den Default Einstellungen auf einen zweiten USB Stick installiert
-Als Partitionsmethode habe ich "Guided - Use entire Disk and set up encrypted LVM" gewählt.
Nach der Installation startet der Stick auf dem System, auf dem er erstellt wurde, problemlos.
Interessanterweise wurde ein neues Boot Device mit dem Namen "debian" erstellt. Dies ist im Bios auch noch sichtbar, wenn der Stick nicht eingesteckt ist.
Benutzt man dieses Boot Device, und der neu erstellte Stick ist eingesteckt, startet Debian. Versucht man den Stick mit Debian selbst als Boot Device zu benutzen, funktioniert der Start nicht (Kein Betriebssystem gefunden).
Hier sieht man auch schon das Problem. Der Stick selbst startet nicht, sondern nur das während der Installation erstellt Boot Device "debian". Und dieses Boot Device haben natürlich nur Rechner, auf denen Debian schon mal installiert wurde. Somit kann mein Stick auch nur auf solchen Rechnern benutzt werden.
Mein Ziel ist es, dass der Stick auf allen Rechnern starten kann.
Hat jemand dieses Problem schon mal gehabt, mache ich etwas falsch, oder ist dies eine Limitierung von Debian?
Bin dankbar für Hinweise!
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Das deutet auf zwei Sachen hin: deine Maschine nutzt UEFI, und beim Installieren wurde dein Stick dort zum Booten hinterlegt. Das ist, was man vom Installer erwarten würde – schließlich soll der ein System bootbar auf der gegebenen Maschine installieren.simplex hat geschrieben:09.10.2022 03:23:52Interessanterweise wurde ein neues Boot Device mit dem Namen "debian" erstellt. Dies ist im Bios auch noch sichtbar, wenn der Stick nicht eingesteckt ist.
Wenn ich mich recht erinnere, bietet der Installer einen „Expertenmodus“ an, in dem man dann angeben kann, wohin der Bootloader geschrieben werden soll – dort würde man den Stick selbst angeben.
Wenn das nicht funktionieren sollte, wird etwas Handarbeit erforderlich sein.
Vielleicht ist’s auch einfacher, ein Debian-Livesystem herzunehmen und den Wünschen entsprechend zu modifizieren.
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Die Möglichkeit hat man auch im "normalen" Installationsmodus. Ganz am Schluß kommt die Meldung in der es sinngemäß heißt, es würde alles passend dafür ausschauen jetzt den Bootloader standardmäßig zu installieren, wenn man das wolle. Wenn man das dann verneint, wird daraufhin die Option angezeigt, den Bootloader auch auf das gewünschte Medium, in dem Fall der USB-Stick zu installieren.niemand hat geschrieben:09.10.2022 07:56:53
Wenn ich mich recht erinnere, bietet der Installer einen „Expertenmodus“ an, in dem man dann angeben kann, wohin der Bootloader geschrieben werden soll – dort würde man den Stick selbst angeben.
Habe mir kürzlich erst einen M2-USB "Stick" installiert mit UEFI. Es hängt dann, wie oben bereits ausgeführt, davon ab, wie das BIOS des anderen Rechners das USB-Device erkennt. Mit Umstellen der UEFI / Legacy Auswahl und/oder "F7" (bzw. wo der Rechner ggf. eine Boot-Auswahl vorsieht) schafft man es meist irgendwann dann auch den Stick zu booten.
Bei LVM-Volumes ist es meiner Erfahrung nach ggf. problematischer, falls mit GRUB doch etwas schief geht, das System noch aus dem GRUB Rescue Mode zu booten. Mir ist das zumindest nicht gelungen.
- grubenlicht
- Beiträge: 559
- Registriert: 10.06.2021 22:35:56
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
man kann (auch) Ventoy benutzen, oder – läuft auf dasselbe hinaus – grub standalone für EFI und CSM
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
niemand hat geschrieben:09.10.2022 07:56:53Das deutet auf zwei Sachen hin: deine Maschine nutzt UEFI, und beim Installieren wurde dein Stick dort zum Booten hinterlegt. Das ist, was man vom Installer erwarten würde – schließlich soll der ein System bootbar auf der gegebenen Maschine installieren.simplex hat geschrieben:09.10.2022 03:23:52Interessanterweise wurde ein neues Boot Device mit dem Namen "debian" erstellt. Dies ist im Bios auch noch sichtbar, wenn der Stick nicht eingesteckt ist.
Wenn ich mich recht erinnere, bietet der Installer einen „Expertenmodus“ an, in dem man dann angeben kann, wohin der Bootloader geschrieben werden soll – dort würde man den Stick selbst angeben.
Wenn das nicht funktionieren sollte, wird etwas Handarbeit erforderlich sein.
Vielleicht ist’s auch einfacher, ein Debian-Livesystem herzunehmen und den Wünschen entsprechend zu modifizieren.
rjh hat geschrieben:09.10.2022 10:57:20Die Möglichkeit hat man auch im "normalen" Installationsmodus. Ganz am Schluß kommt die Meldung in der es sinngemäß heißt, es würde alles passend dafür ausschauen jetzt den Bootloader standardmäßig zu installieren, wenn man das wolle. Wenn man das dann verneint, wird daraufhin die Option angezeigt, den Bootloader auch auf das gewünschte Medium, in dem Fall der USB-Stick zu installieren.niemand hat geschrieben:09.10.2022 07:56:53
Wenn ich mich recht erinnere, bietet der Installer einen „Expertenmodus“ an, in dem man dann angeben kann, wohin der Bootloader geschrieben werden soll – dort würde man den Stick selbst angeben.
Habe mir kürzlich erst einen M2-USB "Stick" installiert mit UEFI. Es hängt dann, wie oben bereits ausgeführt, davon ab, wie das BIOS des anderen Rechners das USB-Device erkennt. Mit Umstellen der UEFI / Legacy Auswahl und/oder "F7" (bzw. wo der Rechner ggf. eine Boot-Auswahl vorsieht) schafft man es meist irgendwann dann auch den Stick zu booten.
Bei LVM-Volumes ist es meiner Erfahrung nach ggf. problematischer, falls mit GRUB doch etwas schief geht, das System noch aus dem GRUB Rescue Mode zu booten. Mir ist das zumindest nicht gelungen.
Vielen Dank für eure Kommentare! Dank denen habe ich etwas mehr in Richtung Bootloader recherchiert, und die Lösung des Problems gefunden:
EFI Boot benötigt eine andere Dateistruktur wenn von einem USB Device anstatt einer internen Platte gebootet werden soll.
Die Lösung dafür ist simpel:
Nachdem man das System normal auf den USB Stick installiert hat, wie ich beschrieben habe, einfach das neu installierte System booten, und folgendes im Terminal eingeben:
EDIT: WICHTG: Vor der Installation sollten alle bootfähigen Harddisks unbedingt ausgesteckt werden, ansonsten installiert der Setup automatisch den EFI Bootloader auf diese und nicht den Stick!
grub-install --removable /dev/sdX
dieser Befehl installiert Grub2 mit der korrekten Dateistruktur für externe Devices, wobei /dev/sdX der USB Stick ist. Wichtig: sollte der USB Stick beispielsweise sdb sein, dann auch sdb benutzen, und NICHT sdb1 oder sdb2 etc.
Das wichtige ist der Parameter --removable - Dies bewirkt, dass grub2 mit der nötigen Dateistruktur für USB Sticks / Platten installiert wird.
Nun bootet der Stick auf allen Devices, welche EFI benutzen.
BIOS/CSM/legacy habe ich nicht getestet, da ich es nicht brauche (und heutzutage fast alle neueren Geräte sowieso EFI sind).
Wer dies aber trotzdem möchte, dem kann ich diesen Post mit einer Anleitung empfehlen, dort habe ich auch die Lösung oben gefunden:
https://unix.stackexchange.com/a/646034
LG und noch einen schönen Sonntag!
Zuletzt geändert von simplex am 09.10.2022 23:04:29, insgesamt 1-mal geändert.
- grubenlicht
- Beiträge: 559
- Registriert: 10.06.2021 22:35:56
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
du hättest auch einfach beim ersten Installieren auf den Stick der internen ESP die Markierung esp "klauen" können, denn der Installer wählt immer automatisch die erste gefundene ESP. Wenn dann also auf dem Stick eine angelegt ist mit Markierung esp, dann wird auch nur die gewählt.
Ferner sollte/könnte man auch noch unnötig erzeugte NVRAM Einträge bereinigen.
Ferner sollte/könnte man auch noch unnötig erzeugte NVRAM Einträge bereinigen.
- Livingston
- Beiträge: 1816
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Genau genommen bewirkt --removable, dass nichts im UEFI des Rechners verändert wird, sondern nur der Stick bootbar gemacht wird, und dass der Bootloader auf dem Stick den generischen Namen bootx64.efi verpasst bekommt (statt grubx oder sonst was an das System angepasstes).simplex hat geschrieben:09.10.2022 15:31:45Das wichtige ist der Parameter --removable - Dies bewirkt, dass grub2 mit der nötigen Dateistruktur für USB Sticks / Platten installiert wird.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams
Douglas Adams
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Wäre einfacher, habe jedoch keine solche Option während dem Setup gesehen. Bist du sicher, dass dies möglich ist?grubenlicht hat geschrieben:09.10.2022 19:09:22du hättest auch einfach beim ersten Installieren auf den Stick der internen ESP die Markierung esp "klauen" können, denn der Installer wählt immer automatisch die erste gefundene ESP. Wenn dann also auf dem Stick eine angelegt ist mit Markierung esp, dann wird auch nur die gewählt.
Ferner sollte/könnte man auch noch unnötig erzeugte NVRAM Einträge bereinigen.
Würde nicht darauf setzen, dass nichts im UEFI des Rechners verändert wird. Ich habe heute morgen grub-install mit -removable benutzt, und dabei vergessen, dass der EFI Bootloader des Sticks auf einer Internen HD lag, zusammen mit dem Windows Bootloader. Dies hat mir den Windows Bootloader komplett abgeschossen, und ich musste von Hand den gesamten Windows bootloader neu aufsetzen, inkl. Partition etc. Hat mehrere Stunden gedauert, und ich denke hatte viel mit Glück zu tun, dass ich dies geschafft habe.Livingston hat geschrieben:09.10.2022 19:54:32Genau genommen bewirkt --removable, dass nichts im UEFI des Rechners verändert wird, sondern nur der Stick bootbar gemacht wird, und dass der Bootloader auf dem Stick den generischen Namen bootx64.efi verpasst bekommt (statt grubx oder sonst was an das System angepasstes).simplex hat geschrieben:09.10.2022 15:31:45Das wichtige ist der Parameter --removable - Dies bewirkt, dass grub2 mit der nötigen Dateistruktur für USB Sticks / Platten installiert wird.
- grubenlicht
- Beiträge: 559
- Registriert: 10.06.2021 22:35:56
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
ja, das macht man von außerhalb des Installationvorgangs, z.B. von einem LiveSystem aus mit gparted
in man grub-install steht davon allerdings nichts, kannst Du dazu mal mehr Infos liefernLivingston hat geschrieben:09.10.2022 19:54:32Das wichtige ist der Parameter --removable - Dies bewirkt, dass grub2 mit der nötigen Dateistruktur für USB Sticks / Platten installiert wird.
Zitat man grub-install
--removable
the installation device is removable. This option is only avail‐
able on EFI.
das kann ich bestätigen z.B.Genau genommen bewirkt --removable, dass nichts im UEFI des Rechners verändert wird, sondern nur der Stick bootbar gemacht wird, und dass der Bootloader auf dem Stick den generischen Namen bootx64.efi verpasst bekommt (statt grubx oder sonst was an das System angepasstes).
/EFI/ubuntu:
grubx64.efi mmx64.efi shimx64.efi
wahrscheinlich wurde lediglich die BootOrder geändert…simplex hat geschrieben:09.10.2022 23:15:06Dies hat mir den Windows Bootloader komplett abgeschossen
möchtest du mal aufzeigen, wie du das gemacht hast?und ich musste von Hand den gesamten Windows bootloader neu aufsetzen, inkl. Partition etc.
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Andersrum wird ein Schuh draus: Es wird immer im UEFI etwas verändert, solange nicht die Option --no-nvram mitgegeben wirdsimplex hat geschrieben:09.10.2022 23:15:06Würde nicht darauf setzen, dass nichts im UEFI des Rechners verändert wird.
- Livingston
- Beiträge: 1816
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Jo, --no-nvram ist tatsächlich die einzig sichere Methode, um die UEFI-Tabellen unangetastet zu lassen.
Die man page ist bezüglich --removable etwas schwammig:
Die man page ist bezüglich --removable etwas schwammig:
Was dabei heraus kommt: Ein Eintrag auf dem angegebenen Gerät unter <boot>/EFI/boot/bootx64.efi bzw. bei 32-Bit-UEFI: bootia32.efi--removable
gibt an, dass das Installationsgerät ein Wechseldatenträger ist. Diese Option ist nur für EFI verfüg‐
bar.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams
Douglas Adams
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
Verstehe nicht, wie man das mit einem Partitionsprogramm lösen könnte. Das Ziel ist ja, dass der Debian Setup den EFI Bootloader auf dem Stick installiert, und nicht der internen HD. Ich konnte keine Option finden, auf der man dies wählen könnte (evtl. habe ich etwas übersehen...?). Darum war meine Lösung einfach alle internen HDDs von denen gebootet werden kann, auszustecken, sodass der Setup gezwungen ist, den EFI Bootloader auf dem Stick zu installieren.grubenlicht hat geschrieben:10.10.2022 11:26:32ja, das macht man von außerhalb des Installationvorgangs, z.B. von einem LiveSystem aus mit gparted
Keine Ahnung was genau geändert wurde. Auf jeden Fall wurde der Windows Bootloader nicht mehr erkannt und ein Boot war unmöglich.grubenlicht hat geschrieben:10.10.2022 11:26:32wahrscheinlich wurde lediglich die BootOrder geändert…simplex hat geschrieben:09.10.2022 23:15:06Dies hat mir den Windows Bootloader komplett abgeschossenmöchtest du mal aufzeigen, wie du das gemacht hast?und ich musste von Hand den gesamten Windows bootloader neu aufsetzen, inkl. Partition etc.
Ich habe den Windows bootloader mithilfe von dieser Anleitung neu erstellt (Kurz: Habe die komplette Bootpartition gelöscht und dann per dieser Anleitung wieder aufgebaut. Danach manuell einen neuen Boot Eintrag in das NVRAM geschrieben mit efibootmgr auf einem LIVE Linux):
http://woshub.com/how-to-repair-deleted ... windows-7/
Nachdem ich viele andere Dinge probiert habe - Dies hat teilweise funktioniert.
Bootloader wurde aber im Bios nicht angezeigt, und mein Bios unterstützt die manuelle Auswahlt von EFI files nicht, darum musste ich mit einem Linux Live System mit efibootmgr manuell einen neue Eintrag anlegen, der auf EFI\Microsoft\Boot\bootmgr.efi verwies (nicht auf EFI\Microsoft\Boot\bootmgrfw.efi), wie in der Anletung beschrieben!)
- grubenlicht
- Beiträge: 559
- Registriert: 10.06.2021 22:35:56
Re: Universeller Debian USB Stick mit Persistenz - Aber funktioniert nur auf einem Rechner!
deswegen schrieb ich jasimplex hat geschrieben:11.10.2022 20:51:08Verstehe nicht, wie man das mit einem Partitionsprogramm lösen könnte.
man enfernt die Markierung esp von der internen ESP.ja, das macht man von außerhalb des Installationvorgangs, z.B. von einem LiveSystem aus mit gparted
Klar kann man auch die interne(n) Platte(n) abstecken, läuft auf 's selbe hinaus.