Fedora über NVME SSD an USB 3.2 Gen 2 Booten

[LAVA]ONE

Ensign
Registriert
Apr. 2008
Beiträge
189
Hallo,
habe einen HPE Microserver Gen 10 plus und möchte Fedora Server auf einer USB SSD (Crucial X8 1TB) installieren....

Die Front USB anschlüsse des Microservers haben USB 3.2 Gen 2 (also 10Gbit/s).

Installieren kann ich Fedora auf einer am Front USB angeschlossenen SSD eigentlich problemlos... nur anschließend bootet er nicht von dieser SSD, sofern diese im USB 3.2 gen2
Modus läuft... Mit "schlechterem" USB Kabel im USB 3.0 Modus bootet er jedoch anstandslos vom selben USB Port.

Ich verstehe einfach nicht, warum der Microserver nicht über USB 3.2 gen 2 mit 10 gbit/s von der SSD bootet?

UEFI Booteintrag wird meiner Meinung nach korrekt angelegt.

MfG
[LAVA]ONE
 
kann ein schlecht geschirmtes kabel sein.

Aber warum ueberhaupt der Stunt? Das einzige was fuer dich beid er bootdisk fuer die Performance relevant ist sind Latenzen. NVme Latenzen sind so 5-10% niedriger als bei SATA+AHCI - mit USB laesst du diesen kleinen vorteil jedoch verdampfen und hast sogar schlechtere latenzen als direkt via SATA.

Ist aber fast egal..
Ich starte bei meinem Microserver seit je her vom USB stick. Mehr als schnell genug
 
Naja externe SSD via USB 3.2 gen2 macht ja trotzdem ca 950-1050MB/s , was via sata schlicht nicht möglich ist.

Inwieweit ein schlecht geschirmtes kabel das Problem sein soll, kann ich auch nicht nachvollziehen...

Mein Problem ist ja, dass ein "schlechteres" USB kabel meine externe SSD bootfähig macht (vermutlich nur USB 3.0 Fallback)...
Ein gut geschirmtes Kabel lässt den Microserver die SSD nicht mehr als bootfähig erkennen. An meinem Rechner ist jedoch nur mit dem "besseren" Kabel 950MB/s möglich.
 
Benötigt man um via usb nvme zu booten einen speziellen treiber?
 
Es gibt unterschiedliche Möglichkeiten, einen Massenspeicher über USB anzusprechen. Neben dem alten Massenspeicherprotokoll USB Mass Storage Bulk-Only Transport (mit der schrecklichen Effizienz <50%) gibt es UASP (USB attached SCSI) für moderne Massenspeicher. Vielleicht unterstützt das Mainboard das Booten vom neuen Modus nicht? Denn dafür muss der Host die entsprechenden Treiber zur Verfügung stellen, die vielleicht im BIOS nicht enthalten sind. Für den klassischen USB Stick zur Windows- oder Linux Installation braucht man die nicht.
 
  • Gefällt mir
Reaktionen: fritz3
aber was für einen Treiber bräuchte ich denn?

der zugriff müsste doch via NVMe stattfinden und via PCIe Port funktioniert das ja grundsätzlich auch mit dem Microserver ich weiß aber nicht genau wie das mit USB 3.2 gen 2 läuft.
Der gleiche Port mit schlechterem Kabel (vermutlich dann im UASP Modus bzw SATA AHCI via USB) funktioniert ja ebenfalls.
 
Über USB sieht der PC nichts mehr von SATA oder NVME. Da sieht er nur noch den USB Massenspeicher.

Wenn du Linux oder Windows bootest, dann bringen Linux und Windows den Treiber für UASP mit. Deshalb funktioniert die Installation auf das Gerät.

Der Chip wird die alten USB Massenspeicher Modi nicht auf den neuen USB Übertragungsstandards anbieten. Das wird er nur machen, wenn er mit einem alten Standard verbunden wird (=> altes Kabel). Das ist der Grund, warum es damit funktioniert.

Um vom USB Speicher zu booten, müssen die passenden Treiber im Bios/UEFI sein. Für den alten USB Massenspeicher Modus wird das der Fall sein, denn er wird benötigt, um ein Betriebssystem von einem USB Stick zu installieren. Die neuen Modus aber wird das BIOS nicht unterstützen.
 
  • Gefällt mir
Reaktionen: fritz3
[LAVA]ONE schrieb:
Installieren kann ich Fedora auf einer am Front USB angeschlossenen SSD eigentlich problemlos... nur anschließend bootet er nicht von dieser SSD, sofern diese im USB 3.2 gen2
Modus läuft... Mit "schlechterem" USB Kabel im USB 3.0 Modus bootet er jedoch anstandslos vom selben USB Port.

Ich verstehe einfach nicht, warum der Microserver nicht über USB 3.2 gen 2 mit 10 gbit/s von der SSD bootet?

Bis wohin kommt den der Bootvorgang? Fehlermeldungen?
 
@foofoobar
Das Problem ist, dass wenn die externe SSD mit USB 3.2 g2 (10gbit/s)am vorderen USB angeschlossen ist, diese nicht als bootfähig erkannt wird.... d.h. er findet einfach kein Boot Device...
Und das obwohl sowohl port als auch die externe ssd als Boot Device funktionieren, wenn ich ein "schlechtes" USB Kabel anschließe und die SSD quasi nur mit 450Mbit/s bzw USB 3.0 5 Gbit/s läuft.
Ich kenne es ja dass man manchmal von bestimmten USB ports nicht booten kann aufgrund des jeweiligen Controllers, aber das man jetzt auch noch auf den jeweiligen Modus des USB Ports achten muss verwundert mich...
 
[LAVA]ONE schrieb:
@foofoobar
Das Problem ist, dass wenn die externe SSD mit USB 3.2 g2 (10gbit/s)am vorderen USB angeschlossen ist, diese nicht als bootfähig erkannt wird.... d.h. er findet einfach kein Boot Device...
Das Bios/Firmware findet das Ding nicht als Bootdevice?
Oder findet eine andere Komponente das Ding nicht als Bootdevice?
 
agon schrieb:
Erstelle doch einfach manuell im UEFI einen Boot-Eintrag mit dem Pfad zur EFI-Datei.

Der UEFI Booteintrag ist ja nach der Installation im UEFI...
Der Microserver bootet halt nicht davon.
foofoobar schrieb:
Das Bios/Firmware findet das Ding nicht als Bootdevice?
Oder findet eine andere Komponente das Ding nicht als Bootdevice?
Was da was genau nicht findet ist ja Teil meiner eigentlichen Frage...
Fakt ist, dass der Microserver nur durch Wechseln des Kabels(und damit auch der Wechsel von 10 gbit/s USB auf 5 Gbit/s USB) von der externen SSD bootet...
Und im 10 Gbit/s USB Modus sucht er halt nach alternativen Bootmöglichkeiten (Netzwerk etc..)...

Bei Installation, also wenn man eine ISO gebootet hat, wird die externe SSD jedoch ohne Probleme erkannt und auch installiert.

Was ich noch testen könnte wäre den Bootloader mal auf einen USB 2.0 stick oder so auszulagern...
Also USB 2.0 durch EFI/BIOS booten und dann im Anschluss durch Grub erst von USB 3.2 Gen2.
Langfristig ist das für mich aber eigentlich keine Lösung weil ich dann bei jedem Kernelupdate bei Fedora manuell rumfrickeln muss...
 
Zuletzt bearbeitet:
[LAVA]ONE schrieb:
Bei Installation, also wenn man eine ISO gebootet hat, wird die externe SSD jedoch ohne Probleme erkannt und auch installiert.
Ja, da bringt die ISO die Treiber mit, die für das Ansprechen des Massenspeichers gebraucht werden. Die fehlen offenbar im BIOS.

[LAVA]ONE schrieb:
Was ich noch testen könnte wäre den Bootloader mal auf einen USB 2.0 stick oder so auszulagern...
Das wird nicht so einfach. Bei EFI wird ja aus der ESP Partition gebootet. Meines Wissens wird man während der Installation gar nicht gefragt, wo man die ESP liegen haben möchte. Dennoch ist es vielleicht möglich, das von Hand anzugeben, oder vielleicht auch, es nachträglich zu verschieben. Ich denke, in der grub Dokumentation wird man am ehesten fündig.

Die Frage ist auch, ob das hilft, denn der Kernel muss immer noch vom USB Massenspeicher geladen werden, und ich weiß nicht, ob der EFI Bootloader (grub) da schon eigene Treiber lädt.
 
[LAVA]ONE schrieb:
@foofoobar
Das Problem ist, dass wenn die externe SSD mit USB 3.2 g2 (10gbit/s)am vorderen USB angeschlossen ist, diese nicht als bootfähig erkannt wird.... d.h. er findet einfach kein Boot Device...
Und das obwohl sowohl port als auch die externe ssd als Boot Device funktionieren, wenn ich ein "schlechtes" USB Kabel anschließe und die SSD quasi nur mit 450Mbit/s bzw USB 3.0 5 Gbit/s läuft.
Ich kenne es ja dass man manchmal von bestimmten USB ports nicht booten kann aufgrund des jeweiligen Controllers, aber das man jetzt auch noch auf den jeweiligen Modus des USB Ports achten muss verwundert mich...
Und das ganze passiert ohne eine Fehlermeldung von irgentwas?
Oder irgentwelchen anderen Meldungen?
 
Also wenn das Booten im USB 5Gbit/s Modus stattfindet kommen die normalen Meldungen eines erfolgreichen Starts.....

Wenn das Booten im USB 10 Gbit/s Modus nicht stattfindet kommen auch keine Meldungen...
Außer "no Bootable device detected" oder so bzw die Meldungen vom Netzwerk boot.
Warum auch? Er findet ja dann kein Boot device.

Ich finde nur keine plausible Erklärung für dieses Verhalten...
Der USB Controller an sich ist ja der Gleiche egal welches Kabel ich letztlich verwende und letztlich sind alle Komponenten die Gleichen bis auf das Kabel bzw. die Datenübertragungsrate 5Gbit/s und 10Gbit/s.
Deshalb verstehe ich auch meine "Treiber-Theorie" nicht so ganz, weil eigentlich ja alle Treiber vorhanden sind.
Die Frage ist wie genau der Zugriff bei einer NVME SSD über USB 10 Gbit/s abläuft bzw. was genau sich zu USB 5Gbit/s unterscheidet.
 
Das klingt nach einer Bios/Firmware Meldung.
Frag den Hersteller der HW, Linux hat damit nix zu schaffen.

Irgentwas mit "Enterprise" ist nicht unbedingt besser als China-Schrott.
 
[LAVA]ONE schrieb:
Deshalb verstehe ich auch meine "Treiber-Theorie" nicht so ganz, weil eigentlich ja alle Treiber vorhanden sind.
Du hast schon verstanden, dass es auf USB unterschiedliche Wege gibt, einen Massenspeicher anzusprechen? Erst mal ist das vollkommen unabhängig von der zugrundeliegenden Datenrate.

Im BIOS wird nur eine der beiden Varianten umgesetzt sein, nämlich die, die man üblicherweise braucht, um von einem USB Stick zu booten und Windows oder Linux zu installieren. Dabei kommt es auf die Datenrate am Ende nicht so an, die Sticks sind eh nicht so schnell.

Und wenn dein Massenspeicher auf USB 3.2 nur den neuen Modus anbietet, dann wird der Massenspeicher im BIOS halt nicht erkannt. Vielleicht geht es laut Standard auch gar nicht mehr, USB 3.2 gen2 mit dem alten Bulk Only Modus zu betreiben.

Lange Rede, kurzer Sinn: Damit du von dem USB Speicher booten kannst, müssen Speicher und BIOS zusammenpassen. Der Speicher muss den passenden Modus bereitstellen, und das BIOS muss den Treiber dafür anbieten. Das ist bei dir offenbar nicht der Fall.
 
riversource schrieb:
Du hast schon verstanden, dass es auf USB unterschiedliche Wege gibt, einen Massenspeicher anzusprechen? Erst mal ist das vollkommen unabhängig von der zugrundeliegenden Datenrate.

Im BIOS wird nur eine der beiden Varianten umgesetzt sein, nämlich die, die man üblicherweise braucht, um von einem USB Stick zu booten und Windows oder Linux zu installieren. Dabei kommt es auf die Datenrate am Ende nicht so an, die Sticks sind eh nicht so schnell.

Und wenn dein Massenspeicher auf USB 3.2 nur den neuen Modus anbietet, dann wird der Massenspeicher im BIOS halt nicht erkannt. Vielleicht geht es laut Standard auch gar nicht mehr, USB 3.2 gen2 mit dem alten Bulk Only Modus zu betreiben.

Lange Rede, kurzer Sinn: Damit du von dem USB Speicher booten kannst, müssen Speicher und BIOS zusammenpassen. Der Speicher muss den passenden Modus bereitstellen, und das BIOS muss den Treiber dafür anbieten. Das ist bei dir offenbar nicht der Fall.
Bulk Only Transfer (BOT) ist ja noch aus USB 2.0 Zeiten....
Also Grundsätzlich habe ich schon die Kommunikation zwischen USB Speichern verstanden...
Das wurde ja im Thread auch schon bzgl UASP (USB 3.0 bzw 3.1 5gbit/s)angesprochen....

Ich verwende die Bandbreiten der USB Schnittstelle nur weil ich die Benennung/Umbenennung der USB Standards persönlich als undurchsichtig und verwirrend empfinde....

Vielleicht muss ich es etwas konkreter beschreiben:
Ich habe 2 externe USB SSD's:
1x Crucial X8 1TB
1x Inatek m.2 NVMe Gehäuse mit 1TB fanxiang S500 Pro SSD

Bei beiden externen SSD's handelt es sich eigentlich um USB zu M.2 Adaptern.
Im Falle der Crucial X8 ist ein Crucial eigener Controller zur Wandlung verbaut.
Im Falle des Inatek gehäuses handelt es sich um ein Realtek RTL9210B-CG.
Beide SSD's unterstützen sowohl die Kommunikation über UASP also maximal SATA3 Übertragungsraten (ca 500 MB/s) als auch die Kommunikation via NVMe (ca 1050MB/s)

Also von den Protokollen ist es ja bei UASP ungefähr so:
USB -> UASP -> SATA -> AHCI -> PCIe

Wie das jetzt bei "NVMe over USB" (spezifisch USB 3.2 Gen 2 10Gbit/s) aussieht, weiß ich ehrlich gesagt nicht genau:
USB -> ??? -> NVMe -> PCIe

Das ist auch der Grund weshalb ich auch keinen Ansatz habe um z.B. einen UEFI Treiber manuell vor dem Bootvorgang zu laden über die UEFI Shell.
Da ich nicht weiß wie das unter NVMe over USB 3.2 Gen 2 abläuft....

Technisch sollte der Microserver ja eigentlich NVMe problemlos erkennen das BIOS bzw die Platform Configuration im HPE (RBSU) bietet ja sogar NVMe PCIe Konfigurationen wie z.B. "NVMe PCIe Resource Padding" etc.. (Diesbezüglich habe ich aber alle Optionen schon ausprobiert)

Der USB Port selbst scheint zu funktionieren, weil mit "erzwungenem" UASP durch ein "schlechteres" USB Kabel bootet er auch....

An den SSD's kanns auch nicht liegen weil auf meinem AMD Rechner booten die SSD's auch problemfrei im "USB 3.2 Gen 2 -Modus" und liefern dann auch über 900MB/s

Also muss das Problem irgendwo zwischen UEFI und Bootloader respektive GRUB Konfiguration liegen.
Allerdings scheint es nicht an einem fehlendem USB Treiber zu liegen.... Weil der USB Controller vom Grundsatz her funktioniert (nur im USB 3.2 gen 2 Modus eben nicht).

Falls es weiter hilft:
Auf dem Microserver ist folgender Firmware stand:
System ROM (U48 v2.64 (10/13/2022))
Intel I350 Network (1.2839.0)

System Board:
ILO 5 (2.78 Dec 16 2022)
Intelligent Provisioning (3.64.2)
Server Platform Services (SPS) 5.1.4.303
System Programmable Logic Device 0x09
 
Zuletzt bearbeitet:
[LAVA]ONE schrieb:
Also muss das Problem irgendwo zwischen UEFI und Bootloader respektive GRUB Konfiguration liegen.
Allerdings scheint es nicht an einem fehlendem USB Treiber zu liegen.... Weil der USB Controller vom Grundsatz her funktioniert (nur im USB 3.2 gen 2 Modus eben nicht).
Wie ich schon sagte: Frag den Hersteller der Hardware.
 
[LAVA]ONE schrieb:
USB -> UASP -> SATA -> AHCI -> PCIe
Nur der Vollständigkeit halber: mSATA hat mit PCIe nichts zu tun. In dem Fall ist lediglich das physikalische Steckformat (fast) identisch, nämlich M.2. Im Falle eines SATA Geräts mit B Key, bei PCIe mit NVME ist es ein M Key.

Aber noch mal: USB Massenspeicher haben mit NVME oder mSATA überhaupt nichts am Hut. Das BIOS (oder auch Windows/Linux) hat keine Ahnung davon, ob da mSATA oder NVME im Gehäuse steckt. Es sieht einen USB Massenspeicher, und zwar entweder via Bulk Transfer oder via UASP. Ob das BIOS mit NVME Datenträgern umgehen kann, ist vollkommen irrelevant.

[LAVA]ONE schrieb:
An den SSD's kanns auch nicht liegen weil auf meinem AMD Rechner booten die SSD's auch problemfrei im "USB 3.2 Gen 2 -Modus" und liefern dann auch über 900MB/s
Dann beinhaltet das BIOS des AMD Rechners offenbar den passenden Treiber, den der USB Chip im USB 3.2 Gen 2 Modus benötigt.

Vielleicht gibt es ein BIOS Update für den Microserver. Aber ansonsten kannst du nichts machen, von außen keine Chance.

[LAVA]ONE schrieb:
Weil der USB Controller vom Grundsatz her funktioniert (nur im USB 3.2 gen 2 Modus eben nicht).
Ich bin fest davon überzeugt, dass der USB Chip im USB 3.2 Gen 2 Modus in einer anderen Betriebsart arbeitet, als in älteren USB Modi.
 
Zurück
Oben