Allgemeines Windows Image für UEFI und BIOS

Alles klar, Christian. Danke für die Ergänzungen.

Viele Grüße
Klaus

Hallo Christian,

hast Du auch einen umgekehrten Weg ausprobiert? Also das Image zuerst für UEFI zu machen und dann auf BIOS zu übertragen? Also ohne eine zweite BIOS Installation zu machen und dort den UEFI Bootloader zu installieren.
Anders gesagt: Geht es, wenn ich von einem beliebigen BIOS PC bcdedit / export C:\Bios\BCD.old sichere und auf den UEFI PC einspiele?

Danke und viele Grüße
Klaus

Hallo Klaus,

Wenn die Partionierung durch Linbo vorgenommen wurde, dann sollte ein Ordner C:\Bios existieren. Der wird in Windows eventuell ausgeblendet. Dann müssten die geschützten Systemdateien eingeblendet werden.
Ansonsten einfach folgende Befehle eingeben:

bcdedit /delete {bootmgr} /F
bcdedit /create {bootmgr}
bcdedit /set {bootmgr} device Boot
bcdedit /set {bootmgr} description "Windows Boot Manager"
bcdedit /set {bootmgr} locale de-DE
bcdedit /set {bootmgr} inherit {globalsettings}
bcdedit /set {bootmgr} default {current}
bcdedit /set {bootmgr} displayorder {current}
bcdedit /set {bootmgr} toolsdisplayorder {memdiag}
bcdedit /set {bootmgr} timeout 30
bcdedit /set {current} device locate=custom:12000002
bcdedit /set {current} osdevice locate=custom:22000002
bcdedit /export C:\Bios\BCD

Nun den gesamten Ordner C:\Bios auf den UEFI-Client kopieren.
Sollte dann funktionieren.

Viele Grüße
Christian

Hallo Christian,

danke für Deine Rückmeldung!

Leider bootet der BIOS Client dann nicht mit dem universellen UEFI Image. Vielleicht habe ich es auch nicht verstanden. Könntest Du bitte nochmal drüberschaun, ob das so richtig ist? Folgendes habe ich auf Proxmox virtuellen Maschinen gemacht:

  1. UEFI Client win10-uefi mit Linbo partitioniert und mit Windows 10 21H2 installiert

  2. BIOS Client win10-bios mit Linbo partitioniert und Windows 10 21H2 installiert

  3. Der Ordner C:\Bios ist auf win10-bios nicht vorhanden, auch nicht versteckt, nur der Ordner C:\Boot(versteckt). Also habe ich auf win10-bios ausgeführt:

bcdedit /delete {bootmgr} /F
bcdedit /create {bootmgr}
bcdedit /set {bootmgr} device Boot
bcdedit /set {bootmgr} description "Windows Boot Manager"
bcdedit /set {bootmgr} locale de-DE
bcdedit /set {bootmgr} inherit {globalsettings}
bcdedit /set {bootmgr} default {current}
bcdedit /set {bootmgr} displayorder {current}
bcdedit /set {bootmgr} toolsdisplayorder {memdiag}
bcdedit /set {bootmgr} timeout 30
bcdedit /set {current} device locate=custom:12000002
bcdedit /set {current} osdevice locate=custom:22000002
bcdedit /export C:\Bios\BCD

Das hier ist nicht nötig?

sc config stornvme start=boot
  1. Den Ordner C:\Bios von win10-bios auf C:\Bios von win10-uefi kopiert
  2. Von win10-uefi ein Image erstellt und auf win10-bios eingespielt. Nach dem Klonen: This is not a bootable disk...

Was mache ich falsch?

Danke und viele Grüße
Klaus

Hallo Klaus,

der Ordner C:\Bios wird von Linbo erstellt und enthält die Daten aus C:\Boot, die uuid der Partitionen und noch ein paar Kleinigkeiten.
Also einfach auf dem BIOS Client win10-bios von Linbo ein Image erstellen lassen. Hochladen auf den Server ist nicht nötig.
Dann ist auf dem Client der Ordner C:\Bios vorhanden und die obigen Befehle können ausgeführt werden.

Das ist nicht notwendig. Es aktiviert den Treiber von NVME beim Start von Windows durch entsprechende Einstellungen in der Registry. Das wird in C:\Bios aber nicht gespeichert und die Befehle führst du auf dem UEFI Client win10-uefi auch aus.

Nichts. Ich bin davon ausgegangen, dass du ein vorhandenes Bios-Image verwendest und von Linbo installieren lässt. Dann ist der Ordner C:\Bios bereits vorhanden. Bei einem neuen Image musst du eben Linbo erst ein Cloop erzeugen lassen, dann sind die entsprechenden Daten an der richtigen Stelle.

Viele Grüße
Christian

Hallo Christian,

danke für Deine Antwort!

Der Ordner C:\Bios wird bei mir von Linbo 4.0.3-0 nicht erstellt und damit offenbar auch nicht ausgewertet. Kann es sein, daß Deine Anleitung mit lmn71 nicht mehr funktioniert?

Viele Grüße
Klaus

Hallo Klaus,

leider kann ich dir nicht helfen.
Linbo 4 funktioniert bei mir weder unter EXSI noch unter Hyper-V.
Damit bin ich bei dem Thema raus.

Viele Grüße
Christian

Hallo Christian,

ich habe auch im Code von Linbo 2.x nichts dazu gefunden, daß C:\Bios ausgewertet wird. Deine Anleitung kann ich nicht reproduzieren und sie funktioniert bei mir nicht.

Wäre interessant, ob das bei jemand anderen funktioniert.

Viele Grüße
Klaus

Hallo Klaus,

ich hab nochmal nachgeprüft. Du hast Recht, der Odner Bios war nur mein Sicherungsordner, damit ich bei falschen Änderungen das System nicht reparieren musste sondern nur die Datei zurückkopieren konnte.
Der richtige Ordner ist C:\Boot.
Also in der Anleitung zu Bios-Client das C:\Bios durch C:\Boot ersetzen und die Zeile
bcdedit /export C:\Bios\BCD
muss komplett raus!!!

Leider kann ich weder meinen alten Beitrag noch den Wiki-Eintrag nachträglich ändern.
@alois
@MachtDochNix
Könnt ihr das bitte machen?

@garblixa
Bitte das mit dem Bios-Client nochmal probieren. Bei mir hat es nun mit Linbo2 geklappt.
Sorry für die Mühe. Die beiden Fehler im Originalbeitrag heben sich eigentlich gegenseitig auf. Da sollte es trotzdem funktionieren.

Viele Grüße
Christian

Hallo Christian,

danke für Deinen Test und Bestätigung.
Ich habe die Anleitung im Wiki nun angepasst und einen Hinweis hinterlassen, daß die Vorgehensweise mit Linbo 4.x noch getestet werden muß. Magst Du bitte nochmal drüberschaun, ob es so passt?
https://wiki.linuxmuster.net/community/anwenderwiki:windowsclient_lmn7:start#allgemeines_windows_10_image_fuer_uefi_und_bios

Leider komme ich im Moment nicht zum Testen für Linbo 4.x Evtl. findet sich ja noch jemand.

Viele Grüße
Klaus

Hallo @Blair , hallo @garblixa ,
ich habe eure Anleitung mal durchgespielt. Lief toll. Vielen Dank dafür!!!
Jetzt habe ich festgestellt, dass, wenn ich einen neuen UEFI-Client mit dem Image bespiele funktioniert’s nicht. Wenn ich dann auf den Client das alte UEFI-Image auf den Client spiele und danach wieder das UEFI-BIOS-Image drauf spiele, startet der Client, wie gewünscht.
Normalerweise würde ich vermuten, dass im UEFI-BIOS-Image etwas fehlt. Aber wenn ich ein anderes Image mit Linbo 4.0 drauf spiele, wird ja die Windows-Partition formatiert. So sollten keine Reste des vorherigen Windows-Image auf der Partition sein.
Habt ihr eine Idee, wie man das richten kann?
Vielen Dank schon mal für’s Mitdnken.
Gruß,
Mathias

Hallo Mathias,

ich habe meine Systeme schon alle auf UEFI umgestellt und habe dazu leider keine aktuelle Info.
Jedoch kann es sein, daß bei der nicht funktionierenden Installation das UEFI keine passenden Einträge hat. Du könntest ja mal mit efibootmgr -v in der Linbo Konsole eine funktionierende mit einer nicht funktionierenden Installation vergleichen.

Viele Grüße
Klaus

Hallo zusammen,
ich glaube, weiter gekommen zu sein.
Auf dem BIOS-Client gibt es ja keine MSR-Partition. In der MSR-Partition ist aber der Windows-Bootloader. Zumindest habe ich das so im Internet gelesen…
Ich habe, nachdem ich das Verzeichnis C:\EFI auf den BIOS-Client kopiert habe, vom BIOS-Client ein Image gemacht. In dem Image kann nichts von der Partition MSR enthalten sein. Die gibt’s ja beim BIOS-Client nicht.

Wenn ich diese Partition auf einen frischen UEFI-Client ausrolle, wird in die MSR-Partition nichts reingeschrieben. → System fährt nicht hoch.

Ich habe jetzt von einem lauffähigen UEFI-Client ein Image gezogen. Und wenn ich jetzt das Image auf einen frischen Client installiere läuft alles.
Es scheint so, als ob bei einem Image von einem UEFI-Client teile der MSR-Partition mit gesichert würden.

Hallo Klaus

das schau’ ich mir auch noch an. Vielen Dank.
Gruß,
Mathias

Hallo Mathias,

beschreibe bitte genau an, was du gemacht hast.
Gib bitte auch die Fehlermeldung von Windows an und die Ausgabe von bcdedit.

Das ist falsch.
Im Bios Modus erstellt Linbo nur eine Partition für Windows.

Im UEFI Modus erstellt Linbo eine FAT32 Partiton für den Bootloader, eine MSR Partition als Markierung, dass UEFI verwendet wird und eine NTFS Partiton für die Daten.
Der Windows-Bootloader ist in der FAT32 Partiton.

Auf dem BIOS-Client müssen die entsprehenden Befehle auch ausgeführt werden.

Viele Güße
Christian

Hallo Christian,
ich bin genau so vorgegangen, wie hier im wiki beschrieben.

Es gibt einen BIOS-Client.

Wie in Schritt 1 beschrieben, habe ich Windows 10 auf einem UEFI-Client installieret (mit win10.global.reg).
Dann mit Linbo ein Image erstellt und win10.image.reg als Registry Patch für das Image eingetragen.

Wie in Schritt 2 beschrieben habe ich das Image wieder auf einen Client ausgerollt und die Befehle von Schritt 2 auf einer Konsole mit adminrechte ausgeführt. Alles ohne Fehlermeldungen.
Das Verzeichnis C:\EFI auf einen Stick kopiert.

Das Verzeichnis C:\EFI vom Stick in C:\EFI auf dem BIOS-Client kopiert und die Befehle der Beschreibung auf dem BIOS-Client in einer Konsole mit Admin-Rechten ausgeführt. Alles ohne Fehler.

Dann mit Linbo ein Image (win10.qcow2) erzeugt.

In der Gruppe win10efi habe ich win10efi.qcow2 durch win10.qcow2 ersetzt und syncronisiert. Und siehe da Windows hat gestartet. Alles war toll.

Wenn ich allerdings das Image auf einen neuen Rechner ausrolle, erhalte ich das:

Wenn ich dann wieder mit win10efi.qcow2 syncronisiere läuft Windows wieder. Natürlich ohne Domänenanmeldung oder Software. War ja alles nicht im Image.

Und wenn ich jetzt wieder mit win10.qcow2 syncronisiere. Läuft Windows wieder. Mit Domänenanmeldung und Software vom BIOS-Client. So, wie’s sein sollte.

Jetzt habe ich ein Image vom UEFI-Client gemacht. Und dieses Image läuft tatsächlich auf allen Clients. Auch wenn ich die Platte vorher partitionier und formatiere.

Hoffentlich hilft meine Beschreibung ein bisschen das Phänomen zu verstehen.

Mir hat deine Antwort neue Erkenntnisse gebracht. Vielen Dank schonmal dafür.

Gruß,
Mathias

Hallo Mathias,

ich konnte des Fehler nachvollziehen.
Es liegt an einem bei Linbo 4 veränderten Verhalten.
Bei der Erstellung eines UEFI- Images wird in C:\EFI\Microsoft\Boot\ nicht nur die Datei BCD erstellt, sondern auch eine BCD.uefi.sda3 gespeichert.
Bei PCs mit NVME kann die Bezeichnung anders sein, aber das kann ich nicht überprüfen.

Der Fehler kommt daher, dass Linbo bei jedem Start die Datei BCD mit dem Inhalt von BCD.uefi.sda3 überschreibt und damit die Generalisierung des Images rückgängig macht.

Als Lösung bietet sich folgendes Vorgehen an:
Im Schritt 2 (UEFI) am Ende der Befehlsfolge eine weitere Zeile als Ziel für den geänderten Bootloader angeben.

bcdedit /export C:\EFI\Microsoft\Boot\BCD
bcdedit /export C:\EFI\Microsoft\Boot\BCD.uefi.sda3

Damit sollte es in LMN 7.0 und LMN 7.1 funktionieren.
Eventuell ist für NVME Systeme noch ein weiterer Eintrag nötig.
Das sollte im Wiki und im obigen Beitrag geändert werden, allerdings fehlen mir dazu die Rechte.
Wäre schön, wenn das jemand machen könnte.

Viele Grüße
Christian

1 „Gefällt mir“

Hallo Christian,

klasse, herzlichen Dank für die Fehlersuche und Lösung!

sda3 ist dabei die UEFI Partition? Ich würde dann den Eintrag im Wiki ergänzen.

Viele Grüße
Klaus

1 „Gefällt mir“

Hallo Klaus,

ja, das ist die UEFI Partition, in der Windows installiert ist.

Das sda3 ist scheinbar abhängig vom entsprechenden Eintrag der Windows Partition in der jeweiligen start.conf der Gruppe.
In diesem Beispiel ist das sda3.

[Partition]          # partition section (operating system)
Dev = /dev/sda3      # device name of the partition
Label = windows      # partition label
Size = 50G           # partition size 50G
Id = 7               # partition id (7 = ntfs)
FSType = ntfs        # filesystem ntfs
Bootable = no        # set bootable flag no

Wenn man das auf NVME umstellt, dann ist es wahrscheinlich nvme0n1p3.
Also müsste man noch bcdedit /export C:\EFI\Microsoft\Boot\BCD.uefi.nvme0n1p3 hinzufügen.
Das mit NVME kann ich aber nicht überprüfen.

Viele Grüße
Christian

Hallo Christian,

danke für die Erklärung. Ok, dann ist sda3 hier die Windows Partition.

Ich habe das im Wiki nun so ergänzt.

Viele Grüße
Klaus

Hallo zusammen,
vielen Dank für eure Hilfe!!!
Ich hab’s heute nochmal in der Schule getestet. Es läuft :slight_smile:
Gruß,
Mathias