Sonntag, 2. Februar 2020

Altes Board von NVMe starten

M.2 SSDs sind ganz erschwinglich, einen PCIe M.2 Adapter gibt es für ein paar Euro und ein PCIe Steckplatz auf dem älteren Board ist auch noch frei. Das wäre doch was ...

Die Sache hat einen oder mehrere Haken:
  • der simple PCIe M.2 Adapter kann nur M-Key SSDs (NVMe SSDs) aufnehmen.
  • erst das EFI-BIOS der neueren Boards erkennt damit auch ein Laufwerk, die älteren kennen es bestenfalls als irgendein PCIe Gerät.
    • Die aktuellen Betriebssysteme können die NVMe SSD ohne Probleme als richtiges Laufwerk "sehen" und damit umgehen. Das geht soweit, dass man Windows installieren kann - es merkt nicht, dass das BIOS dieses Laufwerk nicht starten kann.
  • Damit kann man zwar ein System auf die neuen SSD aufspielen, aber starten kann man es nicht.
Wie so oft ist es eine Sache des Treibers: ein NVMe Treiber ist im alten BIOS nicht vorhanden.
Schade - Oder? 
Ich habe eine nicht ganz neue und simple Lösung gefunden, aber wie so oft keine aktuellen Beschreibungen. Ich musst ein paar Tage "forschen" - deswegen der Artikel.

Der "Trick" - eine kurze Umleitung


Das BIOS kann NVMe nicht direkt starten, aber Sata und USB Laufwerke. Also erstmal einen Bootloader von USB oder einer anderen EFI Partition starten, der hat den Treiber und der startet das System von NVMe. Wahrscheinlich geht das mit jedem Bootloader, wenn man weiß wie. Gefunden habe ich aber den clover efi bootloader und ein Boot Disk Utility zur einfachen Installation. Das Tool baut ohne viel Federlesen einen USB Boot Stick mit einer 200 MB EFI Bootpartition. Darin befinden sich ca. 15 MB Dateien.
Was dann nirgendwo so direkt und aktuell stand:

Die kleine Modifikation:


Es gibt in dem entstandenen Bootfähigem Laufwerk ein Verzeichnis EFI. In dem Verzeichnis <LW>:\EFI\CLOVER\drivers\UEFI müssen offenbar die notwendigen Treiber für den Start liegen.  In dem Verzeichnis <LW>:\EFI\CLOVER\drivers\off liegen offenbar die optionalen Treiber. Von dort muss man den Treiber für die NVME Disk - NvmExpressDxe.efi - in das Verzeichnis mit den notwendigen Treiber kopieren.
Das war es im Groben schon. Einfach den Stick in den PC einstecken, ihn als Boot Device konfigurieren und starten. Dann erscheint nach wenigen Sekunden ein neues Bootmenü, dort dann "Boot Microsoft EFI Boot from EFI" (oder was man starten möchte) auswählen.
Man kann den 5 sec Countdown noch verkürzen, ein Timeout 0 schaltet die GUI komplett ab und bootet sofort.
Die XML Datei kann man mit einem Texteditor bearbeiten.
<LW>\EFI\CLOVER\config.plist

Bei meinem Asrock E350M1 dauert es ca 6 sec um den Stick zu booten, die gesamte Zeit bis von der NVMe gestartet wird beträgt damit 14 sec. Ein Option Rom auf einer Sata Erweiterungskarte braucht auch ein paar Sekunden, insofern ist diese Methode kein wirklicher Nachteil.

Man braucht nicht unbedingt ein Tool um den Boot Stick zu erstellen. Man kann die gepackte ISO Datei herunterladen, entpacken und einfach wie bei einem Windows Setup Stick den Inhalt der ISO Datei auf den vorbereiten Stick kopieren.

Den Laufwerksbuchstaben kann man im laufenden Windows System mit Powershell entfernen und den Stick damit etwas verstecken.
$drive=(Get-Volume |where DriveType -eq Removable).DriveLetter
$disk=Get-Partition -DriveLetter $drive
Remove-PartitionAccessPath -DiskNumber $disk.DiskNumber -PartitionNumber $disk.PartitionNumber -AccessPath $drive":"


ToDo Ich muss noch weiter forschen....


3 Kommentare:

  1. Meine Nvme wird vom bootloader nicht erkannt, was machen ?

    AntwortenLöschen
    Antworten
    1. Tut mir leid, aber da habe ich keine weitere Idee.
      Otto

      Löschen
  2. nach dem booten vom stick F3 drücken.
    .
    https://forum.proxmox.com/threads/bootable-nvme-install-on-old-hardware-made-easy-with-pcie-adapter-and-clover.78120/

    AntwortenLöschen