Alexander (HH): Universeller Bootmanager

Beitrag lesen

Moin Moin!

mit der Syslinux-API kann man zwar Dateien lesen, aber nicht schreiben.

Tja, dann war's eine gute Idee, aber mehr auch leider nicht.

Naja, Syslinux ist FOSS, Du kannst also Funktionen zum Schreiben nachrüsten.

Syslinux 4.x wird wohl deutlich anders aussehen, mit Filesystem-Treibern in C. Schreibfunktionen und / oder NTFS-Zugriff könntest Du nachrüsten.

Weitere Einschränkungen: Syslinux kann nur mit FAT umgehen, Extlinux mit ext2/3/4?, aber es gibt keine Syslinux-Variante für NTFS. Du müßtest also von einer FAT-Partition booten.

Das wäre für mich keine Einschränkung; ich setze NTFS sowieso nur für Datenpartitionen ein, auf denen ich sehr große Dateien (>4GB) erwarte - zum Beispiel ganze DVD-Images, Videodateien oder Containerdateien für virtuelle Maschinen. Keinesfalls wird die Systempartition in NTFS formatiert.

Damit kann doch jeder User Deine Systempartition demolieren, mangels Dateirechten. Naja, ist bei den meisten NTFS-Installationen auch so, weil die meisten Leute immer noch als Admin arbeiten und die Standard-Rechte auf der Systempartition längst nicht so strikt sind, wie sie sein sollten.

Aber das hilft mir ja in diesem Fall auch nur bedingt.

Immerhin gibt es schon Code, der direkt den NTLDR laden kann: chain.c32. Nur kann der wiederum dem NTLDR keine Informationen mitgeben

Das ist auch nicht nötig. Denn ntldr ist nach dem Bootsektor das erste Stück Code, was beim Start von Windows ausgeführt wird. Da liegen noch keine Informationen vor, die werden erst im weiteren Verlauf des Bootvorgangs ermittelt - teils aus der boot.ini, teils aus den Hardware-Eigenschaften, die ntdetect.com ermittelt.

Ja, aber wenn Du aus einem anderen Bootloader (Syslinux, Grub, LILO) Windows in verschiedenen Konfigurationen starten willst, MUSST Du NTLDR bzw. den von NTLDR gestarteten Prozessen mitteilen, welche Konfiguration aktiv sein soll. Eigentlich alle Bootloader für Linux und Co. übergeben dazu einen String an den Betriebssystemkern bzw. den vorgeschalteten Loader (z.B. memdisk, Chain-Loader, comboot-Programme, ...). Den müßte Dein Spezial-Loader für Windows auswerten und wenigstens in Teilen weiterreichen.

Bleibt "nur" noch das Problem, dem NTLDR irgendwie mitzuteilen, wie Du gerne booten möchtest. Boot.INI schreiben, NTLDR im RAM patchen, bevor die Kontrolle an NTLDR übergeben wird, was auch immer.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".