Bir sektörü bilerek SD kartta kasıtlı olarak nasıl kırabilir / bozabilirim?


138

Bazı gömülü donanım için bazı okuma / yazma kodlarının esnekliğini test etmem gerekiyor. Kontrollü bir çalışma için birkaç SD kartını nasıl feda edebilir ve bilinen birkaç sektörü nasıl bozabilirim?

Düşünebildiğim tek şey, birkaç milyon kez tek bir sektörün üzerine yazmak. Acaba Linux badblocks komut dosyası, yıkıcı testini tek bir sektörde birkaç saat boyunca tekrar tekrar çalıştırmak için oluşturulabilir mi?


20
Düşük seviye SD sürücüsünü, bozuk bir blok varmış gibi göstermek için değiştirebilir misiniz, yoksa söz konusu değil mi?
Mark Yisri

3
@MarkYisri, sürücünün çok erişilebilir olduğunu sanmıyorum. Kullandığımız sürücü ne olursa olsun, bellenimin geri kalanına bellek tahsisini en üst düzeye çıkarmak için son derece temeldir. Ayrıca, mümkün olsaydı, bu benim yeteneğimin ötesinde olurdu.
Gabe Krause

3
Bir SD kart emülatörü oluşturabilir misiniz? En basit proje değil, dikkat et.
user20574

11
Amaç göz önüne alındığında, bazı ikinci el SD kartları az para için satın alabilir ve kolayca hatalı bir kart alabilir veya özel olarak hatalı kartları aramayı "aradığınızı ..." ilan edebilirsiniz. Veya arızalı kartlar için eBay'i arayın. Sonra kartı test edersiniz ve arızalı alanların pozisyonunu bilirsiniz.
FarO

28
Herhangi bir profesyonel fotoğrafçıya sorun. Kesinlikle bir yığın kabataslak SD kart alacaklar.
J...

Yanıtlar:


166

Alternatif bir yaklaşım bu Mayıs ayı Bir işe yara.

Kodunuz Linux altında çalışıyorsa, "hatalı" mantıksal bir cihazla test edebilirsiniz. dmsetup G / Ç hataları döndüren aygıtlar oluşturabilir. Sadece cihazınızı kullanarak oluşturun error ve / veya flakey hedef. itibaren man 8 dmsetup:

error
Bu alana giden tüm G / Ç'larda hatalar var. Test etmek veya içinde delik bulunan cihazlar oluşturmak için kullanışlıdır.

flakey
İle benzer bir eşleme oluşturur linear hedef, ancak periyodik olarak güvenilmez davranış sergiler. Test sırasında hatalı cihazları taklit etmek için kullanışlıdır.

Not: flakey hedef kullanım belgelenmiştir İşte . Temel örnek İşte .

Bildiğim kadarıyla bir G / Ç hatası derhal bildirilecektir, bu gecikmeyi, durmayı vb. Bekleyebileceğiniz gerçek SD kart davranışlarından farklıdır. Bununla birlikte, bu yaklaşımın bazı durumlarda, en azından hızlı performans için yararlı olabileceğini düşünüyorum. ön test ya da öylesine.


34
Kutusuzca düşünmekten memnun oldum! Blok seviyesinde SD ile 80MHz Atmel yongası üzerinden arabirim kullanıyoruz ve gerçek bir işletim sistemi yok.
Gabe Krause

1
@GabeKrause Bu durumda, bu cevabın yararı, Linux blok cihazı API'sinin, gömülü aygıt sürücünüzün API'sine ne kadar benzeyebileceğine bağlıdır.
Qsigma

dmsetup ayarlamak için bir komut error her zaman okuma hatası veren cihaz: stackoverflow.com/questions/1870696/...
Peter Cordes

1
Bunun daha iyi bir çözüm gibi göründüğünü kabul ediyorum. İlk önce herhangi bir donanım üzerinden çoğaltabilirsiniz. Ayrıca farklı hata modlarını simüle edebilirsiniz. Örneğin, iyi çalışan bir 16GB USB flash sürücüm var. Bir süre sonra belirli bir alanda yanlış veri döndürmeye başlar. Herhangi bir FS hatası yoktur. Dosyayı okudunuz ancak içerik farklı. Bazı sektörler açıkça kararsız. Ancak, belirli bir cihazın nasıl davranacağı önceden bilinemez.
akostadinov

75

Bu adam kötü blokları işaretlemek için kullanılan SD kartların içindeki mikrokontrolcüyü hackledi: https://www.bunniestudios.com/blog/?p=3554

Aynısını yapabilir ve keyfi olarak blokları hatalı olarak işaretleyebilirsiniz.

Bugün Kaos Bilgisayar Kongresi'nde (30C3), xobs ve ben   bazı SD kartların izin veren açıkları içerdiğini bulma   isteğe bağlı kod yürütme - hafıza kartında. Karanlıkta   tarafında, hafıza kartında kod yürütme bir MITM sınıfı sağlar   (ortadaki adam) saldırıları, kartın bir gibi davrandığı görünüyor   yol, ama aslında başka bir şey yapar. Işık tarafında da   donanım tutkunları için erişim kazanma imkanı sağlar.   çok ucuz ve her yerde bulunan bir mikrodenetleyici kaynağıdır.

.

Bu algoritmalar, çalışmak için fazla karmaşık ve cihaza özgüdür.   uygulama veya işletim sistemi düzeyinde, ve böylece her flaş çıkıyor   bellek diski çalıştırmak için oldukça güçlü bir mikrodenetleyici ile birlikte gelir.   özel disk soyutlama algoritmaları kümesi. Küçültücü microSD bile   Kartta bir değil, en az iki fiş var - denetleyici ve   en az bir flaş çip (yüksek yoğunluklu kartlar birden fazla flaş yığınlayacaktır   ölmek).

.

Gömülü mikrodenetleyici tipik olarak yoğun bir şekilde değiştirilmiş 8051 veya   ARM CPU. Modern uygulamalarda, mikrodenetleyici yaklaşacaktır   100 MHz performans seviyesi ve ayrıca birkaç donanıma sahip   hızlandırıcılar ölür. Şaşırtıcı bir şekilde, bu denetleyicileri ekleme maliyeti   cihaza muhtemelen 0,15 - 0,30   hem flash belleği hem de denetleyicileri değiştirebilen şirketler için   aynı iş biriminde. Bunları eklemek muhtemelen daha ucuzdur   Her flaşı tamamen test etmek ve karakterize etmek yerine mikrodenetleyiciler   Yönetilen flash cihazların neden daha ucuz olduğunu açıklayan bellek yongası   dahil edilmemiş olmasına rağmen, çiğ flaş yongaların bit başına   mikrodenetleyici.

.

İşin özü donanım yazılımı yükleme ve güncelleme mekanizmasının neredeyse olduğu   zorunlu, özellikle üçüncü taraf kontrolörleri için. Son kullanıcılar   Her şey fabrikada gerçekleştiğinden, bu sürece nadiren maruz kalıyor,   ancak bu, mekanizmayı daha az gerçek yapmaz. Benim keşiflerimde   Çin’deki elektronik pazarlarının başında, dükkanların yandığını gördüm   kartın kapasitesini "genişleten" kartların bellenimi - diğer   bir kartın kapasitesini rapor eden bir firmware yüklerler.   mevcut depolamadan çok daha büyük. Bu gerçeği   satış noktasında mümkün olması muhtemel, güncelleme anlamına gelir.   mekanizma güvenli değil.

30C3'teki konuşmamızda, belirli bir konuyu keşfederek bulgularımızı rapor ediyoruz.   Mikrodenetleyici markası, Appotech ve AX211 ve AX215   teklifleri. İletilen basit bir "vuruş" sırasını keşfediyoruz   üretici tarafından ayrılmış komutlar (yani, CMD63 ve ardından   Controller A ’,’ P ’,’ P ’,’ ’(’ O ’)   modu. Bu noktada, kart sonraki 512 baytı kabul eder ve çalıştırılır   kod olarak.


10
Tüm cevaplar arasında, bu muhtemelen OP'nin istediği şeye en yakın olanı.
Cort Ammon

11
Harika bir okundu!
Gabe Krause

@Twisty ilgili parçaların bir kısmını kopyaladı.
FarO

2
Tavşan deliğinden aşağıya SD kart mimarisinin dünyasına gidiyorum.
Tejas Kale

38

Bu genellikle işe yaramaz çünkü çoğu SD kart (veya eMMC) statik ve dinamik aşınma seviyelendirme kullanır, yani akıllı bir kontrol cihazı yazma talimatınızı yorumlar ve en az kullanılan flaş sektörlerinden birine eşler.

Yapabileceğiniz tek şey, tedarikçilerinizle iletişim kurmaya çalışmak ve onların veri sayfalarını istemek; aşınma seviyelendirme algoritmalarının durumunu elde etmenin bazı (satıcıya özgü) yolları olabilir. Bu, potansiyel olarak flaşın durumunu / kullanımını sorgulamanıza izin verir. Ya da şanssız olabilir ve bu olmayabilir.

Amacınız flaşı gerçekten yok etmekse, yapabileceğiniz tek şey büyük okuma ve yazma çevrimleri çalıştırmak ve sürekli okuduğunuz verilerin tutarlı olduğunu kontrol etmektir. Örneğin. iki büyük dosya oluşturun, sağlama toplamlarını depolayın ve sağlama toplamlarını doğrulamak için bunları okuyun / yazın. Flaş ne kadar büyük olursa, bu işlem o kadar uzun sürer.


2
Eğer SD kart tamamen veriyle doluysa, bu durum hala fazla kalmayacaksa bu işe yaramayacak mı? Çok fazla gizli gizli sektörleri olduğunu sanmıyorum.
Ruslan

2
@Ruslan Bir sektörün bir şeyle dolu olup olmadığını cihaz bilmek zorunda değildir. Yalnızca istek üzerine hangi sektörlerin istek üzerine teslim edileceğini ve hangi sektörlerin istek üzerine yazacağını bilmek yeterlidir. Ve sonra, bazı açıklanmamış bir algoritmayı takip eden sektörleri temsil etmek için başka bir fiziksel bellek kullanmasını sağlayan bir soyutlama katmanı olabilir ... - Ve "tam" sadece "şu an doldurulan bloklar için ulaşılan eşik" anlamına gelir.
Alexander Kosubek

6
@Ruslan: Cihazın tamamında veri olsa bile, aşınma seviyelendirme hala etkili olabilir: örneğin, A sektörü bir kez yazılmışsa ve B sektörü 1000 kez yazılmışsa, o zaman başka bir yazının geldiği zaman B sektörü kartı, iki sektörün verilerini değiştirebilir, böylece A sektörü, B sektörünün verilerini içerir (ve büyük olasılıkla birçok kez üzerine yazılır - ancak bu tamamdır, çünkü tazedir) ve B sektörü, A sektörünün verilerini içerir ( umarım çok değişmez). Açıkçası, cihazın aynı zamanda hangi sektörün nerede depolanacağının haritasını da saklaması gerekiyor.
psmears

2
@GabeKrause evet, bu canavarın doğası. En düşük seviyede nand veya ne de flash cipsiniz var (günümüzde her şey nand kullanıyor) ve bus'u sonlandıran nand çipinin önünde akıllı bir kontrol cihazı var (örneğin, bir usb kartı için usb veya sd kart için mmc ), ve bu çip eşleme / aşınma seviyeleme vb. işlemlerden sorumludur, flaşı sizden uzaklaştırır. Eğer nand'ı gömülü Linux'ta kullanıyor olsaydınız, örneğin ubifler sizin için yapardı.
amo-ej1

2
SD kartlarda "Flash Çeviri Katmanı" uygulayan bir mikrodenetleyici vardır - blok istekleri bu mikrodenetleyici tarafından ham NAND komutlarına çevrilir. Bazı SD kartların, MCU ürün yazılımını değiştirmek / güncellemek için gizli komutları vardır ve üzerinde bazı ters mühendislik çalışmaları bile vardır. Ham NAND dışındaki çoğu flaş depolama aygıtı (çoğu ev yönlendiricisi gibi bazı durumlarda görünebilir) büyük olasılıkla "aşırı tedarik edilir" anlamına gelir - bu, 1GB SD kartınızın, dolu olduğunda aşınma seviyesini kapsayacak şekilde üzerinde 1024 MB + 128 MB ham NAND alanı gibi bir şeye sahip olduğunu gösterir ve ayrıca kötü flaş sayfalar için sektörel koruma.
LawrenceC

32

Çalışma sıcaklığını artırarak transistörün aşınmasını artırabilirsiniz. Isıtılmış bir çipte (70-120 ° C) yazma silme döngüleri kullanın; daha hızlı giyecek.


18
Aşırı depolama sıcaklığı da zararlıdır, bu nedenle yongayı 120C ° 'de (veya hatta daha fazla) bir süre “pişirmek” daha pratik olabilir, ardından hataları kontrol edin.
Dmitry Grigoryev

2
Kartın beslenmesinde hafif bir aşırı gerilim olması da mümkün olabilir ve benzer şekilde deneye ihtiyaç duyabilir.
Chris H

Düşük gerilim, denetleyici kilitlenmeleri gibi farklı hata türlerine de neden olabilir.
user20574

18

Önsöz: Bu seçenek ek programlama ve donanım değişiklikleri gerektiriyor ancak ana bilgisayar için büyük olasılıkla saydam olan kontrollü okumalar yapılmasını sağlıyor.

Bir SD kartta birden fazla G / Ç seçeneği vardır, ancak SPI üzerinden kontrol edilebilir. Bir SD kartı alıp, pinleri bir mikrokontrolcüye (Arduino gibi) takmak için değiştirecek olursanız, Arduino'nun SD kartı taklit etmesini ve SD kartı okuyan cihaza şeffaf olmasını sağlayabilirsiniz. Mikrodenetleyicideki kodunuz gerektiğinde bilerek kötü veriler getirebilir. Ek olarak, mikrodenetleyicinin üzerine bir SD kartı da koyabilirsiniz, böylece okumalar gigabayt testine izin vermek için mikrodenetleyiciden SD karta geçebilir.


3
Çoğu yüksek hızlı cihaz (PC kartı okuyucuları dahil), dört bit SD'yi desteklemeyen bir kartla çalışmayı reddedecektir.
Dmitry Grigoryev

1
OP, sd kartlar için SPI'yı desteklemesini daha olası kılan kartı kullanacak gömülü bir sistem olduğunu söyledi.
Eric Johnson

3
Bu konuda bir değişken, ancak zor bir iş, bulabileceğiniz bir SD kart bulmak olacaktır. bellenimi yeniden başlatmak .
Peter Taylor

2
Bu çok ilginç! Gömülü sistemimiz SPI üzerinden G / Ç kullanıyor. Böyle bir ilaveyi gerçekleştirmek için donanımımızı değiştirecek bant genişliğine sahip olup olmadığımdan emin değilim, ama bence mükemmel bir düşünce.
Gabe Krause

2
Dinamik aşınma seviyelendirme hakkında eğitim almak, bilinen kötü sektörlerle stratejik olarak "kötü" bir SD kart oluşturmanın soruyu ortaya koyduğumdan çok daha zor (veya mümkün değil) olduğuna inanmamı sağlıyor. Şu anda yeteneğimin kapsamı dışındayken, bu muhtemelen @Olafm'ın izlediği en kontrol edilebilir ve teknik olarak umut verici bir yaklaşım gibi görünüyor. Veri aktarımı sırasında önceden tanımlanmış herhangi bir sektördeki verileri kesmek ve "bozmak" için ara donanımın özelleştirilmesi iyi bir yaklaşım gibi görünüyor.
Gabe Krause

15

Ebay / aliexpress'e gideceğim ve Çin'den "gerçek olamayacak kadar iyi" olan en ucuz SD kartı alacağım. Genellikle hatalı sektörlerle birlikte gelirler veya gerçekte olduklarından çok daha büyük olacak şekilde ayarlanmış yazılımlara sahiptirler. Her iki durumda da, test için kullanmak için hatalı SD kartla bitmelisiniz.


İlginç bir yaklaşım, ancak kötü blokların saklanan kod üzerindeki etkilerini test etmek için kötü alanlara nasıl yazardınız?
fixer1234

@ fixer1234, 32GB olduğunu ancak aslında sadece 128 MB olduğunu söyleyen bu SD kartlardan birine sahiptim. Fotoğraf makineme koydum ve 128 MB’ın ötesinde fotoğraflar çekebildim, ancak yalnızca ilk fotoğraflar okunabildi. Geri kalanlar listelendi, ancak kırıldı olarak geri okundu. Şikayet etmek için çok geç kaldığımızda ilk olarak kartla ilgili sorunları fark etmenizi istediklerini tahmin ediyorum ...
GuzZzt

11

Bir zamanlar, yıllar önce, oldukça üzülmüş bir anne için bir SD karttan bir dizi mezuniyet fotoğrafı ve videosunu almak için para aldım. Yakın incelemelerden sonra kart, dış durumda gözle görülür bir çatlak nedeniyle fiziksel olarak hasar görmüş ve o zamanlar en güvenilir kurtarma programlarını bile tamamen okuyamamış hale getiren, özellikle birkaç erken, kritik sektör olan birkaç kötü sektöre sahip . Ayrıca, adli veri araçları geçmişe bir servete mal oldu.

Aynı marka / boyutta bir SD kart aldım ve veriyi kötü karttan iyi kartına kopyalamak için kendi özel ham veri dökümümü ve geri yükleme yardımcı programını yazdım. Tesis kötü bir sektöre her çarptığında, o sektör için tüm sıfırları yazmadan önce birkaç kez yeniden dener ve vazgeçmek ve durdurmak yerine başarısızlığı görmezden gelir ve bir sonraki sektöre geçer. Yeniden deneme girişimleri, bazı sektörlerin hala% 40'lık bir okuma başarı oranına sahip olduğunu fark ettiğimden beri yapıldı. Veriler yeni SD kartta bulunduktan sonra, daha önce başarısız olan kurtarma araçları, minimum veri kaybı / bozulma ile kusursuz bir şekilde çalıştı. Genel olarak, tüm dosyaların yaklaşık% 98'i kurtarıldı. Daha önce silinmiş olan bazı maddeler de kurtarıldı, çünkü hiçbir şey silinmedi - sadece bu şekilde işaretlendi ve yavaşça üzerine yazıldı. Biraz sıkıcı bir veri kurtarma çalışması olarak başlayan şey benim daha unutulmaz ve ilginç kişisel yazılım geliştirme projelerimden biri oldu. Merak ediyorsanız, anne heyecanlanmıştı.

Her halükarda, bu hikaye, verilere hala erişilebilecek bir SD karta fiziksel olarak zarar vermenin mümkün olduğunu, ancak ancak zorlukla işleyen sektörlere sahip olduğunu ve bundan okumaya çalışan herhangi bir şeyin bunu yapmakta zorlandığını göstermektedir. SD kart plastik oldukça çürük olma eğilimindedir, bu yüzden ucuz olanları bükmek veya kesmek hile yapabilir. Kilometreniz değişebilir.

Ayrıca bölgenizdeki bazı veri kurtarma yerlerinden de bilgi alabilirsiniz. Çeşitli başarısız veya başarısız cihazlardan veri kurtarma konusunda uzman olduklarından, bazı yararlı giriş / ipuçlarına sahip olmalı ve hatta onlardan alabileceğiniz önceden hazırlanmış bazı SD kartlarına (örneğin eğitim amaçlı) sahip olmalıdırlar.


2
Bu programı çevrimiçi olarak yayınladınız mı? Cephaneliğime eklemek harika olurdu.
Ploni

1
Bu noktada, muhtemelen teknolojideki ilerlemeler (derleme olmayabilir) ve kullandığım düşük seviyeli sistem çağrıları yapıldığında bile düzgün çalışmadı. Ayrıca, eski yazılımımı mothball'lardan çıkarmaya çalışmaktan daha önce kullanmaya daha uygun olacak birkaç modern, açık kaynaklı adli cihaz / sürücü klonlama aracı da var.
CubicleSoft

Umarım sadece bazı parametreler verebilirsiniz dd Bugünlerde buna benzer şekilde davranmasını sağlamak için. Emin değilim ama.
wizzwizz4

@ wizzwizz4, kurtarma ekibine bak.
hildred

"Ayrıca, adli veri araçları da bir servete mal oldu." Hala yaptıklarından eminim.
jpmc26

5

Bu cevap @Ruslan'ın yorumunda bir genişlemedir

  1. SD kartınızı yaklaşık% 99,9'a kadar doldurun
  2. Kalan% 0,1'in içeriğini sürekli olarak yeniden yaz (Yazma-silme-yazma B-silme - Yazma ...)
  3. Kartı zaten kırıp kırmadığınızı test edin (periyodik olarak)

Olası alternatif:

Bunun sizin amacınıza uygun olup olmadığından emin değilim, ama belki de kartınıza fiziksel olarak zarar vermek yeterli olacaktır, bu da çok daha hızlı olabilir.


6
Kartın% 99'a doldurulması, yıpranma dengelemesinin tüm amacı, bu tür erken zararları tam olarak önlemek olduğundan yardımcı olmaz. Karta fiziksel olarak zarar vermek neredeyse kesin olarak başlangıçta başlamamış bir karta neden olacaktır.
Dmitry Grigoryev

2
@DmitryGrigoryev Kartta olmadığı sürece aşınma dengelemesi nasıl yardımcı olacaktır (bu durumda engel) çok resmi kapasitesinden daha fazla hafıza?
ispiro

12
@ispiro Örneğin, bir dahaki sefere yüksek yazma sayısına sahip bir sektörün üzerine yazıldığında, içeriği düşük yazma sayısına sahip bir sektörle değiştirilebilir.
Dmitry Grigoryev

1
@DmitryGrigoryev Bu cevabı doğru yorumlarsam lvling yapmayan SD kartlar olmalı: electronics.stackexchange.com/a/27626/16104
Dennis Jaheruddin

1
@DennisJaheruddin Evet, eski kart böyle yapmaz. bu kartlarla, tahsis tablosundaki sektör tamamen tükenene kadar boş bir dosyayı tekrar tekrar oluşturmak / kaldırmak yeterlidir.
Dmitry Grigoryev

3

Dengesiz bir güç kaynağı veya daha yüksek voltaj sinyali vermeyi deneyebilirsiniz.

Bildiğim bir cihaz ailesi için yaygın bir hata, SD kartının bozulması ve aralıklı pil teması arasında güçlü bir korelasyona sahip.


3

Daha eski, düşük kapasiteli SD kartlar (16 MB-ish) TSOP / TSSOP tarzı paketlerde flaş çipleri kullanır. SMT'yi yeniden işleme yeteneğine sahip bir atölye (eğer gömülü işler yapıyorsanız, bu beceriyi kurum içinde tutabilirsiniz, aksi takdirde tahta seviyesinde telefon / dizüstü bilgisayar onarımı yapan küçük şirketleri kontrol edin), bu çipi aklınıza uygun şekilde ayırabilir ve yeniden tarar, böylece okunabilir ve yazılabilir. cihaz programlayıcısına sahip ham (ECC kodları dahil).

Yine de, çoğunlukla test yapacağınızı unutmayın:

  • Cihazınız, dahili hata düzeltme ile ortaya çıkan olası zamanlama sapmaları / hıçkırıklarını nasıl ele alacaktır?

ve en kötü durumda

  • Cihazınız, terminal olarak arızalı bir SD kartı nasıl kullanıyor?

Sadece bir SD karttan ne sebeple olursa olsun düzensiz davranışlarla nasıl davrandığını kontrol etmek istiyorsanız, arabirim hatlarına elektriksel gürültüyü sokmak en iyisidir (örneğin, bir FET veri yolu anahtarını ara sıra ve rastgele zamanlarda bir anda değiştirerek) saçma bir sinyal kaynağına (ancak doğru elektrik seviyesinden).


Son derece başarısız olan SD kartlar "elektriksel gürültü" üretmezler, sadece yazma işlemleri için hata kodları döndürürler.
Dmitry Grigoryev

2

OlafM'in cevabı ile ilgili fakat farklı: SD kart protokolünü konuşmak için kendi mikrodenetleyicinizi programlayabilir ve istediğiniz davranışa benzeyebilirsiniz.


1

FAT32 Master Boot Record alanı muhtemelen en kötüye kullanmaya açıktır, çünkü mantıklı bir seviyede daima aynı yerde olması gerekir. (Belki de bu, kötü sektörlerin yumuşak bir şekilde yeniden ele alınmasıyla ele alınmaktadır, ancak bunun tüm donanımlara uygulandığından şüpheliyim.) sfdisk bir döngüde ve bunu bu şekilde mahvedebilir misiniz bakın.

Ancak, yazılımdaki kötü donanımı kullanmaya çalışmak yerine, donanımın güvenilirliğini geliştirmek için elinizden geleni yapmanız için yalvarıyorum. SD kartların sorunu her türlü garip şekilde başarısız oluyor. Okunamaz hale gelirler, yazılamazlar, size kötü veriler verirler, işlemler sırasında zaman aşımına uğrarlar, vb.

İşte en sevdiğim hatalardan biri, "büyük veri modu":

bad sd fake big data

SD kartlar, muazzam maliyet baskısı altında olan emtia tüketici ürünleridir. Parçalar hızla değişiyor ve veri sayfalarına ulaşmak zor. Sahte ürün duyulmamış değil. Ucuz depolama için onlar yenmek zor, ancak SSD'ler güvenilirliği bir öncelik haline getirirken, SD kartların önceliği hız, kapasite ve maliyettir (muhtemelen bu sırada değildir).

İlk savunma hattınız, çıkarılabilir bir eMMC parçasını çıkarılabilir bir SD kart yerine saygın bir üreticiden gelen gerçek bir veri sayfasıyla kullanmak. Evet, GB başına maliyeti daha yüksek, ancak parça daha uzun bir süre üretimde olacak ve en azından ne aldığınızı biliyorsunuz. Parçayı aşağı lehimlemek aynı zamanda çıkarılabilir bir kartla bir dizi olası sorundan (yazma sırasındaki kartlar, zayıf elektrik teması vb.) De kaçınır.

Ürününüzün çıkarılabilir depolamaya ihtiyacı varsa veya herhangi bir şeyi değiştirmek için henüz çok geç ise, "endüstriyel" sınıf kartlar için fazladan para harcamayı düşünün ya da atılabilir nesneler olarak kabul edin. Yaptığımız şey (Linux altında) fsck Herhangi bir hata bildirildiğinde kart önyüklenir ve yeniden biçimlendirilir, çünkü bu kullanım durumunda yeniden biçimlendirme kabul edilebilir. Sonra biz fsck tekrar dene. Yeniden biçimlendirmeden sonra hala hataları bildirirse, onu RMA olarak değiştiririz ve donanımı eMMC kullanan daha yeni bir değişkenle değiştiririz.

İyi şanslar!


Sana bir başparmak verdim. Çok sayıda SD kart kullanıyorum ve yılda birkaç kez bir tanesinin bozulduğunu gördüm. Daha önce hiç düşünmemiştim, ancak kendi deneyimlerime dayanarak başarısız kartlarım, sonuçta değersiz hale gelmeden önce başarısız bir FAT belirtileri sergilediler. Burada bir şeylerin olduğunu düşünüyorum :) Bu yüzden basitçe dosyaları oluşturmak ve silmek FAT'yi engellemek zorundadır.
jwzumwalt

1

Belki de istediğin yön bu değil ama sd kartımı çıkarırken radyo veya dizüstü bilgisayarım okurken 1/5 veya 1/10 kez düştü kartını garanti ediyor. Kartların okuma sırasında gücü kesilmiş olarak iyi görünmüyor ve muhtemelen yazıyor gibi görünüyor. Robert Calhoun'un aşağıdaki yorumları okuduktan sonra, FAT'a zarar verebileceğine inanmamı sağlıyor. Sadece okumanın neden bir çökmeye neden olduğunu bilmeme rağmen - devam eden herhangi bir yazı olmamalı mı?


Bu, FS'ye zarar verebilir ancak aslında kötü sektörler yaratacağından emin değil.
akostadinov

Size kartı çöktüğü ve yeniden biçimlendirme gerektiren bir gerçek olduğunu söyleyebilirim. Bunu SD kartlarla, bir Ahududu Turtasına, dizüstü bilgisayarıma ve birkaç ev cihazıma yaptım.
jwzumwalt

2
Yeniden biçimlendirme gerektirir! = sektörler . Dosya sistemi, evet. Belki sektörler.
wizzwizz4

1

SD kartınız FAT32 olarak biçimlendirilmişse, 2 yağı onaltılık olarak düzenleyebilir ve bir sektörü doğru onaltılı kodla kötü olarak işaretleyebilirsiniz. Bu, sadece belirli bir yerde kötü bir sektör bulması gereken bir yazılımı mantıksal olarak test etmek istiyorsanız bir hiledir; SD kartınıza da zarar vermeyecek, reformat normal durumuna dönecektir.


1
Süper Kullanıcıya Hoşgeldiniz! Bu ilginç bir yaklaşım gibi görünüyor - belki de onaltılı düzenlemeyi nasıl yapacağınızı açıklayabilir misiniz? Teşekkürler.
Ben N

Bence Linux komutu hdparm hile yapacak: daha sonra düzenleyebileceğiniz bazı sektörleri kaydetmenize ve ardından kartınıza geri yazmanıza izin verecek. vfat ve man hdparm ile ilgili belgeleri bulmanız gerekiyor. Üzgünüm, hiçbir zaman bir windows bilgisayara yakın değilim.
Emile De Favas

--make-bad-sector bayrak umut verici görünüyor! Bununla birlikte, bunun yalnızca bu komutu çalıştıran linux sisteminde çalışıp çalışmayacağını söyleyemem. Umarım bu komut hdparm --make-bad-sector 20000 /dev/sd# nasıl olsa sektör 20000'i kötüleştirir ve linux kullanmayan gömülü donanım aygıtımda kötü olarak algılanırdı. Düşüncesi olan var mı?
Gabe Krause

0

Acaba Linux badblocks komut dosyası, yıkıcı testini tek bir sektörde birkaç saat boyunca tekrar tekrar çalıştırmak için oluşturulabilir mi?

Tek bir sektörde - hayır, çünkü SD kartın içindeki aşınma seviyelendirme kodu her yerde mantıksal blokları yeniden eşler.

Ama kolayca koşabilirsin badblocks -w neden olana kadar bir döngüde bazı görünmesi için hatalı bloklar. Böyle bir şey çalışması gerekir:

while badblocks -w /dev/xx; do :; done

Kötü blokların tespit edilmemesi durumunda kötü blokların 0 döndürdüğünü ve and 0 olduğunu varsayarsak (man sayfası söylemez ve kaynak kodunu kontrol etmedim.)

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.