¿Cómo puedo formatear memoria flash de bajo nivel en Linux?

13

Mi amigo tenía problemas con una unidad flash USB y le sugerí que hiciera un formato de bajo nivel. Entonces se me ocurrió que ni siquiera sé cómo hacer eso en Linux. Entonces ... ¿cómo puedo formatear memoria flash de bajo nivel en Linux? Mi amigo intentó un "formato completo" en el disco en Windows y falló.

bmaupin
fuente

Respuestas:

12

El "formateo de bajo nivel" se realizó en disquetes, donde se podía escribir a diferentes densidades eligiendo organizar las pistas y sectores de manera diferente. Pero esto no tiene sentido para la mayoría de los medios modernos. Su noción de cómo organizar los datos en el dispositivo es fija e inmutable. No tiene ningún sentido para flash, que tiene bits discretos, en lugar de dominios magnéticos. Es posible un formateo de nivel superior, que está mkfsen unix-land.

wnoise
fuente
Entonces, si el sistema de archivos en la unidad flash de mi amigo está en mal estado, ¿ mkfses su única opción? ¿Qué pasa si eso no funciona? ¿No hay nada más que pueda probar?
bmaupin
@Bryan: bueno, también podría intentarlo fsck, el equivalente a dos chkdsk.
wnoise
3
@wnoise si mkfsfalla, fsckno va a ayudar.
derobert
2
Pruebo toneladas de memoria USB flash en el trabajo y la calidad de eso está en todo el mapa, por lo que no me sorprendería si la unidad de disco de tu amigo se rompe y ya no puede funcionar. Estas cosas pueden romperse de muchas maneras diferentes y no hay mucho que pueda hacer al respecto, aparte de comprar memoria de fuentes acreditadas y luego probarlo f3para asegurarse de que no esté roto.
unfa
8

El formateo de bajo nivel significa muchas cosas diferentes para diferentes personas y en diferentes contextos.

El significado original era un paso necesario en el formateo de los discos: las unidades de disco necesitan encabezado, sincronización y otros patrones escritos en los medios antes de que puedan almacenar datos en ellos. De esta manera, la cabeza puede detectar cuándo está A) en una pista y B) dónde está en la pista. El formateo de bajo nivel de un disquete prepara el disco para poder leer y escribir bloques. Los primeros discos duros de PC MFM y RLL podrían formatearse a bajo nivel, a menudo utilizando una utilidad integrada en la ROM del controlador del disco duro (una tarjeta ISA). Los discos duros IDE y SATA modernos también tienen formato de bajo nivel, pero solo en la fábrica.

Otros significados incluyen escribir ceros en todos los bloques, configurar la unidad para deshabilitar áreas "ocultas" como HPA y DCO y luego poner a cero todos los bloques u otras cosas más relacionadas con la partición que el formateo.

El flash sin procesar necesita un paso preparatorio inicial diferente en la fábrica: cada flash "eraseblock" (análogo a un "bloque" en los discos) debe probarse y marcarse como malo si es realmente malo. Cada "eraseblock" tiene un pequeño bloque adicional "OOB" que contiene información de corrección de errores, y aquí es donde está marcado como incorrecto. NO desea repetir este paso, ya que el acto de escribir en un bloque incorrecto podría impedirle configurar ese bit en particular nuevamente que lo identifica como incorrecto.

Pero no se trata de flash sin procesar. Estás tratando con una unidad flash USB. Hay un chip controlador en todas las unidades flash que acepta comandos USB del host y se comunica con el flash sin procesar en su nombre. Algunos de estos chips de controlador se pueden configurar para informar parte de la memoria flash como una partición de CD-ROM separada, o actuar como dos dispositivos de almacenamiento USB separados. Dependiendo de la marca y modelo del chip del controlador, es posible que pueda encontrar una utilidad de recuperación o configuración (probablemente solo para Windows) que pueda restablecer este chip del controlador. Comenzaría abriendo la unidad flash, buscando el más pequeño de los (probablemente) dos chips que están en la pequeña PCB, y buscando en Google. No es probable que la marca y el modelo impresos en el exterior de la caja lo ayuden a encontrar quién hizo el controlador dentro de ella.

LawrenceC
fuente
7

No hay forma de hacer un formato de bajo nivel en la mayoría de los dispositivos flash, ya que tienen una capa de traducción adicional desde USB / ATA / SD / etc. a MTD que oculta los dispositivos MTD de bajo nivel (que pueden formatearse a bajo nivel si se accede directamente [lo que no se puede]).

Ignacio Vazquez-Abrams
fuente
6

use el ddcomando para estodd if=/dev/zero of=/dev/hda

Esto destruirá TODOS los datos en el disco duro, toda la información del sector de arranque y todos los datos en todas las particiones. Sin embargo, no hará que el disco sea inútil, simplemente tiene un disco limpio que solo necesita tener particiones creadas y un nuevo sector de arranque instalado, lo que sucederá cuando instale cualquier sistema operativo, incluidos Linux o Windows. Esta es una buena manera de limpiar las particiones defectuosas, los virus, las instalaciones fallidas o los datos que no desea que se vean.

harish.venkat
fuente
44
Usted no desea utilizar /dev/zeropara borrar un dispositivo de memoria flash. Vea la entrada en mi blog: fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down
1
No es extraordinariamente incorrecto escribir / dev / zero en un dispositivo flash. La única ventaja que proporciona escribir 1s en el dispositivo es que puede obtener tiempos de escritura un poco más rápidos la próxima vez que escriba en el disco, ya que no tiene que borrarse primero, y eso depende de que la capa de traducción flash sea inteligente.
Shawn J. Goff
2
@ChrisDown, no estoy seguro de cómo se compara en rendimiento, pero podría usarlo badblocks -s -w -t 0xff /dev/?d??. Obtiene todos los 1 escritos y probados también.
Zoredache
2
@ChrisDown su entrada de blog ha cumplido con 404.
derobert
1
Si el flash se borra internamente a todos, entonces la capa de traducción debería invertir los bits, ya que es habitual formatear discos con todos los ceros.
psusi
4

mkfs.vfat /dev/hda1 hará el equivalente del comando "formato" de MSDOS.

Paul Tomblin
fuente
2

Me he encontrado con dispositivos en el pasado (aunque no por un tiempo) que implementan el comando SCSI FORMAT UNIT: desde Linux puedes usar:

sg_format --format / dev / sdX

restablecer estos dispositivos a un estado de fábrica (la especificación de almacenamiento USB se deriva de los estándares SCSI más antiguos)

Creo que algunos dispositivos USB 3 más nuevos también implementan comandos de seguridad ATA, por lo que podría usar https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase, que probablemente tenga el efecto de restablecer la capa de traducción flash a su fábrica estado (como suele ocurrir con los SSD).

Tim Small
fuente
1

Existe un formato de bajo nivel para la memoria Flash, pero se realiza en fábricas con software específico del proveedor.

Para hacer eso, debe hablar directamente con el chip del controlador de memoria. Desafortunadamente no pude encontrar ningún programa que pueda hacer eso en Linux.

Existen herramientas del fabricante que realizan un formateo de bajo nivel y pueden escribir algunas configuraciones (como el comportamiento del LED, hacer que la unidad sea de solo lectura) y datos (como el nombre del fabricante, el nombre del modelo, el número de serie) en el conjunto de chips del controlador de memoria, pero estas herramientas generalmente están hechos solo para Windows y a menudo están en chino.

Una de esas herramientas se llama "FC MP Tools". Por lo que puedo decir, estos están diseñados por Alcor Micro y fabricados por FirstChip (FC). Aparentemente "MP" significa "Producción en masa".

Estoy usando la versión que encontré aquí: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Otros enlaces que puede seguir: 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

Se ejecuta en Wine, pero no detectará los conjuntos de chips de la unidad (probablemente necesite acceso directo al controlador USB para hacerlo).

Además, para que esto funcione, debe tener una unidad flash con un chipset Alcor específico que sea compatible. Una vez más, cada proveedor tiene su propio software que se comunica con los chips del controlador a través de USB.

Tengo esto:

ingrese la descripción de la imagen aquí

Tenga en cuenta el número de pieza del chipset en el microcontrolador: FC1178 BC1 El programa FC MP Tools lo identificará como un chipset 1178BC :

ingrese la descripción de la imagen aquí

Y el software que vinculé funciona con Windows XP y 10. Sin embargo, ¡se bloqueará si cambia el programa al idioma inglés! Establezca sus preferencias en inglés, luego reinicie el programa y no cambie el idioma, debería funcionar. Tal vez se solucionará en una versión más nueva.

De todos modos, diferentes proveedores tienen diferentes herramientas, es un agujero de conejo, no hay un estándar aquí AFAIK, y (al menos esta herramienta) desafortunadamente solo funcionará en Windows.

Por lo que puedo decir, esto probará el chip de memoria y escribirá un mapa de sector defectuoso en el chip del controlador para que pueda presentar solo una buena memoria al sistema operativo. De esta forma, incluso se pueden usar y vender chips parcialmente dañados. Estos probablemente se ordenan en la fábrica por calidad y bajo nivel formateados para diferentes capacidades. Esto se llama binning.

Quizás si alguien puede reunir muchas de estas herramientas, aplicarles ingeniería inversa y crear una herramienta universal de código abierto para Linux, podemos hacerlo; de lo contrario, no veo que eso suceda.

unfa
fuente
1

Aunque el formateo de bajo nivel de la forma en que se hizo en unidades de disco duro y disquetes no tiene sentido para una unidad flash, existen utilidades específicas del fabricante para las unidades flash de "formato de bajo nivel": este es un ejemplo: la utilidad de formato de bajo nivel de Alcor

Caí en esta pregunta mientras buscaba una utilidad que funcionara en Linux. Sin embargo, parece que a los fabricantes de unidades flash no les importa hacernos felices.

Tarik
fuente