Você pode fazer isso assim:
parted /dev/sdf --script -- mkpart primary 0 -1
Estou usando especificamente isso para particionar e montar volumes do EBS em instâncias do Amazon EC2, mas na verdade isso deve ser aplicável na hora de inicializar qualquer nova unidade.
Como a pergunta diz que eu quero fazer o script da criação de uma única partição primária que usa todo o espaço disponível no dispositivo em questão. Não sei com antecedência o tamanho do dispositivo e ele pode ser muito grande (ou seja, vários TB).
Ao pesquisar isso, parece que parted
é o melhor comando para usar em scripts. Eu acho que algo na linha de parted /dev/sdf mkpart primary 0 END
é o que eu quero, mas estou tendo dificuldade em descobrir uma maneira elegante de determinar qual deve ser o END. Alguém sabe uma maneira fácil de fazer isso?
Você pode fazer isso assim:
parted /dev/sdf --script -- mkpart primary 0 -1
Eu encontrei problemas quando tentei usar a outra resposta. O que funcionou para mim foi usar a abordagem de porcentagens como esta:
$ parted /dev/sdf --script -- mkpart primary 0% 100%
Há um problema com parted
e o modo como ele lida com o alinhamento das partições. Estes dois artigos discutem a questão um pouco:
A matemática delineada nesses artigos simplesmente não funcionou nos meus cenários. Enterrado em um dos comentários do segundo link, alguém sugeriu usar os percentuais e isso funcionou.
Aliás, você normalmente precisará rotular o HDD também. Para fazer isso via CLI com parted
:
$ parted /dev/sde --script -- mklabel msdos
-ou -
$ parted /dev/sde --script -- mklabel gpt
Dependendo do seu HDD.
Você pode fazer ...
printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk
... para um tipo msdos. Praticamente a mesma coisa funciona para o gpt ...
printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk
E você pode rotular seu disco durante a criação do sistema de arquivos.