Eu escrevi para mim um pequeno script usando o comando fdisk, baseado no que eu sei mais pedaços de código encontrados on-line, que fazem algo muito similar, ou seja, formatam interativamente uma unidade em uma ou mais partições, perguntando se esta é a correta drive, esperando por um tempo definido, ou a entrada do usuário, avisando que está prestes a apagá-lo, etc. Uma coisa que ele não pode fazer, em sua forma atual, é retomar a execução após ser interrompido por qualquer razão, desde a entrada " Não, não formate! do usuário ou simplesmente um erro. Quando ele parar, tem que ser executado novamente.
Nota: $ (echo $ Output_Device) é uma variável shell e pode ser substituída por, por exemplo, sdb ou qualquer nome semelhante para um dispositivo de disco. O (s) comando (s) real (is) do fdisk que eu montei juntos são:
Formata o disco em duas partições, 1 de tamanho 64Mb e 2 no restante do disco:
(echo o; echo n; echo p; echo 1; echo ""; echo +64M; echo n; echo p; echo 2; echo ""; echo ""; echo w; echo q) | fdisk /dev/$(echo $Output_Device)
Então, na verdade, formata as partições, 1 como FAT, 2 como ext3:
mkfs.vfat -n BOOT /dev/$(echo $Output_Device)1
mkfs.ext3 -L root /dev/$(echo $Output_Device)2
Eu posso postar todo o script, mas é confuso, e gosto de manter comandos mesmo quando são comentados, para minha própria referência.
O caso mais geral, como fazê-lo retomar, eu posso ou não ser capaz de fazer, não tentei. Da mesma forma, isso funciona com o fdisk, mas outros comandos podem / precisarão de uma sintaxe diferente.