Come posso formattare memoria flash di basso livello in Linux?


13

Il mio amico stava avendo problemi con un'unità flash USB e gli ho suggerito di fare un formato di basso livello. Poi mi è venuto in mente che non so nemmeno come farlo in Linux. Quindi ... come posso formattare memoria flash di basso livello in Linux? Il mio amico ha provato un "formato completo" sull'unità in Windows e non è riuscito.

Risposte:


12

La "formattazione di basso livello" è stata fatta su floppy, dove è possibile scrivere a densità diverse scegliendo di organizzare le tracce e i settori in modo diverso. Ma questo non ha senso per la maggior parte dei media moderni. La sua idea di come organizzare i dati sul dispositivo è fissa e immutabile. Non ha alcun senso per il flash, che ha bit discreti, piuttosto che domini magnetici. È possibile una formattazione di livello superiore, che è mkfsin unix-land.


Quindi se il filesystem sull'unità flash del mio amico è incasinato, mkfsè la sua unica opzione? E se non funzionasse? Non c'è nient'altro che possa provare?
bmaupin

@Bryan: beh, potrebbe anche provare fsck, l'equivalente di Dos's chkdsk.
wnoise

3
@wnoise se mkfsfallisce, fscknon aiuta.
derobert l'

2
Collaudo tonnellate di memoria flash USB sul posto di lavoro e la qualità è su tutta la mappa, quindi non sarei sorpreso se il disco del tuo amico è solo rotto e non funziona più. Queste cose possono rompersi in molti modi diversi e non c'è molto che puoi fare al riguardo, oltre all'acquisto di memoria da fonti affidabili e quindi magari testarlo f3per assicurarsi che non sia rotto.
unfa,

8

La formattazione di basso livello significa molte cose diverse per persone diverse e in contesti diversi.

Il significato originale era un passo necessario nella formattazione dei dischi: le unità disco necessitavano di intestazione, sincronizzazione e altri schemi scritti sul supporto prima che potesse archiviare i dati su di esso. In questo modo la testa può rilevare quando è A) su una traccia e B) dove si trova sulla traccia. La formattazione di basso livello di un floppy prepara il disco ad essere in grado di leggere e scrivere blocchi. I primi dischi rigidi per PC MFM e RLL potrebbero essere formattati a basso livello, spesso utilizzando un'utilità integrata nella ROM del controller del disco rigido (una scheda ISA). Anche i moderni dischi rigidi IDE e SATA sono formattati a basso livello, ma solo in fabbrica.

Vari altri significati includono la scrittura di zeri su tutti i blocchi, la configurazione dell'unità per disabilitare aree "nascoste" come HPA e DCO e quindi l'azzeramento di tutti i blocchi o altre cose più correlate al partizionamento che alla formattazione.

Il flash raw necessita di una diversa fase iniziale di preparazione in fabbrica: ogni flash "eraseblock" (analogo a un "blocco" sui dischi) deve essere testato e contrassegnato come cattivo se è effettivamente cattivo. Ogni "blocco di cancellazione" ha un piccolo blocco "OOB" aggiuntivo che contiene informazioni sulla correzione degli errori - ed è qui che è contrassegnato come non valido. NON si desidera ripetere questo passaggio poiché l'atto di scrivere su un blocco errato potrebbe impedire di impostare nuovamente quel particolare bit che lo identifica come errato.

Ma non hai a che fare con raw flash. Hai a che fare con un'unità flash USB. C'è un chip controller in tutte le unità flash che accetta i comandi USB dall'host e parla al flash raw all'interno per conto dell'host. Alcuni di questi chip controller possono essere configurati per segnalare parte del flash come una partizione CD-ROM separata o agire come due dispositivi di archiviazione USB separati. A seconda della marca e del modello del chip del controller, potrebbe essere possibile trovare un'utilità di ripristino o configurazione (probabilmente solo Windows) in grado di ripristinare questo chip del controller. Cominceresti aprendo l'unità flash, cercando il più piccolo dei (probabilmente) due chip che si trovano sul piccolo PCB e facendo un po 'di googling. È improbabile che la marca e il modello stampati all'esterno del case possano aiutarti a trovare chi ha creato il controller al suo interno.


7

Non è possibile eseguire un formato di basso livello sulla maggior parte dei dispositivi flash, poiché dispongono di un livello di traduzione aggiuntivo da USB / ATA / SD / ecc. a MTD che oscura i dispositivi MTD di basso livello (che può essere formattato a basso livello se ottenuto direttamente [cosa impossibile]).


6

usa il ddcomando per questodd if=/dev/zero of=/dev/hda

Questo distruggerà TUTTI i dati sul disco rigido, tutte le informazioni sul settore di avvio e tutti i dati su tutte le partizioni. Tuttavia non renderà inutile il disco, hai semplicemente un disco pulito che deve solo avere partizioni create e un nuovo settore di avvio installato, che accadrà quando si installa qualsiasi sistema operativo incluso Linux o Windows. Questo è un buon modo per ripulire eventuali partizioni, virus, installazioni errate o dati errati che non si desidera vengano visualizzati.


4
Non si desidera utilizzare /dev/zeroper cancellare un dispositivo di memoria flash. Vedi la voce sul mio blog: fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down

1
Non è straordinariamente sbagliato scrivere / dev / zero su un dispositivo flash. L'unico vantaggio che offre la scrittura di 1s sul dispositivo è che potresti ottenere tempi di scrittura leggermente più veloci la prossima volta che scrivi sul disco poiché non è necessario prima cancellarli, e questo dipende dal fatto che il livello di traduzione flash sia intelligente.
Shawn J. Goff,

2
@ChrisDown, non sono sicuro di come si confronta nelle prestazioni, ma potresti usarlo badblocks -s -w -t 0xff /dev/?d??. Ottieni tutti gli 1 scritti e testati.
Zoredache,

2
@ChrisDown il tuo post sul blog è diventato conforme a 404.
derobert l'

1
Se il flash viene cancellato internamente a tutti, il layer di traduzione dovrebbe invertire i bit poiché è consuetudine formattare i dischi con tutti gli zero.
psusi,

4

mkfs.vfat /dev/hda1 farà l'equivalente del comando "format" di MSDOS.


2

Mi sono imbattuto in dispositivi in ​​passato (anche se non per un po ') che implementano il comando SCSI FORMAT UNIT - da Linux puoi usare:

sg_format --format / dev / sdX

per reimpostare questi dispositivi su uno stato di fabbrica (le specifiche di archiviazione USB derivano dagli standard SCSI precedenti).

Credo che alcuni nuovi dispositivi USB 3 implementino anche i comandi di sicurezza ATA, quindi potresti usare https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase che probabilmente avrà l'effetto di ripristinare il livello di traduzione flash alla sua fabbrica stato (come in genere accade con gli SSD).


1

Esiste un formato di basso livello per la memoria Flash, ma è realizzato in fabbriche con software specifico del fornitore.

Per fare ciò, è necessario parlare direttamente con il chip del controller di memoria. Unfrotunately non sono riuscito a trovare alcun programma in grado di farlo su Linux.

Esistono strumenti del produttore che eseguono una formattazione di basso livello e possono scrivere alcune impostazioni (come il comportamento dei LED, rendere l'unità di sola lettura) e dati (come nome del produttore, nome del modello, numero di serie) sul chipset del controller di memoria, ma questi strumenti di solito sono realizzati solo per Windows e sono spesso in cinese.

Uno di questi strumenti si chiama "FC MP Tools". Per quanto ne so, questi sono progettati da Alcor Micro e prodotti da FirstChip (FC). Apparentemente "MP" sta per "produzione in serie".

Sto usando la versione che ho trovato qui: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Altri link che puoi seguire: 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

Funziona in Wine, ma non rileverà i chipset dell'unità (probabilmente per accedere è necessario un accesso diretto al controller USB).

Inoltre, affinché funzioni, è necessario disporre di un'unità flash con un chipset Alcor specifico supportato. Ancora una volta: ogni fornitore ha il suo software che comunica con i chip del controller tramite USB.

Ho questo:

inserisci qui la descrizione dell'immagine

Notare il numero di parte del chipset sul microcontrollore: FC1178 BC1 Il programma FC MP Tools identificherà questo come un chipset 1178BC :

inserisci qui la descrizione dell'immagine

E il software che ho collegato funziona con Windows XP e 10. Tuttavia, si bloccherà se cambi il programma in lingua inglese! Imposta le tue preferenze in inglese, quindi riavvia il programma e non cambiare la lingua: dovrebbe funzionare. Forse verrà risolto in una versione più recente.

Ad ogni modo - diversi fornitori hanno strumenti diversi, è una tana del coniglio, non c'è uno standard qui AFAIK e (almeno questo strumento) funzionerà solo su Windows purtroppo.

Da quello che posso dire, questo testerà il chip di memoria e scriverà una brutta mappa settoriale sul chip del controller in modo che possa presentare solo una buona memoria al sistema operativo. In questo modo è possibile utilizzare e vendere anche chip parzialmente danneggiati. Questi sono probabilmente ordinati in fabbrica per qualità e formattati a basso livello a diverse capacità. Questo si chiama binning.

Forse se qualcuno può raccogliere molti di questi strumenti, decodificarli e creare uno strumento open source universale per Linux, possiamo farlo - altrimenti non vedo che ciò accadrà.


1

Sebbene la formattazione di basso livello come è stata fatta su unità disco fisso e unità floppy non abbia senso per un'unità flash, esistono utilità specifiche del produttore per unità flash di "formato di basso livello": Questo è un esempio: utilità di formattazione di basso livello Alcor

Sono caduto su questa domanda mentre cercavo tale utilità che avrebbe funzionato su Linux. Tuttavia, sembra che i produttori di unità flash non si preoccupino di renderci felici.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.