การทำให้การ์ด SD เสียหาย


11

อุปกรณ์ลินุกซ์ในตัวของฉันใช้การ์ด SD สำหรับบันทึกข้อมูลการวินิจฉัยบางอย่างมากเกินไปสำหรับแฟลชภายใน

ปัญหาคือหากอุปกรณ์ถูกปิดโดยไม่คาดคิดระบบไฟล์ (FAT32) บนการ์ดเสียหาย

ไม่มีวิธีการป้องกันไฟฟ้าดับที่ไม่คาดคิดหรือผู้ใช้ปิดเช่นนั้นและอุปกรณ์ควรจะค่อนข้างบำรุงรักษาฟรี ที่แย่กว่านั้นคือข้อมูลจะถูกเขียนอย่างต่อเนื่องดังนั้นความเสียหายจึงเกิดขึ้นบ่อยมากและ Linux เมื่อตรวจพบ FS ที่ผิดพลาดจะทำให้มันอ่านซ้ำอย่างเงียบ ๆ

คุณจะแนะนำวิธีการใดในการลดปัญหานี้? จะเรียกใช้ fsck.vfat โดยอัตโนมัติเมื่อเริ่มต้นเพียงพอหรือไม่

ข้อมูลเพิ่มเติมบางส่วน:

  • ผู้ใช้ไม่สามารถถอดการ์ดได้ มันเป็นดิสก์ภายใน ข้อมูลใด ๆ ที่เก็บไว้ในนั้นจะสามารถเข้าถึงได้สำหรับการดาวน์โหลดผ่านเครือข่ายหรือไปยังไดรฟ์ usb และระบบจะกำจัดรายการที่เก่าที่สุดโดยอัตโนมัติ นั่นหมายความว่าคุณไม่จำเป็นต้องอ่านบนพีซีโดยเฉลี่ยของคุณ
  • ปัจจุบันระบบรองรับ FAT, yaffs และ jffs2 การเพิ่มระบบไฟล์อื่น ๆ ในเคอร์เนลเป็นไปได้ แต่ถ้ามีลู่ทางอื่นอยู่เราต้องการให้มันเป็นอันดับแรก
  • การเขียนสามารถหยุดได้ตามความต้องการแม้จะเป็นเวลาหลายนาทีโดยที่ข้อมูลไม่สูญหาย
  • การสูญเสียข้อมูลบางส่วนหรือความเสียหายเล็กน้อยเป็นที่ยอมรับ การหยุดการบันทึกที่สมบูรณ์นั้นไม่ใช่
  • เหตุการณ์ poweroff นั้นคาดเดาไม่ได้เกือบทั้งหมด
  • ระบบกำลังทำงานบน ARM9, 200MHZ, RAM 64MB, แฟลชภายใน 32MB และใช้พลังงาน CPU เกือบทั้งหมดสำหรับบทบาทหลัก พิจารณาสิ่งนี้โดยคำนึงถึงโซลูชันที่เน้นการใช้ทรัพยากรอย่างหนัก

3
คุณอาจพิจารณาแล้ว แต่เป็นสิ่งที่ควรกล่าวถึงสำหรับผู้อื่นที่หลงทางในคำถามนี้: การ์ดแฟลชส่วนใหญ่ (SD, CF และอื่น ๆ ) มีความอดทนในการเขียนเพียงไม่กี่พันรอบ (ที่ดีที่สุด) การใช้การ์ดปกติสำหรับการบันทึกข้อมูลหรืองานที่คล้ายกันจะฆ่าการ์ดเหล่านั้นในที่สุด (และโดยทั่วไปจะใช้เวลาน้อยกว่าที่ผู้คนคิด)
Chris S

@ChrisS: สิ่งนี้ส่วนใหญ่จะต่อท้ายเท่านั้นและแทนที่เก่าที่สุดด้วยรายการใหม่ล่าสุดมีลักษณะโดยธรรมชาติของการเขียนสมดุลที่ดีมากโดยเฉพาะอย่างยิ่งที่ต้องใช้เวลาหลายเดือนในการเติมการ์ด ปัญหาอาจเกิดจากรายการ FAT แต่ฉันเชื่อว่าคอนโทรลเลอร์ทำให้บางสิ่งมีเหตุผล
เอสเอฟ

ค่าใช้จ่ายหากอุปกรณ์ของคุณปิดอยู่และไม่ได้เขียนข้อมูลนี้ไปยังการ์ด? เช่นถ้าข้อมูลการวินิจฉัยไม่ได้ถูกเขียนคุณจะเสียเวลาหรือเงินมากหรือไม่มีไฟล์บันทึกบ้าง
Freiheit

1
@ Freiheit: คุณลักษณะค่อนข้างคลุมเครือแม้ว่าจะไม่ใช่คุณลักษณะที่ไม่สำคัญเลยสำหรับลูกค้าที่หายไปและนอกจากนี้ในกรณีที่มีคนอื่นแย่มากและหาแพะรับบาปเราสูญเสียช่องทางหนึ่งในการป้องกันในศาล สิ่งที่เป็นข้อมูลก่อนที่จะเกิดความล้มเหลวมีค่ามากที่สุด - พิสูจน์ว่าอุปกรณ์ทำงานอย่างถูกต้องจนถึงช่วงเวลาสุดท้ายและไม่ใช่ว่าความผิดของตัวเองทำให้เหตุการณ์ที่เกิดขึ้นเป็นภัยพิบัติ
เอสเอฟ

ข้อสังเกต. คุณกำลังเก็บข้อมูลอย่างชัดเจนสำหรับบางสิ่งที่สำคัญ!
Freiheit

คำตอบ:


8

คุณสามารถใช้block2mtdไดรเวอร์เพื่อใช้ระบบไฟล์ jffs2 หรือ yaffs (2) ของทรานแซคชันที่คุณดูเหมือนจะใช้ที่อื่นสำหรับการ์ด SD ของคุณซึ่งจะช่วยแก้ปัญหาการสูญหายของข้อมูลหรือความเสียหายของระบบไฟล์ที่ poweroff

การทำเช่นนั้นอาจทำให้เกิดปัญหาอื่น ๆ ได้ เนื่องจากการ์ด SD มีแนวโน้มที่จะมีกลไกของตัวเองสำหรับการปรับระดับการสึกหรอและการแมปเซกเตอร์ใหม่ในสถานที่เหล่านี้อาจรบกวนการใช้งานของ jffs2 และ yaffs เพื่อทำแบบเดียวกันลดอายุการใช้งานหรือประสิทธิภาพของการ์ด SD ของคุณ หากนี่ไม่ใช่ปัญหาก็ควรลองทำดู


ด้วยเดือนหรือสองเดือนในการเติมการ์ด SD 2GB ถึงขีด จำกัด การสึกหรอแม้จะมีการทำโหลดบาลานซ์แบบสุ่มทั้งหมดก็ไม่น่าจะมีปัญหา
เอสเอฟ

5

ตรวจสอบว่าเคอร์เนลที่คุณใช้รองรับฟลัชและ / หรือการตั้งค่าสถานะการซิงค์สำหรับ vfat (ดูเหมือนว่าบางรุ่นจะไม่สนใจมันโปรดระวัง!)

หรือทำไปกับระบบไฟล์โดยสิ้นเชิงหากทุกอย่างสามารถไปเป็นไฟล์เดียว (เช่นกรณีที่มีไฟล์บันทึกดิบ!) หรือไฟล์ขนาดคงที่ไม่กี่ไฟล์ (ใช้พาร์ติชั่น;)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.