Você pode destruir a tabela de partições incorretas fazendo dd if=/dev/zero of=/dev/sdX bs=512 count=2
e depois criar uma nova usando fdisk ou gparted. Certifique-se de que o X está correto.
Eu tenho um cartão SD de 8Gig que estou tentando formatar mas, por algum motivo, nada parece ser capaz de fazer isso. Eu tentei verificar a sobreposição de bits de início e fim, mas claramente não há sobreposição neles.
Coisas que eu tentei:
1. fdisk
para excluir a partição e também para criar uma nova partição, mas os dados ainda existem e nenhum erro foi mostrado.
2. Tentei o mesmo que acima usando o GParted mas gparted
dá um erro de partição de sobreposição quando há apenas uma partição também há um erro "Argumento inválido para procurar enquanto escreve" gerado pelo GParted.
3. Usou dd
para preencher o dispositivo com 0, mas ainda não conseguiu formatar o cartão.
4. Usou shred
como alternativa e sem sorte.
Gostaria de saber qual é realmente o problema ou que outras soluções posso tentar.
UPDATE
Eu tentei sgdisk -Z
no dispositivo e é isso que eu recebo como um erro:
Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Tentei redimensionar os bits iniciais e finais usando GParted e Fdisk, mas eles não mudam nada e o início e o fim permanecem os mesmos.
Disk /dev/sdb: 7.5 GiB, 8026849280 bytes, 15677440 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 15677439 15669248 7.5G b W95 FAT32
Como visível, não existem outras partições.
Você pode destruir a tabela de partições incorretas fazendo dd if=/dev/zero of=/dev/sdX bs=512 count=2
e depois criar uma nova usando fdisk ou gparted. Certifique-se de que o X está correto.
O cartão SD pode ter um comutador de bloqueio de gravação física. Este está trancado? desculpe se isso parece bobo.
Tente o seguinte comando para zerar completamente todas as informações da partição. Como root (ou usando o sudo ou qualquer outra solução que você tenha no seu sistema). Aviso: todos os dados no cartão SD serão perdidos e, se você não inserir o dispositivo correto, poderá destruir todos os dados do sistema
sgdisk -Z /dev/XXXX
onde /dev/XXXX
é o dispositivo correspondente ao seu cartão SD, algo como /dev/sde
ou algo semelhante.
Reinicie o computador e tente formatar o cartão SD com a sua ferramenta habitual.
Se as coisas ainda estiverem ruins, ou você não usa o arquivo de dispositivo correto, ou o seu sistema lunix não pode gravar no cartão SD, talvez ele esteja danificado. Dê uma olhada nas mensagens do sistema, usando dmesg | tail -100
.
O seu cartão SD tem uma tabela de partições GPT, como o aviso sgdisk
(e não erro, a propósito) prova:
Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another
utility.
E o resultado é um sucesso:
GPT data structures destroyed! You may now partition the disk using fdisk
or other utilities.
A tabela GPT (gerenciada com gdisk) é gravada duas vezes em um dispositivo, uma no início e outra no final na ordem inversa. Portanto, a tabela GPT é "mais strong" do que as partições MBR (gerenciadas com fdisk antigo) e resistem a comandos como: dd if=/dev/zero of=/dev/sdx count=20 bs=512
porque a cópia de backup é gravada no final e não é apagada.
Depois de zapping os parititons com sgdisk -Z
, você reinicializou o computador? Se você não o fizer, é possível que o kernel linux ainda use sua própria idéia de memória no cartão. A melhor coisa a fazer para garantir que o linux saiba que a placa foi apagada é reinicializar.
Em algumas situações, é possível misturar a tabela de partições MBR e GPT, mas as duas tabelas precisam concordar e apenas usuários muito experientes podem misturar o uso da partição MBR e GPT.
Não está claro se a sua versão do fdisk reconhece o GPT ou não. Você pode estar tentando editar a partição MBR com fdisk, enquanto o liner kertnel usa a tabela de partição GPT (backup).
Então, mais uma vez:
sgdisk -Z
Se o problema continuar, dmesg
pode ajudar.