Zitat von Peter E. Czitsch
@Matthias
Danke für die wiederum sehr ausführliche Antwort. Du erschreckst mich jedesmal mit Deinen Erläuterungen. Manchmal verstehe ich aber nur Bahnhof. Ich kann das Problem zwar nachvollziehen, aber ich sehe keine Lösung. Kann man denn die MD nicht einfach Bootfähig machen? Wenn ja, wie?
Das tut mir leid. Ich weiß aber auch nicht, wie ich das gleichzeitig erschöpfend
und /korrekt/ beschreiben soll, ohne auf Details zu verzichten. Ich hab' schon
einen Großteil der Details weggestrichen - wenn ich noch weiter vereinfache,
stimmt vieles einfach nicht mehr - so, wie leider in vielen Büchern, was dann
gerade zu solchen Kompatibilitätsproblemen führt, wie wir sie hier sehen:
Da hat jemand (entweder der Hersteller der Karte oder der Entwickler des
Embedded Betriebssystems für die Kamera) offensichtlich nicht alle relevanten
Informationen zur Hand gehabt und - rumms - schon kracht es irgendwo...
/Natürlich/ kann man die Karte bootfähig machen, je nachdem, wo das Problem
jetzt liegt, ist das mitunter sogar trivial.
Sollte "IEHH" Recht haben, müßtest Du nur das Byte +1BEh im physikalischen
Sektor 0 des MD von 00h auf 80h ändern. Habe ich ja oben schon beschrieben:
ZITATAn Peter: Dafür mit einem Diskeditor das Byte an Offset +1BEh im ersten
physikalischen Sektor des Mediums ausfindig machen. Zur Kontrolle: Da sollte
00h drin stehen und vier Bytes später steht eine 06h. Dieses Byte dann von 00h
auf 80h ändern und den Sektor auf das Medium zurückschreiben. Achtung:
Der MBR enthält noch immer keinen Bootcode - also bitte nicht versuchen,
davon zu booten, solange dort durch Repartitionierung kein gültiger Code
eingebracht wurde.[/quote]
Wie macht man das?
Unter DOS gäbe es den Befehl "FDISK /CMBR x" (wobei x die Nummer der
physikalischen Festplatte ab 1 gezählt wäre). Oder es ginge mit DEBUG bzw.
dem Wrapper SETMBR.BAT (ebenfalls unter obigem Link auf GETMBR.BAT
zu finden). Beides aber nur, wenn Du auf die Karte über INT 13h zugreifen
kannst, also entweder davon gebootet hast, oder passende INT 13h-Treiber
für Deinen Cardreader installiert hast. Da beißt sich die Katze ein wenig in
den Schwanz... ;-)
Punkt 2 würde unter dem DOS-basierten Windows 95/98/SE/ME bereits gegeben
sein, da Du dafür mit Sicherheit passende Treiber finden kannst.
Unter der NT-Familie mußt Du etwas größere Geschütze auffahren, nämlich einen
Diskeditor bemühen (z.B. den oben schon erwähnten DiskExplorer for FAT von
http://www.runtime.org/diskexpl.htm).
Dort wählst Du unter File->Drive das zum MD gehörige *physikalische* Laufwerk
(sofern das dort aufgeführt wird, sollte aber), dann View->Hex. Das sollte Dir den
ersten physikalischen Sektor des MDs anzeigen (Offsets +000h bis +1FFh, also
512 Bytes).
Zur Kontrolle: Da bei Dir kein MBR-Code vorhanden ist, sollten die Bytes von
Offset +000h bis +1BDh auf 00h stehen. Bei Offset +1FEh (also in den letzten
zwei Bytes des Sektors) muß die Signatur 55h AAh stehen. Sollte das nicht der
Fall sein, ist irgendwas schief gelaufen. Falls soweit alles stimmt, schau Dir mal
das Byte an Offset +1C1h an, dort steht die Partition-ID der ersten primären
Partition (bei Dir gibt es nur eine davon). Dort muß eine Wert 06h für
"FAT16B" stehen.
Falls das so ist, schau Dir das Byte an Offset +1BEh an: Dort steht im Moment 00h,
d.h. die Partition ist "nicht aktiv", d.h. nicht bootfähig. Das müssen wir in den Wert
80h umändern.
Dafür müssen wir den Schreibmodus des Diskeditors aktivieren - ab jetzt bitte
nichts mehr falsch machen, sonst wird's gefährlich! Dazu unter Tools->Options
auf "Virtual Write" stellen. Danach auf Edit->Edit current sector gehen. Position
+1BEh wählen und die 00h dort mit 80h überschreiben. Danach auf Edit->Write
changes gehen und den Sektor auf das Medium schreiben.
Jetzt ist die Partition als bootfähig *markiert*, d.h. sollte sich die A2 daran gestört
haben, daß das vorher nicht so war, müßte sie das Medium jetzt akzeptieren.
Schaden kann das jedenfalls nicht - jedenfalls nicht solange man nicht versucht,
von dem Medium zu booten.
Wie gesagt, das Medium ist noch immer nicht wirklich bootfähig, dafür fehlt der
MBR-Code, sowie ein passendes Betriebssystem, das in der FAT16B-Partition
bootfähig gemacht wurde - aber /letzteres/ bekommt man auch später noch hin,
das größte Problem war/ist es, an den MBR heranzukommen, und wo wir schon
mal da sind, könnte man da auch direkt noch "guten" MBR-Code reinschreiben,
so daß für später vorgesorgt ist. (Eigentlich sollte das auch mit NT-Bordmitteln
gehen, wenn man das Medium neu partitioniert, aber da bin ich im Moment
überfragt, ob XP das auf Wechselmedien zuläßt.)
Für Experimente hänge ich einen solchen "Generic MBR Code" von DR-DOS 7.07
in Form einer 512 Bytes großen Datei MBRDRDOS.BIN an. Dieser Code ist völlig
betriebssystemunabhängig konzipiert und unterstützt sowohl CHS-Zugriff (mit
beliebigen Mappings) als auch LBA28/32-Zugriff für Medien bis 128 GB bzw. 2 TB
(je nach System-BIOS).
Er verhält sich exakt wie ein "normaler" MBR-Code (s.o.) unterstützt allerdings
zusätzlich noch einige Extras: So wird der bei DR-DOS beiliegende Multi-
Betriebssystemlader LOADER sowie spezielle moderne Bootmethoden von
Multiuser DOS & REAL/32 direkt aus dem MBR heraus unterstützt, außerdem
PTS-DOS Advanced Active Partitions. Diese Funktionen werden aber nur aktiv,
wenn die dafür nötigen Randbedingungen vorhanden sind, d.h. in Deinem Fall
würde sich der Code funktionell genauso wie der von Windows oder MS-DOS/
PC DOS verhalten.
Um ein Medium komplett zu löschen reicht es, diesen Sektor auf den ersten Sektor
des Mediums zu kopieren (mittels Diskeditor). Dabei gehen aber sämtliche bereits
vorhandenen Partitionen mitsamt aller darin enthaltenen Daten auf diesem
physikalischen Laufwerk verloren. Das kann sinnvoll sein, um einen definierten
Startpunkt zu bekommen, ist aber auch sehr gefährlich, insbesondere wenn man
den Sektor per "Handarbeit" an Ort und Stelle friemeln muß - also bitte Vorsicht!
Wenn Du einfach nur den MBR-Sektor mit einem funktionstüchtigen MBR-Code
"befüllen" willst, ohne dabei die Partitionierung auf dem Medium anzutasten, mußt
Du entweder vorher die Werte an Offset +1BEh..1FFh abschreiben, den neuen
MBR-Sektor einbringen (Offsets +000h..+1FFh) und dann die Werte an Offset
+1BEh..1FFh wieder auf die alten Werte zurücksetzen. (In Deinem Fall ist nur
eine Partition vorhanden, es handelt sich also um überschaubare 16 Zahlen.)
Alternativ dazu kannst Du natürlich auch von vorneherein nur die Offsets
+000h..1BDh aus MBRDRDOS.BIN umkopieren und +1BEh..1FFh wie zuvor
belassen...
Wichtig ist nur, daß Dir bei der Aktion kein Fehler unterläuft: Nur eine falsche Zahl
eingetippt, und schon kann das den Verlust der Daten auf der Karte bedeuten.
ZITAT@hobby3333
Dein Tool funktioniert nicht, ich bekomme nur ein leeres Fenster mit einer Fehlermeldung. Die Lösung 2b klappt auch nicht, da ich kein Image auf die MD schreiben kann.[/quote]
War leider auch bei mir so der Fall...
ZITAT@IEHH
Danke auch Dir, auch wenn es simpel ist - wie geht das?[/quote]
Siehe oben.
Solltest Du Zweifel daran haben, ob alles funktioniert hat, kannst Du mir gerne
wieder ein Image ähnlich wie neulich per Mail schicken - dann schau' ich's mir
an, ob alles wie gewünscht geändert ist.
Viel Erfolg,
Matthias