Como faço para memória flash de formato de baixo nível no Linux?

13

Meu amigo estava tendo problemas com uma unidade flash USB e sugeri que ele fizesse um formato de baixo nível. Então me ocorreu que eu nem sei como fazer isso no Linux. Então ... como posso memória flash de formato de baixo nível no Linux? Meu amigo tentou um "formato completo" na unidade no Windows e falhou.

bmaupin
fonte

Respostas:

12

A "formatação de baixo nível" foi feita em disquetes, onde você pode escrever em diferentes densidades escolhendo organizar as faixas e os setores de maneira diferente. Mas isso não faz sentido para a maioria das mídias modernas. Sua noção de como organizar os dados no dispositivo é fixa e imutável. Não faz nenhum sentido para o flash, que possui bits discretos, em vez de domínios magnéticos. É possível uma formatação de nível superior, que é mkfsem terra unix.

wnoise
fonte
Então, se o sistema de arquivos na unidade flash do meu amigo estiver bagunçado, mkfsé sua única opção? E se isso não funcionar? Não há mais nada que ele possa tentar?
bmaupin
@ Bryan: bem, ele também pode tentar fsck, o equivalente a dos chkdsk.
Wnoise
3
@noise se mkfsfalhar, fscknão vai ajudar.
11262 derobert
2
Testo toneladas de memória flash USB no trabalho e a qualidade disso está em todo o mapa, para não me surpreender se a unidade de seu amigo estiver quebrada e não puder mais funcionar. Essas coisas podem quebrar de muitas maneiras diferentes e não há muito o que fazer sobre isso, além de comprar memória de fontes respeitáveis ​​e, talvez, testá-la f3para garantir que ela não esteja quebrada.
unfa 27/11
8

Formatação de baixo nível significa muitas coisas diferentes para pessoas diferentes e em contextos diferentes.

O significado original era uma etapa necessária na formatação de discos - as unidades de disco precisam de cabeçalho, sincronização e outros padrões gravados na mídia antes de poder armazenar dados nela. Desta maneira, a cabeça pode detectar quando está A) em uma pista e B) onde está na pista. A formatação de baixo nível de um disquete prepara o disco para poder ler e gravar blocos. Os primeiros discos rígidos MFM e RLL para PC podem ser formatados em baixo nível, geralmente usando um utilitário embutido na ROM do controlador de disco rígido (uma placa ISA). Os discos rígidos IDE e SATA modernos também são formatados em baixo nível, mas apenas na fábrica.

Vários outros significados incluem gravar zeros em todos os blocos, configurar a unidade para desativar áreas "ocultas", como HPA e DCO e, em seguida, zerar todos os blocos ou outras coisas mais relacionadas ao particionamento do que à formatação.

O flash bruto precisa de uma etapa preparatória inicial diferente na fábrica - cada "apagamento de bloco" de flash (análogo a um "bloco" em discos) precisa ser testado e marcado como ruim se for realmente ruim. Cada "bloco de apagamento" possui um pequeno bloco "OOB" adicional que retém as informações de correção de erros - e é aqui que elas são marcadas como incorretas. Você NÃO deseja repetir esta etapa, pois o ato de gravar em um bloco defeituoso pode impedir que você defina esse bit específico novamente que o identifica como incorreto.

Mas você não está lidando com flash bruto. Você está lidando com uma unidade flash USB. Existe um chip controlador em todas as unidades flash que aceita comandos USB do host e fala com o flash bruto em seu nome. Alguns desses chips controladores podem ser configurados para relatar parte do flash como uma partição de CD-ROM separada ou atuar como dois dispositivos de armazenamento USB separados. Dependendo da marca e do modelo do chip do controlador, você poderá encontrar um utilitário de recuperação ou configuração (provavelmente apenas no Windows) que pode redefinir esse chip do controlador. Você começaria abrindo a unidade flash, procurando os menores (provavelmente) dois chips que estão no PCB pequeno e pesquisando no Google. A marca e o modelo impressos na parte externa do gabinete provavelmente não ajudarão a descobrir quem criou o controlador dentro dele.

LawrenceC
fonte
7

Não há como fazer um formato de baixo nível na maioria dos dispositivos flash, pois eles possuem uma camada de conversão adicional de USB / ATA / SD / etc. para MTD que obscurece os dispositivos MTD de baixo nível (que podem ser formatados em baixo nível se forem acessados ​​diretamente [o que você não pode]).

Ignacio Vazquez-Abrams
fonte
6

use o ddcomando para issodd if=/dev/zero of=/dev/hda

Isso destruirá TODOS os dados no disco rígido, todas as informações do setor de inicialização e todos os dados em todas as partições. No entanto, ele não tornará o disco inútil; você simplesmente possui um disco limpo que só precisa ter partições criadas e um novo setor de inicialização instalado, o que acontecerá quando você instalar qualquer sistema operacional, incluindo Linux ou Windows. Essa é uma boa maneira de limpar partições ruins, vírus, instalações danificadas ou dados que você não deseja que sejam vistos.

harish.venkat
fonte
4
Você não deseja usar /dev/zeropara apagar um dispositivo de memória flash. Veja a entrada no meu blog: fakkelbrigade.eu/chris/blog/2012/01/…
Chris Down
1
Não é extraordinariamente errado gravar / dev / zero em um dispositivo flash. A única vantagem que a gravação de 1s no dispositivo oferece é que você poderá obter tempos de gravação um pouco mais rápidos na próxima vez que gravar no disco, pois ele não precisará ser apagado primeiro - e isso depende da camada de conversão do flash ser inteligente.
Shawn J. Goff
2
@ ChrisDown, não sei como ele se compara no desempenho, mas você pode usar badblocks -s -w -t 0xff /dev/?d??. Você obtém todos os 1s escritos e testados também.
precisa saber é o seguinte
2
@ChrisDown, a sua entrada no blog foi compatível com 404.
derobert
1
Se o flash apagar internamente para todos, a camada de conversão deve estar invertendo os bits, pois é habitual formatar discos com todos os zeros.
Psusi 12/12/12
4

mkfs.vfat /dev/hda1 fará o equivalente ao comando "formato" do MSDOS.

Paul Tomblin
fonte
2

Encontrei dispositivos no passado (embora não por um tempo) que implementem o comando SCSI FORMAT UNIT - no Linux, você pode usar:

sg_format --format / dev / sdX

para redefinir esses dispositivos para um estado de fábrica (as especificações de armazenamento USB são derivadas dos padrões SCSI mais antigos).

Acredito que alguns dispositivos USB 3 mais recentes também implementem comandos de segurança ATA, então você pode usar https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase, que provavelmente terá o efeito de redefinir a camada de conversão de flash para sua fábrica estado (como normalmente acontece com os SSDs).

Tim Small
fonte
1

Existe um formato de baixo nível para a memória Flash, mas é feito em fábricas com software específico do fornecedor.

Para fazer isso - você precisa falar diretamente com o chip do controlador de memória. Infelizmente, não consegui encontrar nenhum programa que possa fazer isso no Linux.

Existem ferramentas do fabricante que executam formatação de baixo nível e podem gravar algumas configurações (como comportamento do LED, tornar a unidade somente leitura) e dados (como nome do fabricante, nome do modelo, número de série) no chipset do controlador de memória, mas essas ferramentas geralmente são feitos apenas para Windows e geralmente estão em chinês.

Uma dessas ferramentas é chamada "FC MP Tools". Tanto quanto posso dizer, estes são projetados pela Alcor Micro e fabricados pela FirstChip (FC). Aparentemente, "MP" significa "Produção em massa".

Estou usando a versão que encontrei aqui: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Outros links que você pode 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

Ele roda no Wine, mas não detecta os chipsets da unidade (provavelmente precisa de acesso direto ao controlador USB para fazer isso).

Além disso - para que isso funcione, é necessário ter uma unidade flash com um chipset Alcor específico suportado. Novamente - cada fornecedor tem seu próprio software que conversa com os chips do controlador via USB.

Eu tenho isto:

insira a descrição da imagem aqui

Observe o número da peça do chipset no microcontrolador: FC1178 BC1 O programa FC MP Tools identificará isso como um chipset 1178BC :

insira a descrição da imagem aqui

E o software que eu vinculei funciona com ele no Windows XP e 10. No entanto - ele travará se você alternar o programa para o idioma inglês! Defina suas preferências em inglês, reinicie o programa e não mude o idioma - ele deve funcionar. Talvez seja corrigido em uma versão mais recente.

Enfim - diferentes fornecedores têm ferramentas diferentes, é uma toca de coelho, não há um padrão aqui no AFAIK e (pelo menos essa ferramenta) funciona apenas no Windows, infelizmente.

Pelo que sei, isso testará o chip de memória e gravará um mapa do setor incorreto no chip do controlador, para que ele possa apresentar apenas boa memória ao sistema operacional. Dessa forma, mesmo chips parcialmente danificados podem ser usados ​​e vendidos. Provavelmente, eles são classificados na fábrica por qualidade e baixo nível, formatados para diferentes capacidades. Isso é chamado de binning.

Talvez se alguém puder reunir muitas dessas ferramentas, fazer engenharia reversa e criar uma ferramenta universal de código aberto para Linux, nós podemos fazê-lo - caso contrário, não vejo isso chegando.

unfa
fonte
1

Embora a formatação de baixo nível da maneira como foi feita nas unidades de disco rígido e de disquete não faça sentido para uma unidade flash, existem utilitários específicos do fabricante para as unidades flash "formato de baixo nível": Este é um exemplo: Utilitário de formato de baixo nível da Alcor

Eu caí nessa questão enquanto procurava por um utilitário que funcionasse no Linux. No entanto, parece que os fabricantes de pen drives não se preocupam em nos fazer felizes.

Tarik
fonte