Como posso criar scripts para a criação de uma única partição que usa o dispositivo inteiro?

7

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?

    
por Mike Deck 31.10.2012 / 00:19

3 respostas

10

Você pode fazer isso assim:

parted /dev/sdf --script -- mkpart primary 0 -1
    
por 31.10.2012 / 00:27
4

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.

    
por 31.07.2015 / 19:37
2

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.

    
por 31.07.2015 / 23:42