Como script a criação de uma única partição que usa o dispositivo inteiro?


9

Estou usando isso especificamente para particionar e montar volumes EBS em instâncias do Amazon EC2, mas, na verdade, isso geralmente deve ser aplicável à inicialização de qualquer nova unidade.

Como a pergunta diz, quero criar um script para a criação de uma única partição primária que utilize todo o espaço disponível no dispositivo fornecido. Não saberei antecipadamente qual o tamanho do dispositivo e pode ser muito grande (ou seja, vários TB).

Ao pesquisar isso, parece partedser o melhor comando a ser usado para scripts. Eu acho que algo do tipo parted /dev/sdf mkpart primary 0 ENDé o que eu quero, mas estou tendo dificuldade em descobrir uma maneira elegante de determinar o que deve ser o FIM. Alguém sabe uma maneira fácil de fazer isso?

Respostas:


11

Você pode fazer isso assim:

parted /dev/sdf --script -- mkpart primary 0 -1

5

Eu tive 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 partede a maneira como ele lida com o alinhamento das partições. Estes 2 artigos discutem um pouco a questão:

A matemática descrita nesses artigos simplesmente não funcionou nos meus cenários. Enterrado em um dos comentários no segundo, link que alguém sugeriu usar as porcentagens e que funcionou.

Aliás, você também precisará rotular o disco rígido. Para fazer isso via CLI com parted:

$ parted /dev/sde --script -- mklabel msdos

-ou-

$ parted /dev/sde --script -- mklabel gpt

Dependendo do seu HDD.


gdiskalinha corretamente. Na minha opinião, partedé uma bagunça. Faz muito - e as coisas que faz são apenas vagamente conectadas. É estranho como ele cria sistemas de arquivos e particiona tabelas juntos - os locais de disco para os dados que ele grava não são iguais no mesmo bairro. Eu só comecei a entender como os discos funcionavam quando percebi que a tabela de partição é um pequeno mapa que fica à sua frente e indica ao sistema operacional onde ele pode procurar um sistema de arquivos, se assim o desejar. Quando isso clicou, eu entendi super-blocos e mega-homem e tudo. Bem, eu gosto de pensar assim mesmo.
mikeserv

Obrigado, o site das ferramentas neste espaço sempre foi uma bagunça para mim. Eu constantemente misturo sfdisk, fdisk, cfdisk, parted, etc. Vou tentar o fdisk e ver se é mais fácil. Principalmente procurando um fácil de executar a partir da opção cli para inclusão em scripts.
Slm

Basicamente [gf]disk, não discrimine seu estilo - eles não se importam se é de um termInal. Portanto, qualquer sequência de comando que você inserir interativamente para obter o que deseja pode ser diretamente traduzida para um printfscript. Todas as novas linhas na minha resposta são apenas as (or press enter for default)opções. É bem fácil. Quando eu brincar w /-los Eu só ir para /tmpe fallocate -l1g imgem seguida, basta usar o meu novo /tmp/imgarquivo como meu disco - eles não se importam. Eles só querem escrever uma tabela de partição. Se você fizer o mesmo, dê uma olhada no que acontece strings -1 imgocasionalmente.
precisa saber é o seguinte

Mas eu estava mentindo antes - megaman continua sendo misterioso para mim. Talvez ele sempre faça isso.
precisa saber é o seguinte

11
com parted /dev/sdf --script -- mkpart primary 0 -1recebi um aviso de não alinhado para obter o melhor desempenho. Ele correu bem com percentuais
nachoparker

2

Você pode fazer...

printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk

... para um tipo de msdos. Praticamente a mesma coisa funciona para gpt ...

printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk

E você pode rotular seu disco durante o tempo de criação do sistema de arquivos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.