hallo,
da die IO und die MSDOS auf bestimmten Stellen (Spur 0?) stehen müssen.
Falsch. :)
Wo sie auf der Disk liegen, ist egal. Sie müssen aber zum Code im Bootsektor passen.
Jaein. Zunächst einmal ist der Hinweis auf den MBR der Diskette tatsächlich hilfreich. Ich hatte meine Dateien für die modifizierte Startdiskette immer wieder auf säuberlich formatierte Disketten kopiert, und da gabs dann offenbar gar keinen oder einen leeren MBR. Jetzt habe ich folgendes probiert: Startdiskette erstellt, und sämtliche sichtbaren Dateien gelöscht (also nicht formatiert), danach meine Dateien draufkopiert. Siehe da, damit startet das gute Stück.
Den Code im Bootsektor der Disketten habe ich mir in einem Hexeditor mal angeschaut. Tatsächlich gibt es Unterschiede, wenn eine Diskette nur formatiert oder aber diese Diskette als Startdiskette erstellt wurde. Bei einer DOS-Startdiskette (mit WinXP erstellt), steht da zum Beispiel drin:
*-v4VIHC * FAT12
Invalid system diskÿ
Disk I/O errorÿ
Replace the disk, and then press any key
IO SYSMSDOS SYS.
Und bei einer formatierten Diskette (ebenfalls WinXP), die allein natürlich nicht bootfähig ist, steht da zum Beispiel drin:
MSDOS5.0 NO NAME FAT12
NTLDR
Datentr„ger entfernenÿ
Medienfehlerÿ
Neustart: Taste drücken
Es funktioniert nun zum Beispiel, wenn ich mit Win98 eine Startdiskette erstelle, alle Dateien ohne die Diskette zu formatieren wieder lösche, und die Dateien einer unter WinXP hergestellten Startdiskette draufkopiere. Die IO.SYS ist darin 114 kB groß, im Original auf der Win98-Startdiskette ist sie 218 kB groß. Die MSDOS.SYS enthält nur die Zeile ";W98EBD" und darunter eine Leerzeile. Wenn ich die erste Zeile in ";PQMAGIC" ändere, ergibt das einen I/O-Error oder sogar ein "Parity Check". Wenn ich die Zeile aber bis auf das Semikolon leer lasse, bootet die Diskette anstandslos. Auch die Leerzeile kann entfernt werden, die MSDOS.SYS muß also lediglich ein Semikolon enthalten, womit sie gerade mal ein Byte groß sein braucht.
die Namen der Startdateien sind nicht das einzige Problem - auch der Code muss mit dem kompatibel sein, der im Bootsektor bereits vorliegt.
Es steht im MBR der Diskette noch deutlich mehr als oben angegeben, allerdings kann ich nicht alle Hex-Zeichen herüberkopieren - es ist mühsam genug, das überhaupt aus dem Hexeditor herauszukopieren. "Relevant" scheint allerdings nur der Name der Dateien IO.SYS und MSDOS.SYS (und zwar in Großbuchstaben) zu sein, nicht jedoch ihr Inhalt. Was genau in der IO.SYS stehenbleiben muß, habe ich noch nicht herausgefunden.
Und vor allem der Bootsektor, wie ihn NT-basierte Systeme erstellen, ist mit dem klassischen DOS nicht kompatibel.
Zweifelhaft. Ich bin als Test mal nach demselben Schema vorgegangen. Also: unter WinXP eine DOS-Startdiskette erstellt, alle Dateien (ohne Neuformatierung) gelöscht, und danach die Dateien der ersten Diskette von DOS 6.22 draufkopiert. Diese Diskette sollte also einen solchen "NT-kompatiblen" MBR enthalten, sie bootet auch und würde mir zumindest in einer virtuellen Maschine ein DOS 6 zu installieren beginnen - ich habe den Versuch nur nicht vollständig durchlaufen lassen
Ach übrigens eine COMMAND.COM auf der Basisdiskette ist auch nicht zu verachten.
Im Prinzip ja. Aber wenn man über den Eintrag
shell=pm.exe
in der config.sys sofort Partition Magic anstatt der klassischen CLI-Shell starten lässt, kann man die command.com einsparen. :)
Ja, kann man, so weit war ich auch schon. Allerdings muß es korrekterweise
shell=PQMAGIC.EXE
heißen.
Jetzt bleibt nur noch zu klären, wie ich doch noch ein ZIP-Archiv bauen kann, aus dem sich eine bootfähge Diskette extrahieren läßt.
Grüße aus Berlin
Christoph S.