fdisk - partição em linha única

6

Você pode criar uma partição em um disco usb usando o comando fdisk em uma única linha.

O comando fdisk é interativo por natureza, mas eu quero automatizar a criação de partições em uma única linha usando o comando fdisk.

    
por kumar 11.04.2011 / 10:03

5 respostas

7

Tentar automatizar fdisk é possível, mas não é fácil de manter. Como outras respostas, note que se separou ou sfdisk são projetados para fazer o que você quer e são mais fáceis de automatizar.

dividido

Para criar uma partição em uma linha com parted :

parted -a optimal /dev/usb mkpart primary 0% 4096MB

como visto em este post do UNIX SE . Cada uma das partes é bastante auto-explicativa, mas apenas no caso aqui é como mkpart é definido:

mkpart [ tipo de peça fs-type nome ] início final

em que os pontos entre colchetes são opcionais, mas você provavelmente deseja primary para seu tipo de peça , iniciar em 0% e terminar em 4096MB ou por muito grande que seja o seu stick USB.

sfdisk

A entrada para sfdisk não é muito mais fácil de entender do que a entrada para fdisk , mas é pretendida para automação.

#!/bin/sh
# Example Usage: create_sd /dev/sdb

DRIVE=$1

dd if=/dev/zero of=$DRIVE bs=1024 count=1024

SIZE='fdisk -l $DRIVE | grep Disk | awk '{print $5}''

echo DISK SIZE - $SIZE bytes

CYLINDERS='echo $SIZE/255/63/512 | bc'

echo CYLINDERS - $CYLINDERS

{
echo ,9,0x0C,*
echo ,,,-
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE

mkfs.vfat -F 32 -n "boot" ${DRIVE}1
mke2fs -j -L "rootfs" ${DRIVE}2

vem do The Linux Daily e, apesar de não se encaixar no pedido de uma linha, ele mostra como isso pode ser feito.

    
por 12.09.2015 / 02:54
2

Você provavelmente precisará usar o comando dividido em vez de fdisk.

    
por 11.04.2011 / 10:13
2

sfdisk também possui um modo não interativo que lê informações de partição de stdin. parted é mais flexível, no entanto.

    
por 11.04.2011 / 10:17
2

Use o sfdisk em seu lugar.

A página de manual do sfdisk é um pouco confusa. Veja alguns exemplos específicos de de como automatizar a configuração da partição com o sfdisk. Um exemplo é que você pode salvar as informações da partição de uma unidade por meio de sfdisk -l e, em seguida, despejar isso diretamente em uma nova unidade.

    
por 11.04.2011 / 10:17
2

Apague tudo e crie uma única partição:

dev='/dev/sdb'
sudo umount "$dev"
printf "o\nn\np\n1\n\n\nw\n" | sudo fdisk "$dev"
sudo mkfs.ext4 "${dev}1"

Veja também: link

    
por 11.09.2015 / 22:22