Como formatar um dispositivo USB (unidade flash) com o FAT32 para uso no Linux e Windows?

11

Quero formatar um cartão de memória para mover dados entre o Windows 7 e um servidor Ubuntu sem rede (Precise).

Não tenho certeza se uma das duas maneiras que tentei estão corretas, mesmo que eu possa ler e gravar na unidade nas duas máquinas.

Recebo uma lista de partições com aparência muito estranha fdiskse formatar a unidade no Windows (usando a ferramenta Gerenciamento de Disco), mas parece estar correto em termos de leitura e gravação no Linux e Windows.

imagem mostrando a saída do fdisk para uma unidade formatada do Windows

e cfdiskrelatórios

FATAL ERROR: Bad primary partition 1: Partition begins after end-of-disk.

Se, como alguns defensores , eu usar cfdiskpara criar uma partição primária do tipo disco inteiro b(ou fdiskpara criar uma partição que comece no bloco dois mil e algo mais) e depois emitir

sudo mkfs.vfat -n some_label /dev/sdf1

o Windows não reconhecerá o sistema de arquivos (depois de muitas eras a pensar).

Linux e Windows terão prazer em ler e gravar um mergulho de 2 GB se eu fizer a mesma partição, mas depois emitir:

sudo mkfs.vfat -I -n some_label /dev/sdf

mas isso faz com que a partição show-disco cheio de espaço livre em cfdiske fdiske Windows não gosta da unidade de 16GB.

Eu tentei usar partedtambém, mas o Windows nunca fica satisfeito com as partições que eu crio no Linux.

Estou preocupado que, embora a unidade pareça funcionar, posso descobrir que os dados não estão sendo transferidos fielmente.

Estou usando unidades SanDisk Cruzer de várias idades, sabores e tamanhos.

É a maneira correta de formatar no Windows e ignora os problemas que o cfdisk e o fdisk têm ou existe outra maneira correta pela qual todos estão felizes com a unidade?

jah
fonte
Você já tentou usar a ferramenta "HP USB Format" em vez de diskmgmt.msc?
GENiEBEN
1
use gparted, crie um disco NTFS, use-o no windows. Outra maneira é simplesmente excluir tudo dele (sem nenhuma partição), particioná-lo no Windows com compmgmt.msc ou HP USB Tool e usá-lo no Windows e Linux.
72DFBF5B A0DF5BE9
@GENiEBEN Eu não encontrei e também não consigo encontrar uma fonte respeitável.
jah

Respostas:

9

O Windows geralmente usa mídia externa, como unidades flash USB, de forma não particionada - ou seja, não há tabela de partições e o sistema de arquivos é gravado em todo o disco. Se seu disco estiver configurado dessa maneira, você deve usá-lo /dev/sdfdiretamente, como em:

mount /dev/sdf /mnt

Você poderia usar mkfs, fscke outras ferramentas de uma forma similar. Você pode usar blkidpara verificar isso, como em blkid /dev/sdf. Se ele diz que /dev/sdfé um sistema de arquivos FAT (ou algum outro), então minha hipótese está correta.

Se o disco não tem dados que deseja preservar e você quer criar um novo sistema de arquivos nele, você pode fazê-lo no disco inteiro ou você pode usar fdisk, partedou alguma outra ferramenta para criar um fresco (Vazio) tabela de partição. Em fdisk, você faria isso com o ocomando no menu principal. Isso irá limpar as "partições" existentes (que provavelmente são apenas fdiskuma tentativa desesperada de interpretar o primeiro setor de um sistema de arquivos FAT) e criar uma nova tabela de partições vazia. Você usaria npara criar uma nova partição, salvar as alterações com we usar mkfsou mkdosfsfora de fdiskpara criar um novo sistema de arquivos /dev/sdf1.

Observe que o Windows reconhece apenas a primeira partição em uma unidade flash USB que contém uma tabela de partições. Portanto, se você desejar mais de uma partição, verifique se a primeira é aquela que estará acessível no Windows.

Rod Smith
fonte
1
Essa bagunça relatada pelo fdisk (veja a captura de tela na pergunta) pode ser corrigida zerando a unidade com dd if=/dev/zero of=/dev/sdfou shred -n 0 -z /dev/sdfantes de criar uma partição.
jah
3
Crie uma partição com fdisk /dev/sdf(usando os padrões apresentados no modo interativo) do tipo b (Windows95)(digite c (Windows95 (LBA))uma unidade de 16 GB - é o que o Windows faz) e formate-a usando um mkfs.vfat /dev/sdf1ou outro Windows com a ferramenta Gerenciamento de Disco (que relata o sistema de arquivos como 'RAW' quando a unidade é conectada pela primeira vez). Ambas as formas resultarão em uma unidade que o fdisk reporta de forma consistente. Observe que isso resulta em uma partição que não é 'disco inteiro' e, portanto, /dev/sdf1é a única a fazê - lo mount.
jah
Não pude confirmar sua hipótese @Rod Smith, porque agora esta unidade não é 'disco inteiro': sudo blkid /dev/sdfnão reporta nada, mas sudo blkid /dev/sdf1reporta TYPE="vfat". Muito obrigado pela sua resposta, agora tenho unidades de trabalho eu tenho confiança no.
jah