Existe alguma maneira de criar e formatar uma partição usando um script bash?
Eu acho que isso pode ser feito com o fdisk, mas não sei como alimentar comandos do script bash no shell do fdisk e sair do shell do fdisk.
Eu estou querendo criar uma partição, em seguida, formatá-lo para NTFS de dentro do bash.
bash
partitioning
ntfs
fdisk
GlassGhost
fonte
fonte
sfdisk
é mais amigável à automação do quefdisk
sfdisk
sfdisk
é uma versão com script defdisk
Faz parte
util-linux
, assim comofdisk
, portanto, a disponibilidade deve ser a mesma.Uma tabela de partição com uma única partição que ocupa o disco inteiro pode ser criada com:
e tabelas de partição mais complexas são explicadas abaixo.
Para gerar um script de exemplo, obtenha a configuração de um de seus discos:
Exemplo de saída na inicialização dupla do Lenovo T430 Windows 7 / Ubuntu:
Depois de salvar o script em um arquivo, você pode aplicá-lo
sdX
com:Para
sfdisk
entrada, você pode simplesmente omitir os nomes dos dispositivos e usar linhas do tipo:Eles são ignorados apenas se presentes, e o nome do dispositivo é obtido no argumento da linha de comando.
Algumas explicações:
label
: tipo de tabela de partição.dos
(MBR) é o antigo e amplamente suportado,gpt
o novo aspecto brilhante.unit
: apenassector
é suportado. 1 setor geralmente é igual a 512 bytes. Localizar comcat /sys/block/sda/queue/hw_sector_size
Veja também: https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partitiondevice
: apenas informativo eu acholinhas de partição:
start
: deslocamento dentro do disco em que a partição é iniciada.start
tem padrões muito bons e geralmente pode ser omitido:start
é 2048, ou seja, 1Mb (2048 + 512), que é um padrão sensato para compatibilidade de discostart
padrão adicional para a primeira posição não alocadasize
:man sfdisk
Diz:The default value of size indicates "as much as possible"
. Portanto, para preencher o disco com uma única partição, use:/dev/sda : start=2048, type=83
type
: byte mágico armazenado no setor de inicialização para cada entrada da partição . Valores possíveis: https://en.wikipedia.org/wiki/Partition_type Neste exemplo, observamos:7
(sda1
,2
e3
): sistemas de arquivos que o Windows suporta. Material pré-instalado do Windows e partições de recuperação da Lenovo.sudo blkid
os rótulos ajudam a identificá-los.5
(sda4
): partição primária estendida, que conterá outras partições lógicas (porque só podemos ter 4 partições primárias com MBR)83
(sda5
,,7
e8
): partições suportadas pelo Linux. Para mimhome
, uma e duas raízes com diferentes versões do Ubuntu82
(sd6
): swapfdisk
também pode lersfdisk
scripts com oI
comando, que os "origina" durante umafdisk
sessão interativa , permitindo maior personalização antes de gravar a partição.Testado no Ubuntu 16.04,
sfdisk
2.27.1.Formate e preencha as partições de um arquivo de imagem sem
sudo
Esta é uma boa maneira de aprender a usar
sfdisk
sem explodir seus discos rígidos: https://stackoverflow.com/questions/10949169/how-to-create-a-multi-partition-sd-disk-image-without-root- privilégios / 52850819 # 52850819fonte
fdisk
lê stdin, então você só precisa alimentar os comandos apropriados. Por exemplo, o seguinte limpa a tabela de partição, se houver, e cria uma nova que possui uma única partição; disco inteiro:Eu recomendo que você faça a tarefa que deseja, registrando o que digita para poder reproduzi-la.
fonte
printf
vez deecho
apenas, o hábito de usar algo que se comporta de maneira consistente nos sistemas.Você pode fazer isso com apenas alguns comandos, use introduções \ n em vez de vários ecos.
fonte
\n
necessário outro após ow
?echo
termina automaticamente a linha com uma nova linha (a menos que-n
opção é utilizada)Você pode escrever
fdisk
.Isso cria uma partição de 200 MB no
/dev/sdc
fonte
Os comandos de canalização para o fdisk funcionam bem como explicado por outras pessoas, mas desta maneira um pouco mais elegante e legível:
A tubulação de um arquivo (temporário) também funciona:
fonte
Crie um novo tipo de rótulo de disco gpt:
sudo /sbin/parted /dev/xvdf mklabel gpt --script
Particione o disco:
sudo /sbin/parted /dev/xvdf mkpart primary 0% 100% --script
fonte
fonte
O script usa o fdisk para criar partições com base nas respostas de outras pessoas.
Altere o seguinte no script:
NUM_PARTITIONS = 5
PARTITION_SIZE = "+ 10G"
Exemplo de uso é dado após o script.
correr com:
sudo sh mk_partition.sh / dev / sdxxx
fonte
Você pode usar esse script. Apenas certifique-se de definir suas próprias partições onde
hdd
está definido. Existem 2 espaços em branco entre1
ew
; eles precisam estar lá para obter valores padrão.fonte