Ja, ich boote mein System von Festplatte (in Abwechslung mit anderen Medien). Im Grunde ist das kein Problem und ein einfaches Ding.
Nur darf man halt keinen Fehler machen. In meinem Fall habe ich eine alte 3GB-Platte für diese Zwecke abgestellt.
Im Prinziep ist es ja nicht nötig jetzt schon von Platte zu booten und eigentlich mach ich das nur aus dem einfachen Grund weil ich sehen will ob ich die Sector-Berechnung im Bootsector richtig mache. Bei Partitionen ist das nämlich etwas anders als bei einer unpartitionierten FAT12 (ich sage nur 8Bit, 10Bit, 6Bit für Funktion 02h int13).
Also habe ich eine 2GB Partition und dahinter eine 1GB Partition erstellt. Von der 1GB-Partition boote ich mein System.
Hier mal die Schritte die Du brauchst um das zu bewerkstelligen:
1. FAT16-Bootsector schreiben (*siehe Anmerkung unten)
2. Festplatte auswählen
3. eine freie Partition auf der Festplatte schaffen (und zwar unter 8GB und nicht größer als 2GB)
4. diese Partition unter DOS oder Windows als FAT16 formatieren
5. Bootsector der FAT16-Partition auslesen
6. im HEX-Editor die BPB-Werte des Bootsectors heraussuchen (Achtung: Little-Endian)
7. diese BPB-Werte in Deinen eigenen Bootsector eintragen und compilieren
8. compilierten Bootsector auf die Partition schreiben.
9. feddisch!
Anmerkung: Natürlich geht auch FAT32, aber darüber kann ich Dir nichts erzählen, und ich habe auch nicht geplant einen FAT32-Bootsector zu schreiben. Hab schließlich später ein eigenes Filesystem, und außerdem hat man bei FAT32 noch weniger Platz für Programmcode.
Als Programm zum lesen und schreiben des Bootsectors Deiner Partition kannst Du "DD" nehmen. Das gibt es auf der Webseite zum download von dem der auch RawWrite geschrieben hat. Die URL findest Du im Program RawWrite (ich habs nicht hier sonst würde ich die URL posten).
Nochwas zum programmieren des FAT16-Bootsectors:
Nimm nicht gleich die Festplatte sondern etwas was einfacher zu handhaben ist. Ich habe das mit ner Zip100 gemacht. Weil Du ja beim programmieren immer wieder -Bootsector compilieren, schreiben, testen... usw. machst.
Achtung: Zip-Disketten sind auch partitioniert!
Außerdem: Eine FAT16-Partition kann maximal 2GB groß sein (65536 * 64 Sectoren pro Cluster * 512 Byte), also mach sie nicht größer. Und: wenn Du Funktion 02h von int13 benutzen willst dann sorge dafür das die Partition unterhalb der 8GB-Marke liegt, ansonsten müsstest Du Dich mit den 4xh Extended-Int13-Funktionen beschäftigen, und für das alles ist der Bootsector zu klein.
Und noch was:
Um nicht für den Crash Deiner sämtlichen Daten verantwortlich zu sein.... DU DARFST KEINE FEHLER MACHEN BEIM SCHREIBEN DES BOOTSECTOR AUF DIE PLATTE...!!! Auf Nummer Sicher gehst Du wenn du eine alte Festplatte nimmst die Du dafür abstellst.
Bei mir war das einfach weil ich die Platte per Wechselrahmen im PC habe (das ist zum OS-Entwickeln sowieso zu empfehlen).
So. Noch Fragen? \
/
Gruß BigOlly