Como posso o formato de memória flash de baixo nível no Linux?

11

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 do Windows e falhou.

    
por bmaupin 27.01.2012 / 18:38

7 respostas

11

"Formatação de baixo nível" foi feita em disquetes, onde você poderia escrever em diferentes densidades escolhendo organizar as trilhas e 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 sentido algum para flash, que tem bits discretos, em vez de domínios magnéticos. Formatação de nível mais alto é possível, o que é mkfs em unix-land.

    
por 27.01.2012 / 22:39
7

use o comando dd para este dd 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. Ele não irá, no entanto, tornar o disco inútil, você simplesmente tem 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. Esta é uma boa maneira de limpar as partições ruins, vírus, instalações mal feitas ou dados que você não quer que sejam vistos.

    
por 27.01.2012 / 18:47
7

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

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 escritos na mídia antes de poder armazenar dados nela. Desta forma, a cabeça pode detectar quando é A) em uma pista e B) onde está na pista. Formatação de baixo nível um disquete prepara o disco para poder ler e escrever blocos. Os primeiros discos rígidos MFM e RLL para PC podem ter um formato de 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 escrever zeros em todos os blocos, configurar a unidade para desabilitar áreas "ocultas" como HPA e DCO e, em seguida, zerar todos os blocos ou outras coisas mais relacionadas ao particionamento do que à formatação.

Raw flash precisa de uma etapa preparatória inicial diferente na fábrica - cada flash "eraseblock" (analogus a um "bloco" em discos) precisa ser testado e marcado como ruim se for realmente ruim. Cada "eraseblock" possui um bloco "OOB" adicional pequeno que contém informações de correção de erros - e é onde ele é marcado como ruim. Você NÃO quer repetir este passo, já que o ato de escrever em um bloco ruim pode impedir que você configure aquele bit específico novamente que o identifique como ruim.

Mas você não está lidando com flash bruto. Você está lidando com uma unidade flash USB. Há um chip controlador em todos os flash drives que aceitam comandos USB do host e conversam 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 agir como dois dispositivos de armazenamento USB separados. Dependendo da marca e do modelo do chip do controlador, você pode encontrar um utilitário de recuperação ou configuração (provavelmente somente Windows) que possa redefinir esse chip controlador. Você deve começar abrindo a unidade flash, procurando pelo menor de (provavelmente) dois chips que estão no PCB pequeno, e fazendo alguns Googling. A marca e o modelo impressos do lado de fora do gabinete provavelmente não ajudarão você a descobrir quem fez o controle dentro dele.

    
por 25.12.2012 / 18:06
5

Não há nenhuma maneira para fazer um formato de baixo nível na maioria dos dispositivos flash, pois eles possuem uma camada de tradução adicional de USB / ATA / SD / etc. para o MTD que obscurece os dispositivos MTD de baixo nível (que podem ter formatação de baixo nível se chegado diretamente [que você não pode]).

    
por 28.01.2012 / 01:54
4

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

    
por 27.01.2012 / 22:22
2

Eu já vi dispositivos no passado (embora não por enquanto) que implementam o comando SCSI FORMAT UNIT - do Linux você pode usar:

sg_format --format / dev / sdX

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

Acredito que alguns dispositivos USB 3 mais recentes também implementam comandos de segurança ATA, portanto você pode usar o link que é provável que tenha o efeito de redefinir a camada de conversão do flash para o estado de fábrica (como ocorre normalmente com os SSDs).

    
por 21.09.2015 / 18:08
0

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

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

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

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

Estou usando a versão que encontrei aqui: link

Outros links que você pode seguir: link link link link link link link link

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 isso:

Observeonúmerodapartedochipsetnomicrocontrolador:FC1178BC1OprogramaFCMPToolsiráidentificá-locomoumchipset1178BC:

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

De qualquer forma - fornecedores diferentes têm ferramentas diferentes, é um buraco de coelho, não há um padrão aqui AFAIK e (pelo menos esta ferramenta) só funcionará no Windows infelizmente.

Pelo que eu posso dizer, isso testará o chip de memória e gravará um mapa de setor defeituoso no chip do controlador para que ele possa apresentar apenas uma boa memória para o sistema operacional. Desta forma, mesmo chips parcialmente danificados podem ser usados e vendidos. Estes são provavelmente classificados na fábrica por qualidade e formatados de baixo nível para diferentes capacidades. Isso é chamado de binning.

Talvez, se alguém conseguir reunir muitas dessas ferramentas, fazer engenharia reversa delas e criar uma ferramenta universal de código aberto para o Linux, possamos fazê-lo - de outra forma, não vejo isso vindo.

    
por 31.08.2018 / 11:58