Estou tentando automatizar o fdisk com meus scripts Bash. No meu script, tenho o seguinte bloco de código:
echo "Creating root filesystem partition..."
(
echo n
echo 3
echo
echo
echo w
) | fdisk ${DEVICE}
Onde DEVICE
estão os discos físicos, como /dev/sda
/dev/nvme0n1
etc., mas não as partições. Porém, se o disco tiver um sistema de arquivos criptografado criado anteriormente, fdisk
solicita a remoção crypto_LUKS
da assinatura em Yes/No
um prompt simples. Posso simplesmente adicionar uma echo Y
linha no bloco, mas isso causaria um problema para os discos que não contêm nenhuma crypto_LUKS
assinatura.
Eu tentei ligar wipefs --all --force ${DEVICE}
e wipefs --all --force ${DEVICE}[1-9]*
antes de chamar esse bloco, porém ele remove apenas alguns sistemas de arquivos e tabelas de partição comuns, não funcionando para LUKS
assinaturas.
Até agora, ecoar opções para fdisk a partir de entrada/saída padrão parece uma abordagem muito codificada, por sugestão de @phuclv usar sgdisk é uma maneira muito versátil de automatizar seu particionamento.
Por exemplo, mudei essas linhas no meu post principal para linhas baseadas em sgdisk, é uma maneira muito eficiente de fazer isso:
Nesse grupo de números triplos, o primeiro número indica o número da partição desejada, o segundo número indica o número do primeiro setor (coloque zero se quiser o primeiro setor disponível) e o último número indica a partição (você pode usar um local fixo ou relativo localização para o primeiro setor por unidades de tamanho como eu fiz, ou coloque zero se quiser usar uma partição junto com o último setor disponível).
Se você perguntar como o sgdisk ajuda a remover assinaturas LUKS, posso dizer que o sgdisk força a remoção dessas assinaturas, não perguntando como o prompt CLI do fdisk.