Dlaczego kamery nie obsługują kronikowanych systemów plików?

15

jak NTFS, HFS + lub ext4, dla kart SD? W końcu kronikowanie zmniejsza ryzyko utraty danych, co byłoby ważne dla fotografów. Zgubiłem kartę SD zawierającą może tysiąc zdjęć, gdy byłem na Bali - miejscu, którego nie miałem okazji odwiedzić wcześniej ani później.

Czy są jakieś środki ostrożności, które mogę podjąć przed wyjazdem następnym razem? Sformatować karty w aparacie?

Czy mam rację rozumiejąc, że SDXC (exFAT) i Sony Memory Stick oferują nie więcej niezawodności niż karty SD?

Vaddadi Kartick
źródło
2
Uruchamianie dowolnego z tych systemów plików na karcie SD może szybko zabić pamięć flash.
Tim Seguine
1
@ PhilipKendall Nie moje źródło, ale ta odpowiedź SE wspomina o nim: serverfault.com/questions/41674/ ... ... w każdym razie dyski SSD wymagają specjalnej logiki, aby uniknąć zniszczenia pamięci flash podczas korzystania z normalnych systemów plików. Taka tania pamięć flash na kartach SD jest jeszcze mniej przystosowana do tego rodzaju obciążenia. FAT jest bardzo prostym systemem plików, dobrze przystosowanym do sekwencyjnych obciążeń pamięci, które powodują aparaty i powoduje niskie zużycie pamięci flash. Podstawowym problemem są już dostarczone odpowiedzi: dodatkowa złożoność bez korzyści.
Tim Seguine
2
Błąd polegał na przechowywaniu 1000 zdjęć na karcie bez tworzenia kopii zapasowej. Jeśli podróżujesz do odległej lokalizacji, w której nie będziesz mieć dostępu do komputera, na którym chcesz wykonać kopię zapasową, powinieneś mieć przy sobie urządzenie do tworzenia kopii zapasowych.
Jim Garrison
1
@KartickVaddadi Jakie jest Twoje źródło liczb, że kronikowany system plików skróci życie o 10% (5 lat do 4,5 lat)? Czy masz jakieś badania, na które możesz wskazać?
Philip Kendall
1
@KartickVaddadi: Warstwa mapowania między numerami sektorów logicznych a fizycznymi blokami dysków tworzy tryby awarii, które nie są podobne do normalnie związanych z mediami magnetycznymi; systemy plików, które nie rozumieją ukrytej przed nimi warstwy odwzorowania, nie mogą uniknąć trybów awarii stwarzanych przez tę warstwę.
supercat

Odpowiedzi:

28

Zróbmy małą analizę kosztów i korzyści:

  1. Rejestrowany system plików jest bardziej skomplikowany - oznacza to dłuższy czas programowania, więcej błędów, większe zużycie energii akumulatora, wyższe koszty produkcji itp.

  2. problem rozwiązany przez kronikowany system plików - uszkodzone dane FS, ale dane pliku nienaruszone - są całkiem dobrze obsługiwane przez narzędzia do odzyskiwania danych innych firm.

  3. kronikowany system plików nie rozwiązuje wszystkich problemów, naprawdę potrzebujesz dobrych kopii zapasowych - i nie tylko, że istnieją systemy z wbudowanymi kopiami zapasowymi (dwa gniazda kart), jest to funkcja, która pozwala profesjonalistom uzyskać droższe aparaty fotograficzne.

  4. nie ma dużego kryzysu niezawodności kart pamięci, karty te są dość niezawodne, a awarie występują stosunkowo rzadko.

  5. i wreszcie, nie ma kronikowanego systemu plików, który jest obsługiwany natychmiast po zainstalowaniu w systemie Windows i Mac.

Tak więc - gdybyś był kierownikiem produktu, zatwierdziłby projekt, który 1. rozwiązuje problem już rozwiązany (przy użyciu narzędzi innych firm) w niekompletny sposób, 2. nie jest wystarczająco ważny, aby być punktem sprzedaży, a 3. sprawi, że znaczna część rynku nie może korzystać z aparatu (przynajmniej bez instalowania dodatkowego oprogramowania, którego nie będą potrzebować w przypadku konkurencyjnych marek)?

Nir
źródło
3
W rzeczywistości OSX może odczytywać woluminy NTFS i zapisywać na nich za pomocą jakiegoś terminalowego foo .
Justin Dearing
1
@JustinDearing: schludny! Powinieneś przesłać to jako QA do askdifferent .
ov
domyślna konfiguracja systemu plików w OS X (czyli konfiguracja, z którą wszystkie komputery Mac są fabrycznie zainstalowane) to HFS + z włączoną funkcją kronikowania. w rzeczywistości Time Machine wymaga włączenia kronikowania.
strugee
1
@strugee - Nie powiedziałem, że OS X nie ma systemu plików z kronikowaniem - Powiedziałem, że nie ma jednego systemu, z którego zarówno OS X, jak i Windows mogłyby korzystać po wyjęciu z pudełka (Windows nie rozumie w ogóle HFS + i komputerów Mac ( domyślnie) nie może napisać NTFS)
Nir
@Nir ah, nieważne. Źle zrozumiałem.
strugee
11

Kronikowane systemy plików zapewniają tylko integralność systemu plików. Jeśli karta naprawdę zawiedzie, zawiedzie cały system plików. Teraz, jeśli masz jakieś złe komórki pamięci, użyjesz tylko tego zdjęcia, które zajmuje to miejsce, a system plików z kronikami też by nie pomógł. Innymi słowy, jest to niewłaściwe rozwiązanie opisywanego zdarzenia.

Prawdziwym rozwiązaniem jest nadmiarowość, dlatego znajdziesz wysokiej klasy oferty firm Nikon, Pentax i Canon, które oferują dwa gniazda kart pamięci i możliwość zapisywania zdjęć na obu kartach jednocześnie. To daje natychmiastową kopię zapasową. Jeśli te aparaty nie są dla ciebie wygodne, musisz znaleźć inny sposób na częste tworzenie kopii zapasowych. Niektóre osoby robią to codziennie na laptopie, dysku przenośnym, dysku optycznym.

Chociaż jeszcze tego nie próbowałem i nie jestem pewien, na ile jest to praktyczne, możesz również użyć urządzenia lub karty Wi-Fi (tylko SD / SDHC AFAIK), które automatycznie wysyłają twoje zdjęcia po ich przechwyceniu do innego urządzenia sieciowego, na przykład tabletu lub coś z dobrym miejscem do przechowywania.

Chociaż SDXC jest domyślnie formatowany jako exFAT, możesz go również sformatować na FAT32. Większość aparatów akceptuje to w obie strony. Różnica w niezawodności wynosi prawdopodobnie zero.

Itai
źródło
Tak, ale to nie jedyny tryb awarii, prawda? W moim przypadku test warunków skrajnych polegający na wielokrotnym zapisywaniu na całej karcie nie wykrył błędu, więc nie sądzę, aby chodziło o złe komórki pamięci; tylko trochę korupcji. Jeśli chodzi o złe komórki pamięci, kronikowany system plików zapewni, że tylko zapisane tam zdjęcia zostaną utracone, a nie cały system plików z tysiącami zdjęć, prawda? Jeśli kronikowany system plików jest niewłaściwym rozwiązaniem problemu, obawiam się, że nie widzę właściwego rozwiązania. Kiedy podróżuję, nie zawsze mam laptopa, tablet lub dysk przenośny do tworzenia kopii zapasowych zdjęć.
Vaddadi Kartick
Kronikowane systemy plików zapewniają spójność całego systemu plików, ale tak naprawdę nie robią nic w celu uszkodzenia. Potrzebujesz do tego trochę redundancji.
Itai
1
@KartickVaddadi Myślę, że najlepiej jest założyć, że przy zakupie dowolnego rodzaju pamięci flash nastąpi awaria. Najlepsze, co możesz zrobić, jeśli nie chcesz inwestować, aby zmniejszyć ryzyko, gdy jesteś w terenie, to upewnić się, że kupujesz niezawodne karty od renomowanych producentów.
Peng Tuck Kwok
4
@KartickVaddadi Próbujesz połknąć wielbłąda, aby uniknąć wysiłku, aby zjeść komara. Jeśli wydałeś „tysiące dolarów” na swój sprzęt, jakie są kolejne 20 USD za dodatkową kartę pamięci, którą i tak musiałbyś kupić, aby skorzystać z drugiego gniazda karty?
Michael C
1
@KartickVaddadi: Przeprowadzenie testu warunków skrajnych polegającego na wielokrotnym pisaniu na całej karcie nie spowoduje nic innego, jak tylko zbliżyć kartę do zawodności, ponieważ mówimy o pamięci flash, a nie o nośnikach magnetycznych. Pamięć flash (przynajmniej oparta na NAND) obsługuje tylko ograniczoną liczbę zapisów, zanim bloki kasowania zaczną się nie powieść. Warstwa tłumacząca będzie próbowała to przed nami ukryć, mapując uszkodzone bloki na bloki robocze podczas pisania.
Leo
5

O ile mi wiadomo, wszystkie aparaty cyfrowe sprzedawane na rynku detalicznym zawierają zasadę projektowania systemu plików aparatu (DCF) . Częścią standardu DCF jest to, że system plików FAT musi być używany przez urządzenia zgodne. Ten standard został przyjęty przez przemysł aparatów cyfrowych jako de facto standard przechowywania cyfrowych obrazów i plików dźwiękowych w urządzeniach pamięci w celu zapewnienia interoperacyjności od jednej marki do drugiej.

Więcej informacji o DCF można znaleźć na /photo//a/46387/15871

Michael C.
źródło
Czy standard uniemożliwiłby dostawcy kamer korzystanie z NTFS. HFS + lub inny system plików, jeśli włożono kartę sformatowaną w jednym z tych systemów, czy też aparat musiałby po prostu mówić „karta nie nadaje się do użytku”?
supercat
W pewnym momencie specyfikacja nie obejmowała FAT32 IIRC. Obecnie (DCF v2, opublikowany w 2010 r.) Specyfikacja jest ograniczona do wszystkich wariantów FAT + exFAT. Istnieją więc precedensy dla rozszerzenia DCF w przyszłości o inne systemy plików, jeśli członkowie tego chcą.
James Snell
@ superuper To byłoby poza standardem, ponieważ jest teraz napisane. Normy zawsze podlegają rewizji. Wydaje się jednak, że pytanie nasuwa pytanie, dlaczego żadna z obecnych kamer nie obsługuje kronikowanych systemów plików.
Michael C
@JamesSnell Regular FAT16 również osiąga 2 GiB na partycję, więc przejście na coś bardziej nowoczesnego rozwiązało bardzo prawdziwy problem. Wydaje się, że powszechna obsługa FAT32 w systemach innych niż Microsoft została wdrożona w latach około 2000 , a FAT32 osiąga znacznie bardziej użyteczne nawet dziś 2 TiB na partycję przy użyciu 512-bajtowego rozmiaru sektora logicznego.
CVn
@ MichaelKjörling - Zdaję sobie sprawę z ograniczenia dzięki FAT16 i nie mówię, że FAT32 został dodany w 2010 roku (wtedy dodany został exFAT). Chodzi o to, że CIPA uznał za użyteczne rozszerzenie specyfikacji i może to zrobić z przyszłymi systemami plików, jeśli sobie tego życzą. Najwyraźniej widzieli potrzebę / pragnienie czegoś poza FAT32.
James Snell
5

Wszystko sprowadza się do rozwiązania problemu „czy istnieje rynek?” oraz „jakie są bariery adopcyjne?”. Każdy z nich stanowi ogromną przeszkodę dla adopcji, nawet jeśli byłoby to opłacalne.

NTFS poniósłby koszty związane z licencjonowaniem, nawet jeśli istnieje odpowiednia biblioteka dla procesorów aparatu (co nie jest gwarantowane), a wsparcie poza Windows byłoby niejednolite. Podczas gdy HFS + i ext4 nie mają natywnej obsługi w systemie Windows, eliminuje to znaczną część potencjalnej bazy klientów. Więc nie ma na nich rynku.

Jak wspomniałeś, exFAT jest wymagany przez standard SCXD, więc zobaczysz, że ponieważ pojawia się obsługa większych i szybszych kart, ale nie jest to takie proste, ponieważ więcej kodu również się psuje, a przy systemach wbudowanych, takich jak kamery, możesz naprawdę nie chcę wypychać aktualizacji oprogramowania układowego, więc spodziewaj się, że chociaż zapis na karcie exFAT może być czytelny i we właściwym formacie, może nie korzystać z żadnych funkcji exFAT, które mogłyby zapewnić jakąkolwiek ochronę. Istnieją więc również znaczące bariery dla adopcji.

Tryb awaryjny większości kart jest tak samo prawdopodobnie kontrolerem, jak komórka pamięci, jest to bardzo pracochłonne (koszt produkcji) bez większych korzyści.

Sony MS (MemoryStick) to wciąż pamięć flash SLC lub MLC, to tylko kontroler i fizyczne połączenie, które różni się w zależności od systemu. Najlepszą ochroną w sytuacji, której doświadczyłeś, jest zabranie ze sobą małego przenośnego urządzenia do tworzenia kopii zapasowych, są one kieszonkowe i stosunkowo niedrogie (i prawdopodobnie również niekompatybilne z systemami plików Journaled).

James Snell
źródło
NFS nie jest systemem plików na dysku, jest protokołem sieciowym (mniej więcej na równi z jego znacznie bardziej znanym kuzynem FTP pod względem problemu, który rozwiązuje). Miałeś na myśli HFS + (system plików używany natywnie przez Mac OS)?
CVn
Naprawdę miałem na myśli HFS +, będę edytować :)
James Snell
4

Jeden oczywisty powód: ponieważ system rejestrowania plików w kamerze najprawdopodobniej nie pomógłby tobie (ani nikomu).

Jako przegląd bardzo wysokiego poziomu, oto, co robi system plików kronikowania: Przed każdym zapisz do metadanych (lub danych, jeśli kronikowane są również dane), najpierw napisz, co zamierzasz zmienić w kronice. Tylko wtedy, gdy masz pewność, że jest na dysku, napisz zmianę. Zasadniczo oznacza to, że jeśli podczas zapisu nastąpi przerwa w zasilaniu, możesz odzyskać system plików za pomocą dziennika - możesz wykonać wszelkie czynności w tym dzienniku.

Jest to cenne na komputerze stacjonarnym, na którym może dojść do wygaśnięcia zasilania, użytkownik może nacisnąć przycisk resetowania lub wyciągnąć wtyczkę itp. Również jest cenny, ale mniej, na serwerach (awaria zasilania) i laptopach (przycisk resetowania) .

Aparat jest zasilany z baterii. Ma wyłącznik, ale zwykle nakazuje oprogramowaniu układowemu wyłączenie - nie jest to fizyczne odłączenie zasilania. Zwykle nie ma przycisku resetowania, a jeśli jest, to w zasadzie nigdy nie jest używany. Więc nie potrzebujesz kronikowania, oprogramowanie wewnętrzne może po prostu zakończyć zapis. Jedynym wyjątkiem byłby fizyczny wyjęcie baterii. Może tak się stanie z zewnętrznym zasilaczem, ale poza tym aparat nigdy nie powinien doświadczyć nieczystego wyłączenia.

Ponadto prawie żadne urządzenia flash nie radzą sobie dobrze z nieoczekiwaną awarią zasilania. Umieść je w środku przeniesienia sektora (wyrównanie zużycia), a wszystkie zakłady zostaną wyłączone. Więc nawet jeśli masz system plików z kronikowaniem, nadal nie będziesz bezpieczny przed awarią zasilania.

System plików kronikowania nie chroni przed:

  • Błędy w kontrolerze flash na karcie SD itp.
  • Błędy w sprzęcie hosta SD kamery
  • Błędy w kodzie systemu plików w kamerze
  • Błędy w sterownikach SD oprogramowania układowego
  • Utrata sektorów w mediach
  • Awaria sprzętu (np. Z powodu promieni kosmicznych, wyładowań statycznych, szumu elektromagnetycznego, wody, ...)

W rzeczywistości system plików kronikowania jest bardziej skomplikowany , dlatego istnieje większe prawdopodobieństwo wystąpienia błędów w systemie plików. Wzmacnia zapisy, więc bardziej prawdopodobne jest, że trafisz na błędy kontrolera flash lub hosta SD. A ty zużyjesz flash nieco wcześniej.

derobert
źródło
3

Kronikowane systemy plików są złe dla kart SD (lub dowolnego urządzenia NAND Flash).

Operacje zapisu są kosztowne dla urządzeń NAND Flash, a systemy plików z kronikowaniem mają tendencję do pisania więcej niż systemy plików bez kroniki dla tych samych działań.

Tak więc karta SD będzie działać wolniej i będzie działać krócej z systemem plików z kronikowaniem.

Pamięć masowa oparta na technologii FLASH wykorzystuje technologię NAND FLASH. NAND FLASH jest czytelny i zapisywalny, ale z kilkoma zmarszczkami.

  1. Podstawową jednostką odczytu / zapisu jest „strona”, a nie sektor. Urządzenia FLASH generacji 2007-2008 mają rozmiar strony 2K, migracja do rozmiaru strony 4K w generacji 2009 i obserwowano wielkość stron 16K w generacjach 2011.

  2. Nie możesz napisać strony w dowolnym momencie - zanim napiszesz, musisz ją najpierw usunąć. Ale nie można usunąć pojedynczej strony naraz - należy usunąć cały „blok wymazywania” (zwykle) 64 kolejnych stron (128 KB lub 256 KB w zależności od generacji). A po usunięciu bloku nie możesz pisać na stronach w dowolnej kolejności, musisz je zapisywać kolejno, zaczynając od pierwszej.

  3. Bloki z czasem się zużywają. Po pewnej liczbie cykli kasowania blok na stałe „zepsuje się”, przez co nie będzie już niezawodnie przechowywał danych. Strony mogą również rozwijać błędy danych w wyniku zapisu na innych stronach, a nawet w wyniku odczytów!

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

Edycja: Warto wspomnieć, że systemy plików z kronikowaniem nie przyniosą znaczącej przewagi nad systemami plików bez kronikowania.

S182
źródło
1
Urządzenia Flash używają warstwy mapowania bloków (FTL), więc nie piszesz do tego samego bloku fizycznego wielokrotnie. Android używa systemów plików takich jak ext4, więc nie widzę ważności twojego argumentu, że nie nadaje się do flashowania.
Vaddadi Kartick
Urządzenia z Androidem zwykle mają trochę pamięci RAM, a także flash, prawda?
Michael C
1
Ponowne mapowanie bloków nie zwiększa całkowitej liczby zapisów na blok, zanim blok ulegnie awarii, po prostu rozkłada operacje zapisu na całą kartę, dzięki czemu prawie każdy blok jest noszony z tą samą szybkością. Systemy z kronikowaniem używają więcej operacji zapisu, aby zrobić to samo, niż systemy bez kronikowania, więc całkowita liczba zapisów przed awarią karty nastąpi wcześniej w cyklu życia systemu z kronikowaniem.
Michael C
1
Android ma pewne problemy związane z pamięcią masową (opóźnienia we / wy) i implementuje polecenie TRIM, aby poprawić sytuację. Karty SD zostały zaprojektowane tak, aby były tanie i małe, a nie wytrzymałe. Istnieją alternatywy bardziej solidne, ale są droższe.
S182
1
Android używa JSF, ponieważ urządzenia te nieustannie zapisują informacje z kilku procesów i mają skłonność do nieoczekiwanego krzyku (bloki systemu operacyjnego, niski poziom naładowania baterii itp.) To nie jest najlepsze, ale potrzebują tego. Z drugiej strony operacje utrwalania w kamerach są znacznie prostsze, a JFS przyniósłby więcej problemów niż rozwiązań. System plików kroniki jest bardziej odporny i mniej podatny na korupcję, ale nie jest odporny. , w większości przypadków można naprawić FS bez kroniki za pomocą „skandowania”.
S182
2

Różne systemy plików wymagają różnej ilości pamięci RAM w systemie, który ich używa. System, który musi zapisać plik w systemie plików FAT, teoretycznie mógłby sobie poradzić z pojedynczym 512-bajtowym buforem, choć wydajność byłaby bardzo przerażająca. Rozszerzenie do dwóch lub trzech 512-bajtowych buforów znacznie poprawiłoby sytuację. Wyjście poza to poprawiłoby nieco sytuację, a uzyskanie optymalnej wydajności z większej karty wymagałoby więcej pamięci niż uzyskanie optymalnej wydajności z mniejszej, ale kamera, która zawierała tylko wystarczającą liczbę buforów, aby osiągnąć optymalną wydajność z mniejszymi kartami, nadal byłaby w stanie pracować z większymi, nawet jeśli mniej wydajnymi.

Trudniejsze zagadnienie dotyczy faktu, że standardy kart pamięci określają, że każda karta zachowuje się jak numerowany zbiór 512-bajtowego sektora, który można odczytywać i zapisywać niezależnie w dowolnej kolejności, ale nie w ten sposób dane są przechowywane na chipach w karty Układy pamięci używane w typowej karcie pamięci są podzielone na 528 bajtów; te z kolei są pogrupowane w bloki 256 lub więcej. Po zapisaniu strony nie można jej przepisać bez usunięcia jej i wszystkich innych stron w bloku. Teoretycznie karta SD mogłaby spełnić prośbę o zapisanie 512-bajtowego sektora poprzez skopiowanie do pamięci RAM wszystkich danych w swoim bloku, usunięcie bloku i ponowne zapisanie całego bloku, ale z nowymi danymi w jednym sektorze . W praktyce wydajność byłaby straszna. Zamiast, zapis sektora spowoduje, że karta SD wybierze pustą stronę, zapisze tam dane wraz z numerem sektora i różnymi informacjami pomocniczymi (strony powodują, że 528 bajtów zamiast 512), i jakoś śledzić, że jest to właściwe miejsce dla dane. Kiedy będzie brakować pustych stron, sterownik zidentyfikuje blok, którego strony zostały w większości zastąpione przez strony napisane ostatnio, skopiuje wszystkie wciąż aktualne strony z tego bloku do pustych bloków, a następnie usunie cały obecnie zbędny blok . Cała logika jest obsługiwana w całości przez samą kartę, bez żadnej interwencji ze strony aparatu. Kiedy będzie brakować pustych stron, sterownik zidentyfikuje blok, którego strony zostały w większości zastąpione przez strony napisane ostatnio, skopiuje wszystkie wciąż aktualne strony z tego bloku do pustych bloków, a następnie usunie cały obecnie zbędny blok . Cała logika jest obsługiwana w całości przez samą kartę, bez żadnej interwencji ze strony aparatu. Kiedy będzie brakować pustych stron, sterownik zidentyfikuje blok, którego strony zostały w większości zastąpione przez strony napisane ostatnio, skopiuje wszystkie wciąż aktualne strony z tego bloku do pustych bloków, a następnie usunie cały obecnie zbędny blok . Cała logika jest obsługiwana w całości przez samą kartę, bez żadnej interwencji ze strony aparatu.

Cała ta logika oznacza, że ​​oprócz FAT32 lub innego systemu plików widzianego przez kamerę, karta SD będzie musiała mieć własny system przydzielania i zarządzania blokami. Wszelkie problemy występujące w tym systemie mogą spowodować utratę danych, niezależnie od tego, jaki system jest na nim umieszczony. Teoretycznie wiele kart pamięci ma na celu zapewnienie, że nawet jeśli zasilanie zostanie nieoczekiwanie odłączone podczas niektórych operacji, karta będzie mogła albo przywrócić stan karty do stanu sprzed rozpoczęcia operacji, albo uruchomić ją do końca ( jeśli wszystkie niezbędne dane zostały zapisane, a karta po prostu czyściła zbędne dane). Niestety, karty różnią się tym, jak dobrze implementują taką logikę. Jeśli nieoczekiwana utrata zasilania zablokuje tabele zarządzania pamięcią karty,

Osobiście uważam, że lepiej byłoby, gdyby konsorcjum SD określiło system plików niezależny od FAT32, lub przynajmniej sprecyzowało, że nawet jeśli karta musi być czytelna jako wolumin FAT32, powinna być napisana przy użyciu komunikacji opartej na plikach protokół. Karta, która wie, które grupy sektorów są członkami każdego pliku, mogłaby zoptymalizować swoje procedury defragmentacji, a także mogłaby lepiej zabezpieczyć się przed utratą danych niż karta, która musiałaby przedstawić dysk jako wiązkę niezależnych 512-bajtów sektory, ale na lepsze lub gorsze to nie jest tak, jak są określone.

supercat
źródło
Myślę, że istnieje już standardowe rozwiązanie: warstwa odwzorowywania bloków ze standardowym systemem plików (NTFS, HFS +, ext4) na górze. I jest również używany w urządzeniach mobilnych, na Androidzie. Systemy operacyjne aparatu mogą być bardziej prymitywne, ale należy to naprawić.
Vaddadi Kartick
@KartickVaddadi: Warstwa remapowania bloków jest standardowa; Chodziło mi o to, że jeśli karta pamięci, która implementowała warstwę odwzorowywania bloków, była przynajmniej w pewnym stopniu świadoma układu systemu plików, mogłaby zoptymalizować układ odwzorowania bardziej efektywnie, niż jest to możliwe bez takiej wiedzy.
supercat
Jasne, ale wolałbym wziąć coś wypróbowanego i przetestowanego niż wymyślić nowe interfejsy między warstwą urządzenia blokowego a systemem plików. Nie mówimy tutaj o badaniach CS :) Chcę wziąć coś, co działa na moim komputerze i telefonie, i umieścić je w aparacie.
Vaddadi Kartick
@KartickVaddadi: Zaprojektowałem kilka systemów plików Flash z wyrównaniem zużycia dla urządzeń osadzonych z różnymi ograniczeniami. Jeśli system
równoważenia
... oto dane; Otóż ​​to. Chcę napisać inny plik; oto dane; to jest to ”, może zachowywać się nieco bardziej inteligentnie, niż gdyby miał po prostu garść pojedynczych sektorów do pracy i nie ma pojęcia, co reprezentują. Między innymi wszystkie bloki danych powiązane z każdym plikiem można oznaczyć tagami np. „blok 347 pliku o numerze 193,291,374, aktualizacja 273 837 199”.
supercat
1

Zakładając, że karta była po prostu zepsuta i nie wrzuciłeś jej ani nie nadpisałeś, zdecydowanie sugeruję wypróbowanie PhotoRec. (To wydostało mnie z nieco mniej złej sytuacji kilka miesięcy temu. Znaleziono nawet kilka zdjęć, które przetrwały, usuwane przez rok lub dwa).

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

Odnośnie dziennika FS, wiele razy miałem to samo pytanie. Jak powiedzieli inni, obecne nośniki flash są w rzeczywistości kruche w porównaniu z mediami magnetycznymi, a dziennikowanie jest trudne. Ponieważ wzorcem użytkowania aparatów jest na ogół robienie wielu zdjęć, przeczytaj je, a następnie usuń je wszystkie, nie ma potrzeby korzystania z zaawansowanych funkcji FS. Proste, przetestowane implementacje są prawdopodobnie ważniejsze niż marginalna korzyść z kronikowania. Dodatkową korzyścią jest głupia strategia alokacji FAT, która ułatwia takie narzędzia jak PhotoRec.

użytkownik25159
źródło
Myślę, że w tym przypadku użyłem PhotoRec. W każdym razie dzięki za link.
Vaddadi Kartick
1

1, Bóg nie może cię uratować, jeśli fizycznie zgubiłeś kartę. Co masz na myśli mówiąc, że zgubiłeś kartę na Bali?

2, kroniki FS są budowane na takie okazje, jak nagła awaria systemu operacyjnego lub nagła awaria zasilania. Utrzymują spójność metadanych FS, gdy zdarzają się te złe rzeczy. Nie pomagają, jeśli chcesz, aby usunięte pliki powróciły.

3, Zły blok jest najważniejszym problemem w magazynach opartych na NAND FLASH. Złe bloki pojawiają się, gdy pojawiają się pisma. Dlatego wybierając FS jako pamięć NAND FLASH, częstotliwość zapisu jest pierwszą rzeczą, którą należy wziąć pod uwagę. Oczywiście, jak wszyscy mówili, Journals FS przynoszą więcej rzeczy do napisania.

4, Dziennikarze FS oczywiście potrzebują więcej mocy. Bardziej skomplikowane, jasne. Ale nie są to główne powody, dla których nie przyjmujemy ich do NAND FLASH, tak myślę.

TADA ~~ To wszystko.

Garf
źródło
1. Zobacz mój komentarz do odpowiedzi AJ. 2. Nie usunąłem ręcznie plików. 3. Jak napisałem w innych komentarzach, w jaki sposób wyjaśnisz, w jaki sposób Android korzysta z kronikowanego FS we Flashu? Nie jest tak źle, jak sobie radzisz. Nietracenie zdjęć jest ważniejsze niż marginalne skrócenie żywotności karty.
Vaddadi Kartick
3
Większość dzienników FS potrzebuje jednego lub więcej procesów / wątków demona do zarządzania swoimi „dziennikami”. (Na przykład, kjournald w Linuksie dla EXT3) Trudno będzie je zastosować, jeśli env nie jest pełnoprawnym systemem operacyjnym, w którym nie mamy pojęcia procesu / wątku.
Garf
@KartickVaddadi Ponownie, proszę podać wskaźnik do niektórych badań pokazujących, że kronikowany system plików powoduje jedynie „marginalne” skrócenie żywotności karty. To drugi raz, kiedy to potwierdziłeś.
Philip Kendall
Dobre pytanie, ale pamiętaj, że Android go używa, jak już wiele razy mówiłem. Nie użyliby go, gdyby spowodowało drastyczne ograniczenie życia mediów, prawda? Poza tym mogę równie dobrze poprosić o zacytowanie badań wskazujących, że powoduje to drastyczne zmniejszenie życia :)
Vaddadi Kartick
Może powinniśmy zapytać @supercat, ponieważ jest on ekspertem i żadne z nas nie zacytowało danych.
Vaddadi Kartick
-1

Sam system plików nie musi być skomplikowany, ponieważ obrazy są po prostu zapisywane na karcie, nie ma prawie żadnej edycji pliku po początkowym utworzeniu i nie ma równoczesnych obaw dotyczących operacji wejścia / wyjścia, o które należy się martwić na kamerze.

Problemy z integralnością danych są faktycznie rozwiązywane na poziomie sprzętowym, ponieważ CAŁA pamięć flash jest z natury niestabilna. Kontroler na karcie SD wykonuje wiele własnych kontroli i sztuczek pamięci, aby upewnić się, że dane są prawidłowe. System plików kronikowania nie pomógłby w tym, ponieważ dotyczy integralności przechowywania danych, a nie integralności operacji na plikach.

Aparat wykorzystuje tak proste (i szybkie) operacje na plikach, że złożony system plików pociągnąłby za sobą dodatkowe koszty i złożoność, powodując wolniejsze operacje we / wy i potencjalnie wprowadzając kolejne błędy, które mogłyby spowodować utratę danych z powodu bardziej złożonej obsługi plików, ale nie zyskując na użyteczności w aparacie.

AJ Henderson
źródło
W moim przypadku system plików został uszkodzony, być może z powodu błędu w kodzie systemu plików aparatu, który uruchamia się w rzadkich przypadkach. Dzięki kronikowaniu system plików najprawdopodobniej pozostanie nieuszkodzony, co oznacza, że ​​nie stracisz tysięcy zdjęć.
Vaddadi Kartick
3
@KartickVaddadi - czy jesteś pewien, że system plików został uszkodzony, a nie sama karta SD? Problem z uszkodzeniem pliku w tabeli FAT nigdy nie powinien spowodować awarii całej karty, powinien być łatwy do odzyskania dla większości zdjęć, chyba że sama karta uległa awarii. Skąd masz pewność, co dokładnie nie powiodło się?
AJ Henderson
Udało mi się odzyskać większość zdjęć z laptopa za pomocą jednego z narzędzi do odzyskiwania, które ignorują system plików, odczytują wszystkie bloki na urządzeniu i próbują dowiedzieć się, jakie są pliki. Nie mogłem odczytać tego w aparacie, co oznaczało, że nie mogłem robić zdjęć przez resztę dnia i nigdy więcej nie odwiedziłem miejsc, które odwiedziłem tego dnia, więc była to przegapiona szansa.
Vaddadi Kartick
2
@KartickVaddadi - tak, ale mogła to być awaria systemu plików lub karty SD. Jeśli spis treści zostanie usunięty, nadal będziesz musiał wykonać odzyskiwanie w systemie plików, niezależnie od tego, czy korzystasz z FAT czy NTFS. Nadal nie jestem pewien, czy kronikowany system plików pomógłby. Główną zaletą kronikowanego systemu plików jest to, że może on odzyskać częściowo zapisany plik, ponieważ wie, że plik lub rekord katalogu jest zły. Najprawdopodobniej masz do czynienia z uszkodzeniem tabeli alokacji, która może być awarią dysku lub systemu plików.
AJ Henderson
2
@KartickVaddadi: Sądzę, że z zasady należy zawsze mieć pod ręką zapasową kartę, a jeśli używana karta wykazuje jakiekolwiek oznaki problemów, należy natychmiast przejść na zapasową, aby uniknąć zniszczenia jakichkolwiek danych, które można by odzyskać z problematycznej karty.
supercat