ฉันจะฟอร์แมตหน่วยความจำแฟลชระดับต่ำใน Linux ได้อย่างไร


13

เพื่อนของฉันมีปัญหากับแฟลชไดรฟ์ USB และฉันแนะนำให้เขาฟอร์แมตในระดับต่ำ จากนั้นฉันก็ไม่รู้ว่าจะทำยังไงใน Linux ดังนั้น ... ฉันจะฟอร์แมตหน่วยความจำแฟลชระดับต่ำใน Linux ได้อย่างไร เพื่อนของฉันลองใช้ "รูปแบบเต็ม" บนไดรฟ์ใน Windows และล้มเหลว

คำตอบ:


12

"การจัดรูปแบบระดับต่ำ" เสร็จสิ้นบน floppies ซึ่งคุณสามารถเขียนที่ความหนาแน่นต่างกันโดยเลือกที่จะจัดระเบียบแทร็กและเซ็กเตอร์ต่างกัน แต่สิ่งนี้ไม่สมเหตุสมผลสำหรับสื่อที่ทันสมัยที่สุด แนวคิดในการจัดระเบียบข้อมูลบนอุปกรณ์นั้นได้รับการแก้ไขและไม่สามารถเปลี่ยนแปลงได้ มันไม่สมเหตุสมผลเลยสำหรับแฟลชที่มีบิตแยกจากกันแทนที่จะเป็นโดเมนแม่เหล็ก การจัดรูปแบบระดับที่สูงขึ้นเป็นไปได้ซึ่งอยู่mkfsในยูนิกซ์


ดังนั้นหากระบบไฟล์ในแฟลชไดรฟ์ของเพื่อนของฉันยุ่งเหยิงmkfsตัวเลือกเดียวของเขาคืออะไร? เกิดอะไรขึ้นถ้ามันไม่ทำงาน ไม่มีอะไรอีกที่เขาจะลองได้?
bmaupin

@Bryan: ดีเขาอาจยังพยายามที่เทียบเท่าของดอสของfsck chkdsk
wnoise

3
@ mkfsไม่ทราบถ้าล้มเหลวfsckจะไม่ช่วย
Derobert

2
ฉันทดสอบหน่วยความจำแฟลช USB จำนวนมากในที่ทำงานและคุณภาพของมันอยู่ทั่วแผนที่ดังนั้นฉันจะไม่แปลกใจถ้าไดรฟ์ของเพื่อนคุณเสียและไม่สามารถทำงานได้อีกต่อไป สิ่งเหล่านี้สามารถแตกต่างกันได้หลายวิธีและไม่มีอะไรที่คุณสามารถทำได้นอกเหนือจากการซื้อหน่วยความจำจากแหล่งข้อมูลที่มีชื่อเสียงและอาจทดสอบด้วยf3เพื่อให้แน่ใจว่ามันจะไม่แตก
unfa

8

การจัดรูปแบบระดับต่ำหมายถึงสิ่งต่าง ๆ มากมายสำหรับผู้คนและบริบทที่แตกต่างกัน

ความหมายดั้งเดิมเป็นขั้นตอนที่จำเป็นในการจัดรูปแบบของดิสก์ - ดิสก์ไดรฟ์ต้องการส่วนหัวการซิงค์และรูปแบบอื่น ๆ ที่เขียนบนสื่อก่อนที่จะสามารถจัดเก็บข้อมูล ด้วยวิธีนี้หัวสามารถตรวจจับได้เมื่อเป็น A) บนแทร็กและ B) ซึ่งอยู่บนแทร็ก การจัดรูปแบบระดับต่ำฟลอปปี้เตรียมดิสก์เพื่อให้สามารถอ่านและเขียนบล็อกได้ ฮาร์ดไดรฟ์พีซี MFM และ RLL รุ่นแรก ๆ สามารถฟอร์แมตในระดับต่ำได้โดยใช้ยูทิลิตี้ที่อยู่ใน ROM (การ์ด ISA) ของยูทิลิตี้ ฮาร์ดไดรฟ์ IDE และ SATA สมัยใหม่จัดรูปแบบในระดับต่ำเช่นกัน แต่เฉพาะที่โรงงาน

ความหมายอื่น ๆ รวมถึงการเขียนเลขศูนย์ไปยังบล็อกทั้งหมดกำหนดค่าไดรฟ์เพื่อปิดการใช้งานพื้นที่ "ซ่อน" เช่น HPA และ DCO แล้ว zeroing บล็อคทั้งหมดหรือสิ่งอื่น ๆ ที่เกี่ยวข้องกับการแบ่งพาร์ติชันกว่าการจัดรูปแบบ

แฟลชดิบต้องการขั้นตอนการเตรียมการเบื้องต้นที่แตกต่างกันไปที่โรงงาน - แต่ละแฟลช "eraseblock" (analogus กับ "block" บนดิสก์) จะต้องมีการทดสอบและทำเครื่องหมายว่าไม่ดีถ้ามันไม่ดีจริง ๆ "eraseblock" แต่ละรายการจะมีบล็อก "OOB" ขนาดเล็กเพิ่มเติมที่เก็บข้อมูลการแก้ไขข้อผิดพลาด - และนี่คือตำแหน่งที่มีการทำเครื่องหมายว่าไม่ดี คุณไม่ต้องการทำซ้ำขั้นตอนนี้เนื่องจากการเขียนไปยังบล็อกที่ไม่ดีสามารถป้องกันคุณจากการตั้งค่าบิตนั้นอีกครั้งที่ระบุว่าไม่ดี

แต่คุณไม่ได้จัดการกับแฟลชแบบดิบ คุณกำลังติดต่อกับแฟลชไดรฟ์ USB มีชิปควบคุมในแฟลชไดรฟ์ทั้งหมดที่ยอมรับคำสั่ง USB จากโฮสต์และพูดคุยกับแฟลชดิบภายในในนามของโฮสต์ ชิปควบคุมเหล่านี้บางส่วนสามารถกำหนดค่าให้รายงานส่วนหนึ่งของแฟลชเป็นพาร์ติชันซีดีรอมแยกต่างหากหรือทำหน้าที่เหมือนอุปกรณ์เก็บข้อมูล USB สองตัวแยกกัน ขึ้นอยู่กับยี่ห้อและรุ่นของชิปควบคุมคุณอาจพบการกู้คืนหรือยูทิลิตีการกำหนดค่า (อาจเป็น Windows เท่านั้น) ที่สามารถรีเซ็ตชิปคอนโทรลเลอร์นี้ได้ คุณจะเริ่มต้นด้วยการเปิดแฟลชไดรฟ์มองหาชิปขนาดเล็ก (น่าจะ) สองอันที่อยู่บน PCB ขนาดเล็กและทำ Googling บ้าง ยี่ห้อและรุ่นที่พิมพ์อยู่ด้านนอกเคสไม่น่าจะช่วยให้คุณค้นหาผู้ที่สร้างคอนโทรลเลอร์ภายในขึ้นมาได้


7

นอกจากนี้ไม่มีทางที่จะทำรูปแบบระดับต่ำบนอุปกรณ์แฟลชมากที่สุดตั้งแต่พวกเขามีชั้นแปลเพิ่มเติมจาก USB / ATA / SD / ฯลฯ ถึงMTDซึ่งปิดบังอุปกรณ์ MTD ระดับต่ำ (ซึ่งสามารถจัดรูปแบบระดับต่ำหากได้รับโดยตรงซึ่งคุณไม่สามารถทำได้)


6

ใช้ddคำสั่งสำหรับสิ่งนี้dd if=/dev/zero of=/dev/hda

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


4
คุณไม่ต้องการใช้/dev/zeroเพื่อลบอุปกรณ์หน่วยความจำแฟลช ดูรายการในบล็อกของฉัน: fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down

1
การเขียน / dev / zero ไปยังอุปกรณ์แฟลชไม่ใช่เรื่องผิดปกติ ข้อได้เปรียบเพียงข้อเดียวที่การเขียน 1s ไปยังอุปกรณ์นั้นคือคุณอาจได้รับการเขียนเร็วขึ้นเล็กน้อยในครั้งต่อไปที่คุณเขียนลงดิสก์เนื่องจากไม่จำเป็นต้องลบออกก่อน - และขึ้นอยู่กับเลเยอร์แปลแฟลชที่ฉลาด
Shawn J. Goff

2
@ChrisDown ไม่แน่ใจว่ามันเปรียบเทียบประสิทธิภาพอย่างไร แต่คุณสามารถbadblocks -s -w -t 0xff /dev/?d??ใช้ได้ คุณได้รับการเขียนทั้งหมดและทดสอบด้วย
Zoredache

2
@ChrisDown รายการบล็อกของคุณผ่านการรับรอง 404 รายการแล้ว
Derobert

1
หากแฟลชลบภายในทุกระดับดังนั้นเลเยอร์การแปลควรสลับบิตเนื่องจากเป็นประเพณีในการฟอร์แมตดิสก์ด้วยศูนย์ทั้งหมด
psusi


2

ฉันเคยเจออุปกรณ์ในอดีต (แม้ว่าจะไม่ใช่ซักพัก) ซึ่งใช้คำสั่ง SCSI FORMAT UNIT - จาก Linux คุณสามารถใช้:

sg_format --format / dev / sdX

เพื่อรีเซ็ตอุปกรณ์เหล่านี้เป็นสถานะโรงงาน (ข้อมูลจำเพาะหน่วยเก็บข้อมูล USB ได้มาจากมาตรฐาน SCSI รุ่นเก่า)

ผมเชื่อว่าบางที่ใหม่กว่า USB 3 อุปกรณ์ยังใช้คำสั่งการรักษาความปลอดภัย ATA เพื่อให้คุณสามารถใช้https://ata.wiki.kernel.org/index.php/ATA_Secure_Eraseซึ่งมีแนวโน้มที่จะมีผลต่อการรีเซ็ตชั้นแปลแฟลชไปที่โรงงานของตน สถานะ (ตามปกติจะทำกับ SSD)


1

มีสิ่งดังกล่าวในรูปแบบระดับต่ำสำหรับหน่วยความจำแฟลช แต่มันทำในโรงงานด้วยซอฟต์แวร์เฉพาะผู้จำหน่าย

ในการทำเช่นนั้นคุณต้องพูดคุยโดยตรงกับชิปคอนโทรลเลอร์หน่วยความจำ โดยไม่แจ้งล่วงหน้าฉันไม่พบโปรแกรมใด ๆ ที่สามารถทำได้บน Linux

มีเครื่องมือของผู้ผลิตที่ดำเนินการจัดรูปแบบระดับต่ำและสามารถเขียนการตั้งค่าบางอย่าง (เช่นพฤติกรรม LED ทำให้ไดรฟ์อ่านอย่างเดียว) และข้อมูล (เช่นชื่อผู้ผลิตชื่อรุ่นหมายเลขซีเรียล) ไปยังชิปเซ็ตตัวควบคุมหน่วยความจำ ทำเฉพาะสำหรับ Windows และมักจะเป็นภาษาจีน

เครื่องมือหนึ่งดังกล่าวเรียกว่า "FC MP Tools" เท่าที่ฉันสามารถบอกได้สิ่งเหล่านี้ได้รับการออกแบบโดยAlcor Microและผลิตโดย FirstChip (FC) เห็นได้ชัดว่า "MP" หมายถึง "การผลิตจำนวนมาก"

ฉันกำลังใช้รุ่นที่ฉันพบอยู่ที่นี่: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

ลิงค์อื่น ๆ ที่คุณสามารถติดตามได้: https://repusb.cubava.cu/?page_id=2052 https://www.rmprepusb.com/tutorials/repair-your-usb-flash-drive http://reboot.pro/topic / 20865-alcor-micro-usb-pen-drive-repair / http://reboot.pro/topic/19901-no-alcor-mptool-is-recognizing-my-usb/ https://www.elektroda.pl /rtvforum/topic3145335.html http://flashboot.ru/files/file/30/ http://www.flashdrive-repair.com/2014/05/download-fc-mptool-v402-for-fixing.html https : //www.cdrinfo.pl/download/356133849

มันทำงานใน Wine แต่จะไม่ตรวจจับชิปเซ็ตของไดรฟ์ (อาจต้องมีการเข้าถึงโดยตรงไปยังคอนโทรลเลอร์ USB เพื่อทำสิ่งนั้น)

นอกจากนี้ - เพื่อให้สามารถใช้งานได้คุณต้องมีแฟลชไดรฟ์ที่มีชิปเซ็ต Alcor เฉพาะที่รองรับ อีกครั้ง - ผู้ขายแต่ละรายมีซอฟต์แวร์ของตนเองที่พูดคุยกับชิปคอนโทรลเลอร์ผ่าน USB

ฉันมีสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่

บันทึกหมายเลขชิ้นส่วนของชิปเซ็ตบนไมโครคอนโทรลเลอร์: FC1178 BC1 โปรแกรม FC MP Tools จะระบุว่าเป็นชิปเซ็ต1178BC :

ป้อนคำอธิบายรูปภาพที่นี่

และซอฟต์แวร์ที่ฉันเชื่อมโยงใช้งานได้กับ Windows XP และ 10 อย่างไรก็ตามมันจะพังถ้าคุณเปลี่ยนโปรแกรมเป็นภาษาอังกฤษ! ตั้งค่ากำหนดเป็นภาษาอังกฤษจากนั้นเริ่มโปรแกรมใหม่และไม่เปลี่ยนภาษา - ควรใช้งานได้ อาจจะได้รับการแก้ไขในเวอร์ชันที่ใหม่กว่า

อย่างไรก็ตามผู้ขายที่แตกต่างกันมีเครื่องมือที่แตกต่างกันมันเป็นโพรงกระต่ายไม่มีมาตรฐานที่นี่ AFAIK และ (อย่างน้อยเครื่องมือนี้) จะทำงานบน Windows ได้อย่างน่าเสียดาย

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

บางทีถ้ามีคนสามารถรวบรวมเครื่องมือเหล่านี้ได้มากมายให้ทำวิศวกรรมย้อนกลับและสร้างเครื่องมือโอเพ่นซอร์สสากลสำหรับ Linux ที่เราสามารถทำได้ - ไม่อย่างนั้นฉันไม่เห็นว่ากำลังมา


1

แม้ว่าการฟอร์แมตระดับต่ำในแบบที่ทำบนฮาร์ดดิสก์ไดรฟ์และฟลอปปี้ไดรฟ์ไม่สมเหตุสมผลสำหรับแฟลชไดรฟ์ แต่ก็มียูทิลิตีเฉพาะผู้ผลิตสำหรับแฟลชไดรฟ์ "ฟอร์แมตระดับต่ำ": นี่เป็นตัวอย่าง: ยูทิลิตีฟอร์แมตระดับต่ำของ Alcor

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

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