Gibt es bei einer CF Card, ähnlich wie bei der SD, auch Bereiche die man so ohne weiteres nicht ansprechen oder ändern kann? Hintergrund: Ich habe hier eine Appliance welche von einer CF-Card bootet. Das machte zunehmend Probleme, auch wurden im Betrieb IO-Fehler geschmissen. Daher habe ich die Karte entnommen und über einen normalen USB-Reader mit Linux (dd) ein Image erstellt und dieses auf eine andere CF kopiert. Die neue Karte wurde aber von dem Custom-Board mit AMI-Bios (aus 2011) nicht als bootdevice erkannt. Als ich die originale wieder einsteckte wurde diese ebenfalls nicht mehr erkannt. Wieder am Laptop eingesteckt, aber Linux zeigte diesmal keine Partitionstabelle mehr an. Auch startete die Karte nicht bei Sektor 0 sondern bei Sektor 2048(!). Also mal mit HXD unter Windows probiert (Datenträger öffnen) und gesehen das der Sector 0 komplett mit 00en beschrieben war, was meiner Meinung nach nicht sein darf bei einem bootfähigen Medium. Ich habe diesen vom Image wiederhergestellt, aber es bootete trotzdem nicht. Nochmal drauf geschaut und siehe da, der Sektor 0 war wieder komplett leer. Irgendwas löscht diesen also weil er meint das was nicht in Ordnung sei. Kann das vom Mainboard kommen oder gibt es in den CF-Karten auch eine Art Manipulationsschutz? Die Karte ist eine Trascend CF150 industrial, 4GB.
Klingt mir eher so als wäre die Karte kaputt und sie bringt deshalb die Nullen. Wäre es eine spezielle Karte mit irgendeiner Art proprietärem Kopierschutz, könntest Du vermutlich einen Teil der Karte gar nicht lesen ohne daß zuerst vom Mainboard irgendein Freischaltcode gesendet wurde. Wenn Du die Karte wieder ins Orginalgerät einbaust, würde der Code gesendet und es würde wieder funktionieren. Das ein einmaliges Nichtsenden des Codes die Karte gleich für immer sperrt ist eher unwahrscheinlich, kleine Programmfehler, Abschalten im falschen Moment etc. würden dann beim Hersteller ständig Serviceaufwand erzeugen. Außerdem halte ich es für unwahrscheinlich daß die den Bootsektor für sowas hernehmen, denn dann müsste der Freischaltcode aus dem BIOS kommen. Das anzupassen ist ein ziemlicher Aufwand, viel einfacher und effektiver wäre es das für Sektoren des eigentlichen Anwendungsprogramms zu machen.
es gab bei den frühen CF den PIO/IDE Modus, https://de.wikipedia.org/wiki/CompactFlash soweit ich weiss wurde PIO/IDE Modus bei neueren Karten abgeschafft kann es aber nicht mehr testen.
Olli Z. schrieb: > Ich habe hier eine Appliance welche von einer CF-Card > bootet. Das machte zunehmend Probleme, auch wurden im Betrieb IO-Fehler > geschmissen. Klingt nach kaputter Karte. > Daher habe ich die Karte entnommen und über einen normalen USB-Reader > mit Linux (dd) ein Image erstellt und dieses auf eine andere CF kopiert. Das heißt, du hast die fehlerhaft gelesenden Daten von der kaputte auf eine zweite Karte kopiert. > Die neue Karte wurde aber von dem Custom-Board mit AMI-Bios (aus 2011) > nicht als bootdevice erkannt. Das ist dann nicht so sehr verwunderlich. > Als ich die originale wieder einsteckte wurde diese ebenfalls nicht mehr > erkannt. Und das auch nicht. Olli Z. schrieb: > Wieder am Laptop eingesteckt, aber Linux zeigte diesmal keine > Partitionstabelle mehr an. Auch startete die Karte nicht bei Sektor 0 > sondern bei Sektor 2048(!). Was meinst du damit? Was verstehst du darunter, dass die Karte dort "startete"? Olli Z. schrieb: > Also mal mit HXD unter Windows probiert (Datenträger öffnen) und gesehen > das der Sector 0 komplett mit 00en beschrieben war, was meiner Meinung > nach nicht sein darf bei einem bootfähigen Medium. Ich habe diesen vom > Image wiederhergestellt, aber es bootete trotzdem nicht. Nochmal drauf > geschaut und siehe da, der Sektor 0 war wieder komplett leer. War das das Image von oben, das du erst gemacht hast, als die Karte schon Fehler hatte? Hast du mal geschaut, ob in dem Image nicht auch Nullen dort sind?
Gast
#5491402
Olli Z. schrieb: > 4GB. Die alte Karte hat auch 4 Gb? Mir kommt der Verdacht auf, als ob da ein Adressüberlauf stattfindet, die "Appliance" nicht in der Lage ist, 4 Gb vollständig zu adressieren.
Irgendsowas muss es aber sein, denn bei jedem beschreiben von Sektor 0 ist dieser nach den ersten Einschalten im Gerät wieder genullt. Wobei ich jetzt nicht wirklich weiss ob ich mit HXD beim „Gerät öffnen“ ab Adresse 0x000000 auch den ersten Sektor angezeigt bekomme, oder auch erst den ab sektor 2048 wie im fdisn unter Linux. Das Mainboard ist sehr speziell, kein Standard PC Bord. Und da die Nullung noch vor laden des Betriebssystems stattfindet glaube ich schon an eine Sicherheitsfunktion. Auf der CF befindet sich nach dem Null sektor noch Zeug mit der CF Seriennummer und irgendeine Signatur. Ich kann dS morgen mal posten. Ich fürchte ich habe beim zurückschreiben des Images auf die CF auch erst ab Sektor 2048 geschrieben und nicht ab 0 wie geglaubt. Das finde ich das merkwürdigste, das die CF selbst mit ‚dd‘ nicht mehr so zu resetten ist, das man wieder eine normale Partitionstabelle anlegen kann. Schon wirich sehr ärgerlich...
Manfred schrieb: > Olli Z. schrieb: >> 4GB. > > Die alte Karte hat auch 4 Gb? Mir kommt der Verdacht auf, als ob da ein > Adressüberlauf stattfindet Ja, ich habe ja mit der „alten“ auch rumgetestet und komm zum gleichen Ergebnis.
Olli Z. schrieb: > Wobei > ich jetzt nicht wirklich weiss ob ich mit HXD beim „Gerät öffnen“ ab > Adresse 0x000000 auch den ersten Sektor angezeigt bekomme, oder auch > erst den ab sektor 2048 wie im fdisn unter Linux. HXD muss als Admin laufen, dann kann man erst über "pysischen Datentrager" an den echten Sektor 0 (Null). Ansonsten kennt er nur die Partition über den Laufwerksbuchstaben, da ist der 2048 Offset üblich.
Gast
#5491827
Ich vermute auch: Die Karte hats hinter sich. Hier liegt eine 64GB Sandisk (mikro) SD-Card mit ähnlicher Macke. Alle Daten sind ok, doch nichts kann ich löschen, nicht formatieren, einfach nichts. Nach "durchlesen des Internets" habe ich sehr viele ähnliche Fälle gefunden, häufig halt Sandisk. Das wird aber eher vom Funktionsprinzip der Speicherzelle, und weniger vom Hersteller abhängen. Lösung: Tonne (auch wenns schwer fällt) Old-Papa
Old P. schrieb: > häufig halt Sandisk die meist gefälschten Flashspeicher im Netz, deswegen habe ich die nie gekauft.
Da glaube ich in meinem Fall noch nicht dran. Meine CF ist von Transcend und eine Industrial, die sind schon etwas selektierter und meine ist auch sicher keine Fälschung. Ich kann die Karte ja ansich, unter Windows HxD überall lesen und beschreiben. Elektrisch ist die sicher in Ordnung. Unter Linux, zumindest meiner Ubuntu 16 VM in Vmware Workstation, kann ich aber irgendwie nicht auf die ersten 2048 Sektoren zugreifen, obwohl ich dort als root arbeite. Evtl. liegt es ja an meinem Cardreader? Daher meine Frage in Relation zu SD cards. Da werden vom USB Chipsatz einfach nicht alle Sektoren zugänglich gemacht (Stichwort CID). Auch weiss ich nicht recht wie der Reader die Karte zum OS meldet. Wenn der diese als removable media ausgibt, kann ich mir vorstellen sind bestimmte Bereiche unzugänglich. Aber - das sind alles nur spekulationen. Am besten wärs, ich könnte die CF native an einem IDE Port am PC mit Linux betreiben. Da wär ich sicher das nichts die Kommunikation „verfälscht“. Das Hauptproblem wird, einen PC mit IDE Schnittstelle zu finden... sowas gibts ja schon öange nicht mehr. Wenn da wieder was IDE zu SATA wandelt kann ich schon nicht mehr sicher sein...
Olli Z. schrieb: > Da glaube ich in meinem Fall noch nicht dran. Meine CF ist von Transcend mir ist von 16 Transcend CF nur eine gestorben, ein Reader war Schuld.
naja, gar nicht so lange her, da hatten sogar hp/compaq noch ein IDE port für das optische Laufwerk. Diese sollten sich für nen Zehner beim Gebraucht-/Flohmarkt deines Vertrauens finden lassen.
Olli Z. schrieb: > Auch weiss ich nicht recht wie der Reader die Karte zum OS meldet. Wenn > der diese als removable media ausgibt, kann ich mir vorstellen sind > bestimmte Bereiche unzugänglich. Aber - das sind alles nur > spekulationen. Das "removeable media" ist bei CF-Karten keine Erfindung des Kartenlesers, sondern kommt aus der Firmware der CF-Karte selbst. Aber das erklärt nicht das geschilderte Phänomen, daß plötzlich irgendwelche Sektoren genullt sein sollen. Wie greifst Du unter Linux auf die CF-Karte zu? Über die gemountete Partition oder über das eigentliche Laufwerk?
Rufus Τ. F. schrieb: > Das "removeable media" ist bei CF-Karten keine Erfindung des > Kartenlesers, sondern kommt aus der Firmware der CF-Karte selbst. Wenn ich einen USB-Reader verwende, meine ich gelesen zu haben das dieser "entscheidet" wie er das Gerät am Betriebssystem bereitstellt. Ich installiere gerade einen Laptop mit PCMCIA-Slot mit CentOS und werde mir einen entsprechenden CF-Card Adapter besorgen. Dann sollte ich nativen, unverfälschten Zugang zur SD-Struktur haben. Ich traue dem USB-Zeugs nicht und daher ist auch ein CF->SATA Adapter für mich keine echte Option. > Aber das erklärt nicht das geschilderte Phänomen, daß plötzlich > irgendwelche Sektoren genullt sein sollen. Ja, wirklich komisch. Das BIOS des Boards ist ein AMI-Bios, scheinbar nichts besonderes. Das Board hat keine Grafikkarte, daher bediene ich es über die Serielle. > Wie greifst Du unter Linux auf die CF-Karte zu? Über die gemountete > Partition oder über das eigentliche Laufwerk? Direkt als /dev/sdb
Gast
#5492089
Joachim B. schrieb: > > die meist gefälschten Flashspeicher im Netz, deswegen habe ich die nie > gekauft. Selber schuld ;-) Sandisk (auch Transcend und wenige andere) habe ich seit vielen Jahren in Psion, PDAs, Handys/Smartfons, Tablets, Kameras (auch Wildcameras) und und und im Einsatz. Bisher nur diesen einen Ausfall. Klar werden Sandisk (und andere Marken) gefälscht, doch nach EU gelangen davon wenige. Der meiste Plunder verkooft sich in China selber, in den "GUS-Staten", in Afrika... Und die meisten Fälschungen sind plump gemacht. Und da sowas inzwischen jedes Schulkind weiß, kaufe ich Speicherkarten nur bei bekannten Onlineschops (Conrad, Cyberport, Alternate usw.) oder direkt im Laden. Dort kann man auch reinfallen, doch die Wahrscheinlichkeit ist geringer. Old-Papa
Jim M. schrieb: > Olli Z. schrieb: >> Wobei >> ich jetzt nicht wirklich weiss ob ich mit HXD beim „Gerät öffnen“ ab >> Adresse 0x000000 auch den ersten Sektor angezeigt bekomme, oder auch >> erst den ab sektor 2048 wie im fdisn unter Linux. > > HXD muss als Admin laufen, dann kann man erst über "pysischen > Datentrager" an den echten Sektor 0 (Null). > > Ansonsten kennt er nur die Partition über den Laufwerksbuchstaben, da > ist der 2048 Offset üblich. Der Tipp war schonmal Gold wert! Die LBA-Sektoren 0-2047 sind komplett 0x00 und ab 2048 steht der MBR & Co:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
Start- und Endsignatur stimmen. Dann habe ich in der Tat beim zurückspielen des Images einen ungewollten Offset von 2048 Sektoren eingebaut :-( Ich versuche das jetzt mal zu realloziieren:
Du kannst ja einen Blick auf die im Netz herumschwirrende Spezifikation werfen: http://rumkin.com/reference/aquapad/media/cfspc3_0.pdf
Ups! Falschen Code gepostet, hier ist der richtige:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
So, wieder ein wenig schlauer. Es sieht so aus als liesse sich die SD-Card garnicht mehr beschreiben. Jeden Sektor den ich darauf verändere ist nach dem wiedereinlesen im vorherigen Zustand.
Gast
#5492392
Olli Z. schrieb: > So, wieder ein wenig schlauer. Es sieht so aus als liesse sich die > SD-Card garnicht mehr beschreiben. SD-Card? > Jeden Sektor den ich darauf verändere > ist nach dem wiedereinlesen im vorherigen Zustand. So ist das bei meiner Sandisk auch. Es geht absolut nichts. Old-Papa
Auf den PCMCIA-Adapter warte ich noch. Habe da gleich dieselbe 4GB Transcend Industrial nochmal mitbestellt. Der Mist ist, das ich das Image verloren habe. Ich Dussel hab das in meiner Linux-VM unter /tmp geladen und die Ubuntu-Distro stellt /tmp über den Arbeitsspeicher her. Nach dem Restart war das natürlich weg :-( Jetzt habe ich praktisch nur noch die Original-CF wo wenigstens der Sektor 0 fehlt. Da ist mir nun wirklich alles schief gelaufen, zefix!
Olli Z. schrieb: > Wenn ich einen USB-Reader verwende, meine ich gelesen zu haben das > dieser "entscheidet" wie er das Gerät am Betriebssystem bereitstellt. Bei CF-Karten kommt das auf der Firmware, denn es ist auch dann da, wenn man einen CF-IDE-Adapter verwendet. Der enthält gar keine Elektronik, sondern verbindet stur die 40 Leitungen der IDE-Schnittstelle mit dem CF-Sockel. Aber Du bist ja jetzt schon einen Schritt weiter ... wenn auch nicht unbedingt in der Richtung, in die Du eigentlich unterwegs sein möchtest. Viel Glück, dennoch.
Gast
#5492503
Die Transcend CF-Karten unterstützen 'PC-Card' oder 'true IDE' mode, der ist abhängig von dem Anschluss. Und danach wird dann gemeldet ob ein removable oder non-removable device angeschlossen ist. Ich weiss das es früher schwierig war Windows Embedded mit den CF zum Laufen zu bekommen, man konnte extra CF Karten kaufen die sich immer non-removable gemeldet haben. Der true-IDE mode kam wohl danach um diesen Umstand zu umgehen, nur wenn die im Card Reader als PC-Card angeklemmt ist wird man so nicht booten können. Aber mit den verschwunden Bytes hat das sicher auch nix zu tun.
Ich habe ja ganz am Anfang das noch existierende Image auf eine zu kleine CF-Karte (512 MB) gecloned. Das war natürlich unvollständig und war nur ein Test ob das Board diese wenigstens als bootfähig erkennt. Nachdem das fehlschlug hab ich die Karte zur Seite gelegt und erstmal nicht weiter beachtet. Die ersten drei Partitionen darauf konnte ich jedoch problemlos in einem Linux-PC mounten. Eine enthält den Grub, die andere leider nur ein leeres Filesystem und die dritte das Swap, aber ging. Diese Daten hab ich mal testweise auf eine SATA platte gecloned und diese am Applianceboard angeschlossen. Tatsächlich bootet er in den Grub! Danach geht es natürlich nicht weiter, weil die restlichen Partitionen in einer extended table liegen die wohl weit hinter den 512 MB lag. Obwohl also die CF und die HDD diesselbe Daten enthalten wird von CF nicht gebootet. Im BIOS wird die CF aber als HDD angezeigt, also elektrisch irgendwie da. Sogar von USB bootet das Board. Habe das mit einem Öive Linux Stick versucht. Der scheitert aber kurz nach dem Grub weil das Teile keine Grafikkarte hat und ich die Bootoptionen irgendwie auf Serial umleiten müsste, was ich aber garnicht weiss ob das geht, weil die COM ja schon vom BIOS genutzt wird. Vermutlich muss ich einfach nur Konsolentext ohne VGA schalten, da muss ich mich noch durchwühlen. Auch werde ich mir die Partitionstabelle nochmal genau ansehen müssen.
Bei den Daten die ich von der original CF so auslesen kann, habe ich festgestellt, das diese sich alle 0x4000 wiederholen. Scheint wirklich wie ein Adressüberlauf zu sein. Ich denke mal die Karte ist hin und ich hatte einfach nur das Pech das sich das genau zu diesem Zeitpunkt bemerkbar machte...
Olli Z. schrieb: > Ups! Falschen Code gepostet, hier ist der richtige: > >
1 | |
2 | |
3 | |
Man kann daran erkennen dass die Karte den SM223 Controller von Silicon Motion verwendet. Wenn du diese Daten über normale Lesekommandos sehen kannst, dann bedeutet das, dass etwas nicht so ist wie es sein sollte. Gruss
Würdest Du mir erklären was Du damit meinst?
Na ganz offensichtlich, dass die Karte kaputt ist! Also das, was hier seit der ersten Antwort gebetsmühlenartig wiederholt wird. Akzeptiere das doch einfach.
Hi, Richtig, da ist etwas kaputt gegangen. Gruss
Gast
#5493395
Joachim B. schrieb: > soweit ich weiss wurde PIO/IDE Modus bei neueren Karten abgeschafft Gemäß CF-Spezifikation ist der true IDE mode "mandatory", d.h. eine Karte die sich "Compact Flash" nennt muss ihn unterstützen. Seit CF 6.0 optional mit UDMA-Mode 7. Allerdings melden sich viele CF-Karten in ihrem ID-Block als removeable device. "Echte" MS-DOS-Kisten kümmern sich nicht drum und ignorieren das Bit, bei modernere Betriebssysteme kann das aber Probleme bereiten. Joachim B. schrieb: > Old P. schrieb: >> häufig halt Sandisk > > die meist gefälschten Flashspeicher im Netz, deswegen habe ich die nie > gekauft. Brot kauft man beim Bäcker und Flashspeicher beim Flash-Hersteller. Sandisk produziert Flash-Bausteine, Toshiba und Samsung auch. Hama, Kingston und Intenso stellen keine Chips her, sondern kaufen das auf was die Flash-Hersteller so loswerden wollen.
soul e. schrieb: > Sandisk produziert Flash-Bausteine, Allerdings veröffentlicht SanDisk keine irgendwie ernstzunehmenden Datenblätter oder eindeutig zuzuordnende Spezifikationen. Vielleicht wird das ja besser; SanDisk gehört seit einiger Zeit zu WD, und zumindest die SSDs werden jetzt mit "WD" gelabelt.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.