Solution 1 :
Essayer d'automatiser fdisk
c'est possible, mais ce n'est pas facile à entretenir. Comme le notent d'autres réponses, parted ou sfdisk sont conçus pour faire ce que vous voulez et sont plus faciles à automatiser.
séparé
Pour créer une partition sur une ligne avec parted
:
parted -a optimal /dev/usb mkpart primary 0% 4096MB
comme on le voit dans cet article UNIX SE. Chacune des parties est assez explicite, mais juste au cas où voici comment mkpart
est défini :
mkpart
[part-type type_fs nom ] démarrer fin
où les choses entre crochets sont facultatives, mais vous voulez probablement primary
pour votre part-type , démarrer à 0%
et se termine à 4096MB
ou quelle que soit la taille de votre clé USB.
Solution 2 :
Effacez tout et créez une seule partition :
dev='/dev/sdb'
sudo umount "$dev"
printf "o\nn\np\n1\n\n\nw\n" | sudo fdisk "$dev"
sudo mkfs.ext4 "${dev}1"
Voir aussi :https://superuser.com/questions/332252/creating-and-formating-a-partition-using-a-bash-script
Solution 3 :
Vous devrez probablement utiliser la commande parted au lieu de fdisk.
Solution 4 :
sfdisk
dispose également d'un mode non interactif qui lit les informations de partition à partir de stdin. parted
est plus flexible, cependant.
Solution 5 :
Utilisez plutôt sfdisk.
La page de manuel de sfdisk est un peu déroutante, voici quelques exemples spécifiques sur la façon d'automatiser la configuration de la partition avec sfdisk. Un exemple est que vous pouvez enregistrer les informations de partition d'un lecteur via sfdisk -l
puis videz-le directement sur un nouveau lecteur.