Warum unterstützen Kameras keine aufgezeichneten Dateisysteme?


15

wie NTFS, HFS + oder ext4 für SD-Karten? Journaling verringert schließlich die Wahrscheinlichkeit von Datenverlusten, was für Fotografen wichtig wäre. Ich habe auf Bali eine SD-Karte mit vielleicht tausend Fotos verloren - ein Ort, den ich vorher oder nachher nicht mehr besuchen konnte.

Gibt es Vorsichtsmaßnahmen, die ich beim nächsten Mal vor einer Reise treffen kann? Karten in der Kamera formatieren?

Stimmt es, dass SDXC (exFAT) und Sony Memory Stick nicht mehr Zuverlässigkeit bieten als SD-Karten?


2
Wenn Sie eines dieser Dateisysteme auf einer SD-Karte ausführen, kann der Flash-Speicher verdammt schnell zerstört werden.
Tim Seguine

1
@PhilipKendall Nicht meine Quelle, aber diese SE-Antwort erwähnt es: serverfault.com/questions/41674/… ... trotzdem benötigen SSD-Festplatten eine spezielle Logik, um das Verwerfen des Flashs bei Verwendung normaler Dateisysteme zu vermeiden. Günstiger Flash-Speicher wie bei SD-Karten ist für diese Art von Belastung noch weniger geeignet. FAT ist ein sehr einfaches Dateisystem, das sich gut für die sequentiellen Speicherlasten von Kameras eignet und einen geringen Verschleiß des Flash-Speichers verursacht.
Tim Seguine

2
Der Fehler dabei war, 1000 Fotos auf einer Karte zu speichern, ohne eine Sicherungskopie zu erstellen. Wenn Sie an einen entfernten Ort reisen, an dem Sie keinen Zugang zu einem Computer haben, auf dem Sie sichern möchten, sollten Sie ein Sicherungsgerät mit sich führen.
Jim Garrison

1
@KartickVaddadi Wie lautet Ihre Quelle für Ihre Zahlen, dass ein Journaled File System die Lebensdauer um 10% verkürzt (5 Jahre bis 4,5 Jahre)? Haben Sie Forschungsergebnisse, auf die Sie verweisen können?
Philip Kendall

1
@KartickVaddadi: Die Zuordnungsschicht zwischen den logischen Sektornummern und den physischen Plattenblöcken erzeugt Fehlermodi, die sich von denen unterscheiden, die normalerweise mit magnetischen Medien verbunden sind. Dateisysteme, die den ihnen verborgenen Mapping-Layer nicht verstehen, können keine von diesem Layer verursachten Fehlermodi vermeiden.
Superkatze

Antworten:


28

Machen wir eine kleine Kosten-Nutzen-Analyse:

  1. Ein Journaled File System ist komplizierter - dies bedeutet längere Entwicklungszeiten, mehr Fehler, mehr Batterieverbrauch, höhere Produktionskosten usw.

  2. Das durch ein Journaled Filesystem gelöste Problem - beschädigte FS-Daten, aber intakte Dateidaten - wird von Datenwiederherstellungstools von Drittanbietern ziemlich gut gehandhabt.

  3. Das Journaled File System löst nicht alle Probleme, Sie brauchen wirklich gute Backups - und nicht nur, dass es Systeme mit eingebauten Backups gibt (doppelte Kartensteckplätze), es ist eine Funktion, mit der Profis teurere Kameras kaufen können.

  4. Es gibt keine große Krise in Bezug auf die Zuverlässigkeit von Speicherkarten, diese Karten sind ziemlich zuverlässig und Fehler sind relativ selten.

  5. und schließlich gibt es kein Journal-Dateisystem, das sowohl unter Windows als auch unter Mac standardmäßig unterstützt wird.

Wenn Sie der verantwortliche Produktmanager wären, würden Sie ein Projekt genehmigen, das 1. ein bereits gelöstes Problem (mit Tools von Drittanbietern) unvollständig löst, 2. nicht wichtig genug ist, um ein Verkaufsargument zu sein, und 3. es schafft Ein beträchtlicher Teil des Marktes kann die Kamera nicht verwenden (zumindest ohne die Installation zusätzlicher Software, die sie bei den Konkurrenzmarken nicht benötigt).


3
Tatsächlich kann OSX NTFS-Volumes lesen und mit einigem Terminal-Foo darauf schreiben .
Justin Dearing

1
@ JustinDearing: ordentlich! Du solltest das als QS in askdifferent streichen .
ov

Die Standard-Dateisystemkonfiguration in OS X (dh die Konfiguration, mit der alle Macs vorinstalliert sind) ist HFS + mit aktivierter Journalfunktion. Für Time Machine muss das Journal aktiviert sein.
Strugee

1
@strugee - Ich habe nicht gesagt, dass OS X kein Journaling-Dateisystem hat - Ich habe gesagt, dass es kein einzelnes System gibt, das sowohl OS X als auch Windows sofort verwenden können (Windows versteht HFS + überhaupt nicht und Macs ( Standardmäßig) kann nicht NTFS schreiben)
Nir

@Nir ah, vergiss es. Ich habe es falsch verstanden.
Strugee

11

Aufgezeichnete Dateisysteme stellen nur die Integrität des Dateisystems sicher. Wenn eine Karte wirklich ausfällt, versagt sie mit dem gesamten Dateisystem. Wenn Sie jetzt einige fehlerhafte Speicherzellen haben, würden Sie nur das Foto verwenden, das diesen Speicherplatz belegt, und ein aufgezeichnetes Dateisystem würde auch nicht helfen. Mit anderen Worten, dies ist die falsche Lösung für den von Ihnen beschriebenen Vorfall.

Die eigentliche Lösung ist Redundanz. Aus diesem Grund finden Sie hier hochwertige Angebote von Nikon, Pentax und Canon, die über zwei Speicherkartensteckplätze verfügen und die Möglichkeit bieten, Bilder auf beide Karten gleichzeitig zu schreiben. Dies gibt Ihnen eine sofortige Sicherung. Wenn Ihnen diese Kameras nicht zusagen, müssen Sie einen anderen Weg finden, um häufige Backups zu erstellen. Einige Leute tun es täglich auf einem Laptop, einem tragbaren Laufwerk oder einer optischen Platte.

Obwohl ich dies noch nicht ausprobiert habe und nicht sicher bin, wie praktisch es ist, können Sie auch ein WLAN-Gerät oder eine WLAN-Karte (nur SD / SDHC AFAIK) verwenden, die Ihre Bilder automatisch sendet, wenn sie auf einem anderen Netzwerkgerät, z etwas mit guter Lagerung.

Während SDXC standardmäßig als exFAT-Format geliefert wird, können Sie es auch selbst mit FAT32 formatieren. Die meisten Kameras akzeptieren es in beide Richtungen. Der Unterschied in der Zuverlässigkeit ist jedoch wahrscheinlich Null.


Ja, aber das ist nicht der einzige Fehlermodus, oder? In meinem Fall wurde bei einem Stresstest, bei dem mehrere Male auf die gesamte Karte geschrieben wurde, kein Fehler festgestellt. Ich glaube also nicht, dass es sich um fehlerhafte Speicherzellen handelt. nur etwas Korruption. In Bezug auf fehlerhafte Speicherzellen stellt ein aufgezeichnetes Dateisystem sicher, dass nur die dort gespeicherten Fotos verloren gehen und nicht das gesamte Dateisystem mit Tausenden von Fotos, oder? Wenn ein aufgezeichnetes Dateisystem die falsche Lösung für das Problem ist, sehe ich leider nicht die richtige Lösung. Wenn ich auf Reisen bin, habe ich nicht immer meinen Laptop, Tablet oder eine tragbare Festplatte, auf die ich Fotos sichern kann.
Vaddadi Kartick

Aufgezeichnete Dateisysteme stellen sicher, dass das gesamte Dateisystem konsistent ist, tun jedoch nichts für Korruption. Dafür bräuchten Sie eine gewisse Redundanz.
Itai

1
@KartickVaddadi Ich denke, es ist am besten anzunehmen, dass beim Kauf eines Flash-Speichers irgendwann ein Fehler auftritt. Das Beste, was Sie tun können, wenn Sie nicht bereit sind, im Feld zu investieren, um das Risiko zu verringern, ist sicherzustellen, dass Sie zuverlässige Karten von seriösen Herstellern kaufen.
Peng Tuck Kwok

4
@KartickVaddadi Du versuchst ein Kamel zu schlucken, um nicht zu überanstrengen, eine Mücke zu essen. Wenn Sie "Tausende von Dollar" für Ihre Ausrüstung ausgegeben haben, was sind dann noch 20 US-Dollar für eine zusätzliche Speicherkarte, die Sie sowieso kaufen müssten, um einen zweiten Kartensteckplatz zu nutzen?
Michael C

1
@KartickVaddadi: Bei einem Stresstest, bei dem mehrere Male auf die gesamte Karte geschrieben wurde, wird Ihre Karte nur der Unzuverlässigkeit näher gebracht, da es sich um einen Flash-Speicher und nicht um magnetische Medien handelt. Der Flash-Speicher (mindestens NAND-basiert) unterstützt nur eine begrenzte Anzahl von Schreibvorgängen, bevor das Löschen von Blöcken fehlschlägt. Die Übersetzungsebene versucht, dies vor uns zu verbergen, indem sie fehlerhafte Blöcke beim Schreiben Arbeitsblöcken zuordnet.
Leo

5

Soweit mir bekannt ist, enthalten alle Digitalkameras, die für den Verkauf auf dem Einzelhandelsmarkt hergestellt werden, die Designregel für das Camera File System (DCF) . Teil des DCF-Standards ist, dass das FAT-Dateisystem von kompatiblen Geräten verwendet werden muss. Dieser Standard wurde als De-facto-Standard für das Speichern von digitalen Bild- und Tondateien in Speichergeräten von der Digitalkameraindustrie übernommen, um die Interoperabilität von einer Marke zur nächsten sicherzustellen.

Weitere Informationen zu DCF finden Sie unter /photo//a/46387/15871 .


Würde der Standard einen Kamerahersteller von der Verwendung von NTFS ausschließen. HFS + oder ein anderes Dateisystem, wenn eine Karte eingelegt wurde, die mit einem dieser Systeme formatiert wurde, oder muss die Kamera einfach "Karte unbrauchbar" sagen?
Superkatze

Zu einem bestimmten Zeitpunkt enthielt die Spezifikation kein FAT32 IIRC. Gegenwärtig (DCF v2, veröffentlicht 2010) ist die Spezifikation auf alle FAT-Varianten + exFAT beschränkt. Es gibt also Präzedenzfälle, in denen DCF in Zukunft um andere Dateisysteme erweitert werden soll, wenn die Mitglieder dies wünschen.
James Snell

@supercat Es würde außerhalb des Standards liegen, wie es jetzt geschrieben wird. Normen werden immer überarbeitet. Es stellt sich jedoch die Frage, warum derzeitige Kameras Journaled File Systems nicht unterstützen.
Michael C

@JamesSnell Regular FAT16 ist mit 2 GB pro Partition ebenfalls top-up , sodass der Schritt, etwas etwas moderneres zuzulassen, ein sehr reales Problem löste. Die weitverbreitete Unterstützung von FAT32 in Nicht-Microsoft-Systemen scheint in den Jahren um 2000 implementiert worden zu sein , und FAT32 erreicht auch heute noch einen deutlich höheren Wert von 2 TiB pro Partition, wenn eine logische Sektorgröße von 512 Bytes verwendet wird.
ein Lebenslauf vom

@ MichaelKjörling - Ich bin mir der Einschränkung von FAT16 sehr wohl bewusst, und ich sage nicht, dass FAT32 im Jahr 2010 hinzugefügt wurde (zu diesem Zeitpunkt wurde exFAT hinzugefügt). Der Punkt ist, dass CIPA es nützlich fand, die Spezifikation zu erweitern, und dies mit zukünftigen Dateisystemen tun könnte, wenn sie dies wünschten. Offensichtlich sahen sie ein Bedürfnis nach etwas jenseits von FAT32.
James Snell

5

Es kommt auf die Lösung "Gibt es einen Markt?" und "Was sind die Hindernisse für die Adoption?". Jedes davon stellt ein großes Hindernis für die Adoption dar, auch wenn es sich gelohnt hat.

NTFS würde Lizenzkosten verursachen, selbst wenn eine geeignete Bibliothek für die Prozessoren der Kamera vorhanden ist (was nicht garantiert ist), und die Unterstützung außerhalb von Windows wäre lückenhaft. Während HFS + und ext4 unter Windows keine native Unterstützung bieten, wird ein Großteil des potenziellen Kundenstamms eliminiert. Für diese gibt es also keinen Markt.

Wie Sie bereits erwähnt haben, ist exFAT für den SCXD- Standard erforderlich, sodass Sie feststellen werden, dass die Unterstützung für größere und schnellere Karten angezeigt wird, dies jedoch nicht so einfach ist, da mehr Code auch mehr Fehler verursacht und Sie bei eingebetteten Systemen wie Kameras Ich möchte keine Firmware-Updates veröffentlichen. Erwarten Sie also, dass Schreibvorgänge auf eine exFAT- Karte zwar lesbar und im richtigen Format sind, aber möglicherweise keine der exFAT- Funktionen verwenden, die möglicherweise einen Schutz bieten. Daher gibt es auch erhebliche Hindernisse für die Adoption.

Der Fehlermodus der meisten Karten ist wahrscheinlich ebenso die Steuerung wie eine Speicherzelle. Es ist viel Arbeit (Herstellungskosten) bei geringem Nutzen.

Sony MS (MemoryStick) ist immer noch ein SLC- oder MLC-Flash-Speicher. Nur der Controller und die physische Verbindung unterscheiden sich zwischen den Systemen. Ihr bester Schutz in der Situation, in der Sie es erlebt haben, besteht darin, ein kleines tragbares Sicherungsgerät mitzunehmen. Es hat ein Taschenformat und ist relativ kostengünstig (und wahrscheinlich auch nicht mit Journaled-Dateisystemen kompatibel).


NFS ist kein On-Disk-Dateisystem, sondern ein Netzwerkprotokoll (was das Problem betrifft, das es löst, entspricht es in etwa dem weitaus bekannteren FTP-Typ). Meinten Sie HFS + (das von Mac OS nativ verwendete Dateisystem)?
ein Lebenslauf vom

Ich habe in der Tat HFS + gemeint, wird bearbeiten :)
James Snell

4

Ein offensichtlicher Grund: Weil ein Journaling-Dateisystem auf einer Kamera Ihnen (oder irgendjemandem) sehr wahrscheinlich nicht geholfen hätte.

Als allgemeine Übersicht sehen Sie, was ein Journal-Dateisystem tut: Schreiben Sie vor jedem Schreiben in die Metadaten (oder Daten, wenn auch Daten aufgezeichnet wurden) zuerst, was Sie in das Journal ändern werden. Erst wenn Sie sicher sind, dass es sich um eine Festplatte handelt, schreiben Sie die Änderung. Grundsätzlich bedeutet dies, dass Sie das Dateisystem mithilfe des Journals wiederherstellen können, wenn die Stromversorgung während des Schreibvorgangs unterbrochen wird. Führen Sie alle Aktionen im Journal aus.

Dies ist auf einem Desktop-PC nützlich, bei dem die Stromversorgung unterbrochen wird oder der Benutzer die Reset-Taste drückt oder den Stecker abzieht. Auch nützlich, jedoch weniger auf Servern (Stromausfall) und Laptops (Reset-Taste). .

Eine Kamera ist batteriebetrieben. Es hat einen Aus-Schalter, aber dieser weist die Firmware normalerweise an, ihn herunterzufahren - es handelt sich nicht um eine physische Trennung der Stromversorgung. Normalerweise gibt es keine Reset-Taste, oder wenn ja, wird sie grundsätzlich nie verwendet. Sie brauchen also kein Journal, die Firmware kann nur den Schreibvorgang beenden. Die einzige Ausnahme wäre, wenn Sie den Akku physisch entfernen würden. Vielleicht würde das mit einem externen Netzteil passieren, aber ansonsten sollte eine Kamera niemals eine unsaubere Abschaltung erfahren.

Fast keine Flash-Geräte können auch mit unerwarteten Stromausfällen gut umgehen. Bringen Sie sie mitten in eine Branchenverlagerung (Wear Leveling), und alle Wetten sind geschlossen. Selbst wenn Sie ein Journal-Dateisystem hätten, wären Sie vor einem Stromausfall nicht sicher.

Ein Journal-Dateisystem schützt Sie nicht vor:

  • Fehler im Flash-Controller auf der SD-Karte usw.
  • Fehler in der SD-Host-Hardware der Kamera
  • Fehler im Dateisystemcode der Kamera
  • Fehler in den SD-Treibern der Firmware
  • Verlust von Sektoren in den Medien
  • Hardwarefehler (z. B. durch kosmische Strahlung, statische Entladung, EM-Rauschen, Wasser, ...)

Tatsächlich ist ein Journaling-Dateisystem komplizierter , sodass es tatsächlich wahrscheinlicher ist, dass Dateisystemfehler auftreten. Es verstärkt Schreibvorgänge, sodass Sie mit größerer Wahrscheinlichkeit auf Flash-Controller- oder SD-Host-Fehler stoßen. Und Sie werden den Blitz etwas früher verschleißen.


3

Journaled File-Systeme sind schlecht für SD-Karten (oder NAND-Flash-Geräte).

Schreibvorgänge sind für NAND-Flash-Geräte teuer, und Journaldateisysteme schreiben tendenziell mehr als nicht journalisierte Dateisysteme für dieselben Aktivitäten.

Die SD-Karte arbeitet also langsamer und hält mit einem Journaled-Dateisystem weniger lange.

FLASH-basierter Speicher verwendet im Kern eine Technologie namens NAND FLASH. NAND FLASH ist lesbar und beschreibbar, jedoch mit mehreren Falten.

  1. Die grundlegende Lese- / Schreibeinheit ist eine "Seite", kein Sektor. FLASH-Geräte der Generation 2007-2008 haben eine Seitengröße von 2 KB, die in der Generation 2009 auf eine Seitengröße von 4 KB migriert wurde. In den Generationen 2011 wurden Seitengrößen von 16 KB beobachtet.

  2. Sie können keine Seite schreiben, wann immer Sie möchten - bevor Sie darauf schreiben, müssen Sie sie zuerst löschen. Sie können jedoch nicht eine einzelne Seite gleichzeitig löschen - Sie müssen einen gesamten "Löschblock" von (normalerweise) 64 aufeinander folgenden Seiten löschen (128 KByte oder 256 KByte, abhängig von der Generation). Und nachdem Sie den Block gelöscht haben, können Sie nicht in beliebiger Reihenfolge auf die Seiten schreiben. Sie müssen sie nacheinander ab dem ersten Block schreiben.

  3. Blöcke neigen dazu, sich mit der Zeit abzunutzen. Nach einer bestimmten Anzahl von Löschzyklen "geht" ein Block dauerhaft "kaputt", so dass er keine Daten mehr zuverlässig hält. Seiten können auch Datenfehler als Ergebnis von Schreibaktivitäten auf andere Seiten und sogar als Ergebnis von Lesevorgängen entwickeln!

http://wiki.laptop.org/go/How_to_Damage_a_FLASH_Storage_Device

Bearbeiten: Es ist zu erwähnen, dass Journaled File-Systeme keinen signifikanten Vorteil gegenüber nicht-Journaled File-Systemen bringen.


1
Flash-Geräte verwenden eine Block-Remapping-Schicht (FTL), sodass Sie nicht immer wieder auf denselben physischen Block schreiben. Android verwendet Dateisysteme wie ext4, daher sehe ich die Gültigkeit Ihres Arguments nicht, dass es nicht für Flash geeignet ist.
Vaddadi Kartick

Android-Geräte haben normalerweise neben Flash auch etwas RAM, oder?
Michael C

1
Durch das erneute Zuordnen von Blöcken wird nicht die Gesamtzahl der Schreibvorgänge pro Block erhöht, bevor ein Block fehlerhaft wird. Es werden lediglich Schreibvorgänge auf die gesamte Karte verteilt, sodass fast jeder Block mit der gleichen Rate abgenutzt wird. Journal-Systeme verwenden mehr Schreibvorgänge, um dasselbe zu tun wie nicht-Journal-Systeme. Daher tritt die Gesamtzahl der Schreibvorgänge, bevor eine Karte fehlerhaft wird, in ihrem Lebenszyklus mit einem Journal-System früher auf.
Michael C

1
Android hat einige Probleme mit dem Speicher (E / A-Verzögerungen) und implementiert den TRIM- Befehl, um die Situation zu verbessern. SD-Karten sollten billig und klein und nicht robust sein. Es gibt robustere Alternativen, die jedoch teurer sind.
S182

1
Android verwendet JSF, da diese Geräte ständig Informationen aus verschiedenen Prozessen schreiben und dazu neigen, unerwartet herunterzufahren (Betriebssystemblöcke, schwache Batterie usw.). Es ist nicht das Beste, aber sie brauchen es. Andererseits sind Persistenzoperationen in Kameras viel einfacher und ein JFS würde mehr Probleme bringen als Lösungen. Ein Journaling File System ist widerstandsfähiger und weniger korruptionsanfällig, aber nicht immun. In den meisten Fällen können Sie einen nicht aufgezeichneten FS mit einem "Scandisk" reparieren.
S182

2

Unterschiedliche Dateisysteme erfordern unterschiedliche RAM-Mengen in einem System, das sie verwendet. Ein System, das eine Datei in ein FAT-Dateisystem schreiben muss, könnte theoretisch mit einem einzigen 512-Byte-Puffer auskommen, obwohl die Leistung ziemlich schrecklich wäre. Die Erweiterung auf zwei oder drei 512-Byte-Puffer würde die Dinge enorm verbessern. Wenn Sie darüber hinaus gehen, verbessern Sie die Situation etwas mehr, und wenn Sie die optimale Leistung einer größeren Karte erzielen möchten, benötigen Sie mehr Speicher als die optimale Leistung einer kleineren Karte. Eine Kamera, die nur genügend Puffer enthält, um mit kleineren Karten eine optimale Effizienz zu erzielen, kann dies jedoch weiterhin mit größeren arbeiten, wenn auch weniger effizient.

Ein kniffligeres Problem betrifft die Tatsache, dass Speicherkartenstandards festlegen, dass sich jede Karte wie eine nummerierte Sammlung von 512-Byte-Sektoren verhält, die unabhängig voneinander in beliebiger Reihenfolge gelesen und geschrieben werden können. Auf diese Weise werden die Daten jedoch nicht auf den Chips in gespeichert Karten. Die in einer typischen Speicherkarte verwendeten Speicherchips sind in 528-Byte-Seiten unterteilt. Diese wiederum sind in Blöcken von 256 oder mehr gruppiert. Sobald eine Seite geschrieben ist, kann sie nicht mehr neu geschrieben werden, ohne sie und alle anderen Seiten in ihrem Block zu löschen. Theoretisch wäre es für eine SD-Karte möglich, einer Aufforderung zum Schreiben eines 512-Byte-Sektors nachzukommen, indem alle Daten in ihrem Block in den RAM kopiert, der Block gelöscht und der gesamte Block mit neuen Daten in einem Sektor zurückgeschrieben werden . In der Praxis wäre die Leistung schrecklich. Stattdessen, Das Schreiben eines Sektors bewirkt, dass die SD-Karte eine leere Seite auswählt, die Daten zusammen mit ihrer Sektornummer und verschiedenen Zusatzinformationen (die Grundseiten sind 528 Bytes anstatt 512) dort schreibt und irgendwie festhält, dass dies der richtige Ort ist die Daten. Wenn leere Seiten knapp werden, identifiziert der Controller einen Block, dessen Seiten größtenteils durch kürzlich geschriebene Seiten ersetzt wurden, kopiert alle noch aktuellen Seiten von diesem Block in leere Blöcke und löscht dann den gesamten jetzt redundanten Block . All diese Logik wird vollständig von der Karte selbst gehandhabt, ohne dass die Kamera eingreifen muss. Wenn leere Seiten knapp werden, identifiziert der Controller einen Block, dessen Seiten größtenteils durch kürzlich geschriebene Seiten ersetzt wurden, kopiert alle noch aktuellen Seiten von diesem Block in leere Blöcke und löscht dann den gesamten jetzt redundanten Block . All diese Logik wird vollständig von der Karte selbst gehandhabt, ohne dass die Kamera eingreifen muss. Wenn leere Seiten knapp werden, identifiziert der Controller einen Block, dessen Seiten größtenteils durch kürzlich geschriebene Seiten ersetzt wurden, kopiert alle noch aktuellen Seiten von diesem Block in leere Blöcke und löscht dann den gesamten jetzt redundanten Block . All diese Logik wird vollständig von der Karte selbst gehandhabt, ohne dass die Kamera eingreifen muss.

All diese Logik bedeutet, dass die SD-Karte zusätzlich zu FAT32 oder einem anderen Dateisystem, das von der Kamera erkannt wird, ein eigenes Blockzuweisungs- und -verwaltungssystem haben muss. Alle Probleme, die in diesem System auftreten, können zu Datenverlusten führen, unabhängig davon, auf welchem ​​System sich das System befindet. Theoretisch sind viele Speicherkarten so konzipiert, dass sie selbst dann, wenn die Stromversorgung während eines Vorgangs unerwartet unterbrochen wird, den Status der Karte auf den Stand vor Beginn des Vorgangs zurücksetzen oder vollständig ausführen können ( wenn alle erforderlichen Daten geschrieben wurden und die Karte einfach redundante Daten löscht). Leider unterscheiden sich Karten darin, wie gut sie eine solche Logik implementieren. Wenn ein unerwarteter Stromausfall die Speicherverwaltungstabellen einer Karte verstopft,

Persönlich wäre es für das SD-Konsortium besser gewesen, ein Dateisystem anzugeben, das von FAT32 unabhängig ist, oder zumindest anzugeben, dass eine Karte, die als FAT32-Volume lesbar sein muss, mithilfe einer dateibasierten Kommunikation geschrieben werden sollte Protokoll. Eine Karte, die weiß, welche Sektorgruppen Mitglieder jeder Datei sind, könnte ihre Defragmentierungsroutinen dahingehend optimieren und auch einen besseren Schutz vor Datenverlust bieten als eine Karte, die die Festplatte als eine Gruppe unabhängiger 512-Byte-Dateien darstellen musste Sektoren, aber zum Guten oder Schlechten sind die Dinge nicht so spezifiziert.


Ich denke, es gibt bereits eine Standardlösung: eine Block-Remapping-Ebene mit einem Standard-Dateisystem (NTFS, HFS +, ext4). Und es wird auch auf Mobilgeräten unter Android verwendet. Kamera-Betriebssysteme mögen primitiver sein, aber das muss behoben werden.
Vaddadi Kartick

@KartickVaddadi: Die Block-Remapping-Ebene ist Standard. Mein Punkt war, dass wenn die Speicherkarte, die die Block-Remapping-Schicht implementierte, das Layout des Dateisystems zumindest ein wenig kannte, sie das Remapping-Layout effektiver optimieren könnte, als dies ohne dieses Wissen möglich ist.
Superkatze

Sicher, aber ich würde es vorziehen, etwas Bewährtes zu verwenden, anstatt neue Schnittstellen zwischen der Block-Device-Schicht und dem Dateisystem zu entwickeln. Wir reden hier nicht über CS-Forschung :) Ich möchte etwas, das auf meinem Computer und meinem Telefon funktioniert, auf meine Kamera setzen.
Vaddadi Kartick

@KartickVaddadi: Ich habe einige Flash-Dateisysteme mit Abnutzungsgrad für eingebettete Geräte mit verschiedenen Einschränkungen entwickelt. Wenn das Wear-Leveling-System sagt "Ich möchte eine Datei schreiben, hier
Supercat

... hier sind die Daten; das ist es. Ich möchte eine weitere Datei schreiben. hier sind die Daten; das ist es ", es kann sich etwas intelligenter verhalten, als wenn es nur eine Reihe von einzelnen Sektoren zum Arbeiten gibt und keine Ahnung hat, was diese repräsentieren. Unter anderem könnten alle Datenblöcke, die mit jeder Datei verknüpft sind, mit Tags mit der Aufschrift gekennzeichnet werden Beispiel: "Block 347 der Datei-ID 193.291.374, Aktualisierung 273.837.199."
Supercat

1

Angenommen, die Karte ist einfach beschädigt, und Sie haben sie nicht geworfen oder überschrieben. Ich empfehle dringend, PhotoRec zu verwenden. (Es hat mich vor ein paar Monaten aus einer etwas schlechteren Situation herausgeholt. Es hat sogar ein paar Bilder gefunden, die überlebt hatten und ein oder zwei Jahre gelöscht wurden.)

http://www.cgsecurity.org/wiki/PhotoRec

In Bezug auf ein Journaling-FS hatte ich oft die gleiche Frage. Wie andere bereits gesagt haben, sind aktuelle Flash-Medien im Vergleich zu magnetischen Medien empfindlich, und das Aufzeichnen von Journalen ist schwierig. Da das Verwendungsmuster für Kameras in der Regel darin besteht, eine Reihe von Fotos aufzunehmen, diese zu lesen und anschließend alle zu löschen, sind erweiterte FS-Funktionen kaum erforderlich. Einfache, getestete Implementierungen sind wahrscheinlich wichtiger als der marginale Nutzen von Journaling. Als zusätzlichen Vorteil erleichtert die blöde Zuweisungsstrategie von FAT Tools wie PhotoRec die Arbeit.


Ich glaube, ich habe in diesem Fall PhotoRec verwendet. Trotzdem danke für den Link.
Vaddadi Kartick

1

1, Gott kann dich nicht retten, wenn du die Karte physisch verloren hast. Was meinst du damit, dass du auf Bali eine Karte verloren hast?

2, Journaled FSs sind für Situationen wie plötzlichen Betriebssystemausfall oder plötzlichen Stromausfall konzipiert. Sie halten die FS-Metadaten konsistent, wenn diese schlimmen Dinge passieren. Sie helfen nicht, wenn Sie möchten, dass Ihre gelöschten Dateien wiederhergestellt werden.

3, Bad-Block ist das wichtigste Problem der NAND-FLASH-basierten Speicher. Fehlerhafte Blöcke treten auf, wenn Schriften auftreten. Wenn Sie FS für einen NAND-FLASH-Speicher wählen, sollten Sie daher als Erstes die Schreibfrequenz berücksichtigen. Offensichtlich bringen Journaled FSs, wie alle anderen sagten, mehr Dinge zum Schreiben.

4, Journaled FSs verbrauchen natürlich mehr Strom. Sicher komplizierter. Aber das sind nicht die vorherrschenden Gründe, warum wir sie nicht für NAND FLASH übernehmen, denke ich.

TADA ~~ Das war's.


1. Siehe meinen Kommentar zu AJs Antwort. 2. Ich habe die Dateien nicht manuell gelöscht. 3. Wie ich bei den anderen Kommentaren geschrieben habe, wie erklärt man die Verwendung eines aufgezeichneten FS auf Flash durch Android? Es ist nicht so schlimm, wie du es dir vorstellst. Fotos nicht zu verlieren ist wichtiger als eine geringfügige Verkürzung der Lebensdauer der Karte.
Vaddadi Kartick

3
Die meisten Journaled FSs benötigen einen oder mehrere Daemon-Prozesse / Threads, um ihre "Journale" zu verwalten. (Zum Beispiel kjournald in Linux für EXT3) Es wird schwierig sein, sie zu übernehmen, wenn es sich bei env nicht um ein vollwertiges Betriebssystem handelt, für das wir keine Vorstellung von process / thread haben.
Garf

@KartickVaddadi Bitte geben Sie noch einmal einen Hinweis auf einige Untersuchungen, die zeigen, dass ein Journaled File System die Lebensdauer der Karte nur geringfügig verkürzt. Dies ist das zweite Mal, dass Sie es behauptet haben.
Philip Kendall

Gute Frage, aber denken Sie daran, Android verwendet es, wie ich schon oft gesagt habe. Sie hätten es nicht benutzt, wenn dies zu einer drastischen Reduzierung der Lebensdauer der Medien geführt hätte, oder? Außerdem kann ich Sie genauso gut bitten, Nachforschungen
anzuführen, die belegen

Vielleicht sollten wir einfach @supercat fragen, da er ein Experte ist und keiner von uns Daten zitiert hat.
Vaddadi Kartick

-1

Das Dateisystem selbst muss nicht komplex sein, da die Bilder einfach auf die Karte geschrieben werden, nach der ersten Erstellung kaum Änderungen an einer Datei vorgenommen werden und keine Bedenken hinsichtlich gleichzeitiger Datei-E / A bestehen, die besorgt sein müssen auf der Kamera.

Die Datenintegritätsprobleme werden tatsächlich auf Hardwareebene gelöst, da ALLER Flash-Speicher von Natur aus instabil ist. Der Controller auf der SD-Karte führt zahlreiche eigene Überprüfungen und Speichertricks durch, um sicherzustellen, dass die Daten gültig sind. Ein Journaldateisystem würde hier keine Abhilfe schaffen, da es sich eher um die Integrität des Datenspeichers als um die Integrität der Dateioperationen handelt.

Eine Kamera verwendet so einfache (und schnelle) Dateivorgänge, dass ein komplexes Dateisystem zusätzliche Kosten und Komplexität verursacht, langsamere E / A-Vorgänge verursacht und möglicherweise weitere Fehler verursacht, die zu Datenverlusten aufgrund komplexerer Dateiverwaltung führen können für eine Kamera von Nutzen sein.


In meinem Fall wurde das Dateisystem beschädigt, möglicherweise aufgrund eines Fehlers im Dateisystemcode der Kamera, der in seltenen Fällen ausgelöst wird. Durch die Aufzeichnung wird sichergestellt, dass das Dateisystem in diesem Fall mit größerer Wahrscheinlichkeit unbeschädigt bleibt, sodass Sie nicht Tausende von Fotos verlieren.
Vaddadi Kartick

3
@KartickVaddadi - Sind Sie sicher, dass das Dateisystem beschädigt wurde und nicht die SD-Karte selbst? Ein Dateibeschädigungsproblem mit einer FAT-Tabelle sollte niemals zum Ausfall der gesamten Karte führen. Die meisten Fotos sollten problemlos wiederhergestellt werden können, es sei denn, die Karte selbst ist fehlerhaft. Wie können Sie sicher sein, was genau gescheitert ist?
AJ Henderson

Ich konnte die meisten Fotos von meinem Laptop mit einem dieser Wiederherstellungstools wiederherstellen, das das Dateisystem ignoriert, alle Blöcke auf dem Gerät liest und versucht, herauszufinden, was die Dateien sind. Ich konnte es nicht in der Kamera lesen, was bedeutete, dass ich für den Rest des Tages keine Fotos machen konnte, und ich habe die Orte, die ich an diesem Tag besucht hatte, nie wieder besucht, also war es eine verpasste Gelegenheit.
Vaddadi Kartick

2
@KartickVaddadi - ja, aber das könnte ein Dateisystem- oder SD-Kartenfehler gewesen sein. Wenn das Inhaltsverzeichnis gelöscht wird, müssen Sie dennoch eine Wiederherstellung des Dateisystems durchführen, unabhängig davon, ob Sie FAT oder NTFS verwenden. Ich bin mir immer noch nicht sicher, ob ein Journaled File System helfen würde. Die Hauptstärke eines Journaldateisystems besteht lediglich darin, dass es eine teilweise geschriebene Datei wiederherstellen kann, da es weiß, dass der Datei- oder Verzeichnisdatensatz fehlerhaft ist. Es handelt sich höchstwahrscheinlich um eine Beschädigung der Zuordnungstabelle, die entweder ein Festplatten- oder ein Dateisystemfehler sein kann.
AJ Henderson

2
@KartickVaddadi: Ich würde denken, dass man grundsätzlich immer versuchen sollte, eine Ersatzkarte zur Hand zu haben, und wenn die verwendete Karte irgendwelche Anzeichen von Problemen aufweist, sofort auf die Ersatzkarte umschalten, um zu vermeiden, dass Daten zerstört werden wäre von der problematischen Karte wiederherstellbar gewesen.
Supercat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.