Temos uma placa personalizada Beaglbone black com 256 MB de RAM e 4 GB eMMC.
Temos script para software flash na placa.
O script apaga a tabela de partições gpt usando os seguintes comandos
#Delete primary gpt (first 17KiB)
dd if=/dev/zero of=/dev/mmcblk0 bs=1024 count=17
#Delete secondary gpt (last 17KiB)
dd if=/dev/zero of=/dev/mmcblk0 seek=3735535 bs=1024 count=17
As partições são excluídas, no entanto, o script re-particiona o eMMC novamente no mesmo número de partições.
Depois disso, ele tenta formatar cada partição usando mkfs.ext4
(e2fsprogs versão 1.42.13).
Agora, ao formatar uma partição mkfs.ext4
, reclama que a partição possui um sistema de arquivos e foi montada em uma data específica no passado e pergunta se deve continuar?
/dev/mmcblk0p15 contains a ext4 file system labelled 'rootfs'
last mounted on /mnt/rfs_src on Fri Feb 16 13:52:18 2018
Proceed anyway? (y,n)
Isso não estava acontecendo no passado, ou seja, com a versão e2fsprog, 1.42.8
o mesmo script costumava funcionar.
Da nota de lançamento de e2fsprog-1.42.13
vejo que last mounted
é adicionado a alguma estrutura.
Agora a pergunta é como podemos remover essas last mounted
informações da partição?
Eu tentei wipfs -a
, mas tem o mesmo comportamento. Uma maneira de zerar enquanto eMMC, no entanto, isso levará muito tempo.
Alguma sugestão/indicadores?
Da página man de mkfs.ext4 :
você pode simplesmente adicionar a
-F
opçãomkfs.ext4
no script para ignorar a pergunta e continuar sem atendimento. Não está claro na descrição que este é o caso "ou se outros parâmetros não fizerem sentido". Verifiquei novamente se apenas um único-F
é necessário, protegendo assim contra a formatação acidental de um sistema de arquivos montado.Não acho que o último diretório montado esteja relacionado a isso. É apenas mais à prova de falhas adicionado. Da mesma forma, algumas versões mais recentes do fdisk ou gdisk interativo fazem o oposto: quando detectam que um sistema de arquivos anterior estava lá ao criar uma nova partição, eles se oferecem para limpar a assinatura.
Graças a @frostschutz, sua sugestão funcionou.
Apenas para completar, estou adicionando isso como uma resposta,
Usar os seguintes comandos funcionou para mim.
O primeiro comando excluiu as informações do sistema de arquivos de cada partição.
o segundo comando excluiu a tabela de partições.