Forum: PC-Programmierung brauche bootsect.dos von ms-dos 6


von Matheguru L. (matheguru)


Lesenswert?

Kann mir mal jemand seinen bootsector von der dospartition als hexdump 
hier reinschreiben, denn ich brauch das um dos auf meinem xp rechner zu 
nutzen ohne meinen bootmanager neu schreiben zu müssen. Bitte um 
schnelle hilfe dürfte ja nicht all zu schwer sein den ersten sektor im 
hexdump zu öffnen und die ausgabe hier reinzuschreiben.
lg matheguru

von Sven P. (Gast)


Lesenswert?

Tuts keine freie von Freedos oder so? Oder direkt einen vernünftigen 
Bootloader wie GRUB?

von Matheguru L. (matheguru)


Lesenswert?

nein ich möchte meinen windows bootmanager behalten die dos dateien sind 
scon auf der ersten partition, die mit fat 16 formaterit ist und auf der 
zweiten habe ich mein xp.

von Steed (Gast)


Lesenswert?

Wenn du so blöd bist das wirklich ausführen zu wollen. Was meinst du 
eigentlich mit Bootsektor? Den Bootsektor oder den MBR?

von Olli R. (omr) Benutzerseite


Lesenswert?

Du willst den MBR neu schreiben, hast aber keine bootfaehige 
DOS-Diskette mit fdisk?

Google ist auch kaputt?

http://snippets.dzone.com/posts/show/2798

Olli

von Matheguru L. (matheguru)


Lesenswert?

natürlich meine ich den erssten sektor der partition vom dos, der 
bootmanager von windows ist so aufgebaut, das auch andere systeme 
gebootet werden können, wenn der erste sektor der partition als datei 
vorliegt, die dann in den speicher geladen wird und ausgeführt wird. ich 
brauche doch nur ein hexdump vom ersten sektor der dospartition, in der 
der bootloader sitzt. bitte
lg matheguru

von Steed (Gast)


Lesenswert?

>natürlich meine ich den erssten sektor der partition vom dos
So ersichtlich ist das bei dir leider nicht. Der MBR speichert ausserdem 
den Start der Partitonen und deren Grösse. Auf die Tour kannst du ihn 
also nicht neu schreiben. Boote einfach Dos von der Diskette - Fertig!

von Skua (Gast)


Lesenswert?

Im Bootsektor stehen auch die Geometriedaten der Partition da hilft nur 
der von deiner Festplatte.
Hexdump ist was ganz anderes als Binär.

Mit dem Debugger vom DOS kannst du den Bootsektor in eine Datei 
schreiben.

von Matheguru L. (matheguru)


Lesenswert?

debugger ist auch nicht schlecht, aber ich wollte es mit hexdump machen 
und die werte die ihr mir schicken sollt hätte ich dann mit meinem nasm 
übersetzt in binärformat und dann mit dd von xp aus auf die dospartition 
geschrieben und zwar nicht so das ich die fattabelle überschreibe etc. 
sondern nur die erstsen 446Byte beschreibe, wo der bootloader auch rein 
gehört. Deswegen wollte ich auch das hier jemand das hexdump 
reinschreibt, damit ich nur die ersten bytes nehme, nämlich den 
bootloader und eure fatverzeichnisse etc. hätte ich dann nicht 
übernommen, sondern die bleiben ja , da ich sie nicht überschreiben 
möchte. Kann mir jemand jetzt mal seinen ersten Sektor der Dospartition 
schicken und nicht den (MBR).
Lg Matheguru

von Olli R. (omr) Benutzerseite


Lesenswert?

Einfach einen vernuenftigen Bootmanager installieren, z.B. GRUB. Der 
bootet Dir Linux, Windows, DOS, etc.


Olli

von Matheguru L. (matheguru)


Lesenswert?

Ich möchte jetzt nen hexdump bitte, da ich probieren möchte ob es klappt 
und ich möchte kein anderen bootmanager tut mir leid, das ist hallt 
geschmackssache.
lg Matheguru

von Skua (Gast)


Lesenswert?

Habe leider keinen zur Hand.
Aber Extrahiere den doch aus SYS oder FORMAT.

von Matheguru L. (matheguru)


Lesenswert?

ist der darin enthalten?

von Skua (Gast)


Lesenswert?

Ich kann aber nicht sagen in welchem oder ob in beiden ist von Version 
zu Version anders.

von Sven P. (Gast)


Lesenswert?

Nö, der ist da ganz sicher nicht drin. Aber SYS und FORMAT können den 
bestimmt erzeugen.

Aber wieso man ernsthaft den Bootmanager von Windows haben möchte, 
erschließt sich mir ganz ehrlich nicht...

von John S. (linux_80)


Lesenswert?

Kannst Du nicht mit einer Linux-CD booten, dann mit dd die gewünschten 
Sektoren auf USB-Stick oder beliebige andere Partition kopiern ?!

von JojoS (Gast)


Lesenswert?

hier gibts ein Tool das den Sektor generiert und in eine Datei schreibt, 
das ist besser weil die HD Geometrie berücksichtigt wird:

http://www.winimage.com/bootpart.htm

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

OMG ist es SO schwer zu kapieren was der Junge will?
Und ja es geht absolut was er vorhat!
Und nein die Geometrie seiner Platte hat GARNIX damit zu tun!

PS: In 5 Min poste ich dir den Bootsektor muss nur eben die VM 
hochfahren und dumpen.

von JojoS (Gast)


Lesenswert?

OMG: hey, you can call me Joe.
Das Tool ist in wenigen Sekunden runtergeladen, 'bootpart DOS622 
myboot.bin' im CMD eingeben und fertig. Und die Geometry ist sehr wohl 
wichtig weil der Bootsektor korrekt adressiert werden muss.

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

So, in der zip-Datei liegen sowohl die 512 Byte des MBR als auch die 512 
der Dospartition, viel spaß damit.

PS: System war ein MS-DOS 6.0

von Matheguru L. (matheguru)


Lesenswert?

Vielen dank du verstehst mich. Ich habe mich mal mit 
betriebssystemprogrammierung beschäftigt und deswegen weis ich wie fat16 
aufgebaut ist. ich wundere mich eh schon das die sich immer beschweren 
das doch die größe der festplatte dann nicht stimmt, aber den teil lass 
ich ja drauf. Vielen Dank.
Lg Matheguru

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

JojoS wrote:
> myboot.bin' im CMD eingeben und fertig. Und die Geometry ist sehr wohl
> wichtig weil der Bootsektor korrekt adressiert werden muss.

Das dies aber zwei paar Stiefel sind hast du verstanden?

von Matheguru L. (matheguru)


Lesenswert?

so jetzt muss ich noch die daten einfügen, ich schreib heute abend oder 
so ob es geklappt hat.

von Skua (Gast)


Lesenswert?

Trotzdem müssen die geometriedaten im Bootsector stimmen weil sonst FAT, 
rootdirectory und die cluster nicht vernünftig geortet werden können.
Und die sind doch in FORMAT und SYS aber die muss man erst entpacken.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Direkt am Anfang des Bootsektors steht ein Sprung (eb 3c) der die 
kompletten Geometriedaten überspringt und den Bootstrap (0x3e bis 0x1fd) 
ausführt.
Wenn der OP nur diese Daten (0x3e bis 0x1fd) einfügt kann ihm die 
Geometrie scheissegal sein...

von Matheguru L. (matheguru)


Lesenswert?

Es hat funktioniert mit deinem hexdump von deinem dos. Ich habe endlich 
Dos 6.22 und windows xp auf meinem rechner und kann es im NTLDR 
auswählen. Und ich musste nichts anpassen wie ihr fast alle gesagt habt, 
denn ich habe ja die bereits vorhandene fattabelle mit dem bootloader 
zusammen von meinem Netwide Assembler in die Datei BOOTSECT.DOS 
übersetzen lassen. Dann die Datei ins C: Laufwerk und eine kleine 
änderung an der boot.ini C:\BOOTSECT.DOS="Microsoft DOS6.22" und 
schwupps habe ich jetzt ein Duobootsystem.  Vielen Dank an Tim.
Ich sehe den Thread jetzt als erfolgreich gelöst. Ich geh jetzt dos 
programmieren.
Lg Matheguru

von Steed (Gast)


Lesenswert?

Das mag ich dir nicht so recht glauben, denn das Format ist sehr komplex 
und teilweise redundant. Es ist also eine Interpretationsfrage, wie 
deine Dos-Treiber damit umgehen. Nur weil du ein Bootmenu siehst, muss 
es noch lange nicht reibunglos funktionieren. Wenn du Sch*isse gemacht 
hast und deine Partitionsangaben falsch sind, so schiesst du im 
ungünstigsten Fall über die Partion hinaus und beschreibst unwissentlich 
die nächste. Das hat auch etwas damit zu tun, wie das BIOS die Partition 
sieht und sie andhand der Partitionsgrösse und/oder entsprechend vorher 
abgelegter ID's interpretiert (vergl. dazu auch CHS/LBA24/LBA48 Support 
durch das Bios). (Das wirst du aber vermutlich erst später merken.) Für 
deinen Fall gibt es das sys-Kommando was die Sache kompatibel erledigt.

Und noch was. Ich weiss bereits jetzt, dass du in die Sch*isse gegriffen 
hast denn jedes Betriebssystem arbeitet mit fix positionierten Dateien 
(z.B. io.sys). Für deren Ablage ist das Sys-Kommando zuständig. Dein Dos 
kann also nicht laufen wenn du die Datein einfach draufkopiert hast denn 
die haben in jedem Fall statische Positionen innerhalb der Partition!

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Steed wrote:
> Unfug

Die Partitionstabelle liegt im MBR und nicht im Bootsektor der 
Partition.
Wenn du an diesen 4*16 Byte nicht nicht rumwerkelst passiert garnix mit 
deinen Partitionen (logische mal aussen vor aber die liegen eh 
woanders).

1. Das BIOS führt den Bootstrap aus welcher im MBR beginnt.
2. Der Bootstrap führt dann den Code im ersten Sektor (Bootsektor) der 
als aktiv gekennzeichneten Partition aus. Die dafür nötige Adresse 
bekommt er aus der Partitionstabelle die ebenfalls im MBR liegt.
3. Im Bootsektor der Partition befindet sich der Systemlader.
4. Der Systemlader besorgt sich die Adressen von IO.SYS und MSDOS.SYS 
aus der FAT. Dort müssen es nur die ersten 2 Einträge sein sonst nix.
5. Der Systemlader übergibt die Kontrolle an IO.SYS etc...

Der Bootvorgang von DOS ist wahrlich kein Geheimnis, jeder der will kann 
sich leicht die benötigten Informationen besorgen und trotzdem wird 
immerwieder so ein Stuss hier erzählt und getan als wäre es endlos 
kompliziert...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ich dachte es ging nur darum den Bootloader zu übereden MS-Dos zu laden 
und NICHT eine Partition Bootfähig zu machen.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Läubi .. wrote:
> Ich dachte es ging nur darum den Bootloader zu übereden MS-Dos zu laden
> und NICHT eine Partition Bootfähig zu machen.

Das kommt natürlich noch dazu.

von Steed (Gast)


Lesenswert?

@Tim T.
Die Welt kann glücklich sein, dass es Leute wie dich gibt, die einen 
mehr als 25 Jahre alten Standard (mit allen Ecken und Kanten) 
kompromisslos in 20 Zeilen zusammenfassen können. Meine Hochachtung hast 
du!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.