SD kartın bozulmasını önleme


11

Katıştırılmış linux cihazım, dahili teşhis için çok fazla olan belirli teşhis verilerini kaydetmek için bir SD kart kullanıyor.

Sorun, aygıt beklenmedik bir şekilde kapatılırsa, karttaki dosya sistemi (FAT32) bozuktur.

Beklenmedik elektrik kesintilerini veya kullanıcının bu şekilde kapatılmasını önlemenin bir yolu yoktur ve cihaz nispeten bakım gerektirmemelidir. Daha da kötüsü, veriler sürekli yazılır, bu nedenle bozulmalar çok sık görülür ve Linux hatalı FS yeniden tespitlerini tespit ettikten sonra sessizce salt okunur.

Bunu hafifletmek için hangi yöntemleri önerirsiniz? Başlangıçta fsck.vfat dosyasını otomatik olarak çalıştırmak yeterli mi?

Biraz daha bilgi:

  • Kartın kullanıcı tarafından çıkarılabilir olduğu düşünülmemelidir. Dahili disk olarak düşünülmelidir. Üzerinde depolanan tüm veriler ağ üzerinden veya bir USB sürücüsüne indirilebilecek ve sistem otomatik olarak en eski girişleri temizleyecektir. Bu, ortalama PC'nizde okunabilir olması gerekmediği anlamına gelir.
  • Sistem şu anda FAT, yafflar ve jffs2'yi desteklemektedir. Çekirdeğe başka dosya sistemleri eklemek mümkündür, ancak başka yollar varsa, önce onları tercih ederiz.
  • Yazma, veri kaybı olmadan birkaç dakika bile talep üzerine askıya alınabilir.
  • kısmi veri kaybı veya küçük yolsuzluk kabul edilebilir. Günlük tutmanın tamamen durdurulması söz konusu değildir.
  • güç olayları çoğu zaman önceden kestirilemez.
  • sistem ARM9, 200MHZ, 64MB RAM, 32MB dahili flaş üzerinde çalışıyor ve birincil rolü için CPU gücünün çoğunu kullanıyor. Süslü ve ağır kaynaklara yönelik çözümler düşünürken bunu göz önünde bulundurun.

3
Muhtemelen zaten düşünmüşsünüz, ancak bu soruda dolaşan diğerleri için belirtilmelidir: Çoğu flash kartın (SD, CF, vb.) Sadece birkaç bin döngü yazma toleransı vardır (en iyi ihtimalle). Veri kaydı veya benzer görevler için normal kartların kullanılması, sonunda (ve genellikle insanların düşündüğünden daha kısa sürede) onları öldürür.
Chris S

@ChrisS: Çoğunlukla eklenmiş olan ve en eskisini en yeni girdilerle değiştiren, özellikle de kartı doldurmak için ayların olduğu yazımların çok iyi yük dengelemesinin doğasında var. Sorun FAT girişinin kendisinde olabilir, ancak denetleyicinin bu konuda mantıklı bir şey yaptığına inanıyorum.
SF.

Cihazınız kapalıysa ve bu verileri karta yazmazsa maliyeti nedir? Tanılama verileri yazılmadıysa, çok fazla zaman veya para kaybedecek veya sadece günlük dosyalarınız olmayacak mı?
Freiheit

1
@Freiheit: Müşteriler için pazarlanan tamamen önemsiz olmasa da oldukça belirsiz bir özellik eksik ve ek olarak bir başkasının gerçekten kötüleşmesi ve günah keçisi araması durumunda mahkemede savunma yollarından birini kaybediyoruz. Şey, olası arızadan önceki verilerdir - en değerli olanıdır - cihazın kendi hatalarının felakete yükseldiğini değil, son ana kadar doğru çalıştığının bir kanıtıdır.
SF.

Kayıt edilmiş. Önemli bir şeyin verilerini açıkça yakalıyorsunuz!
Freiheit

Yanıtlar:


8

Sen kullanabilirsiniz block2mtdsen PowerOff veri kaybı veya dosya sistemi yolsuzluk sorununuzu çözecek SD kart, başka bir yerde istihdam gibi görünüyor (2) dosya sistemlerini işlem Jffs2 veya yaffs kullanmak için sürücü.

Bunu yapmak başka sorunlara neden olabilir. SD kartın, aşınma seviyelendirme ve sektör yeniden eşleme için kendi mekanizmalarına sahip olması muhtemel olduğundan, bunlar jffs2 ve yaffs uçlarının uygulamalarını engelleyerek SD kartınızın ömrünü veya performansını azaltabilir. Bu bir sorun değilse, denemeye değer olmalıdır.


2GB SD kart doldurmak için ay veya iki kez, tamamen rastgele yük dengeleme ile bile aşınma sınırına ulaşmak bu bir sorun olmamalıdır.
SF.

5

Kullandığınız çekirdeğin vfat için flush ve / veya sync bayrağını destekleyip desteklemediğini kontrol edin (bazı sürümler bunu görmezden geliyor, dikkatli olun!).

Ya da her şey bir dosyaya (ham günlük akışında olduğu gibi!) Veya birkaç sabit boyutlu dosyaya (bölümleri kullanın;) gidebilirse , dosya sistemini tamamen ortadan kaldırın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.