mikrocontroller.net

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


Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven P. (haku) Benutzerseite
Datum:

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

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steed (Gast)
Datum:

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

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steed (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olli R. (omr) Benutzerseite
Datum:

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


Olli

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe leider keinen zur Hand.
Aber Extrahiere den doch aus SYS oder FORMAT.

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist der darin enthalten?

Autor: Skua (Gast)
Datum:

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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: John Small (linux_80)
Datum:

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

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tim T. (tim_taylor)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matheguru L. (matheguru)
Datum:

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

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steed (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

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

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steed (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.