Lösung 1:
Versuch, fdisk
zu automatisieren ist möglich, aber nicht einfach zu pflegen. Wie andere Antworten bemerken, sind entweder parted oder sfdisk so konzipiert, dass sie das tun, was Sie wollen, und sind einfacher zu automatisieren.
getrennt
Zum Erstellen einer Partition in einer Zeile mit parted
:
parted -a optimal /dev/usb mkpart primary 0% 4096MB
wie in diesem UNIX SE-Beitrag zu sehen. Jeder der Teile ist ziemlich selbsterklärend, aber für alle Fälle hier, wie mkpart
ist definiert:
mkpart
[Teiletyp fs-Typ Name ] beginnen Ende
wobei Dinge in eckigen Klammern optional sind, aber Sie möchten wahrscheinlich primary
für Ihren Teiletyp , beginnen bei 0%
und enden bei 4096MB
oder wie groß Ihr USB-Stick auch ist.
Lösung 2:
Alles löschen und eine einzelne Partition erstellen:
dev='/dev/sdb'
sudo umount "$dev"
printf "o\nn\np\n1\n\n\nw\n" | sudo fdisk "$dev"
sudo mkfs.ext4 "${dev}1"
Siehe auch:https://superuser.com/questions/332252/creating-and-formating-a-partition-using-a-bash-script
Lösung 3:
Sie müssen wahrscheinlich den Befehl parted anstelle von fdisk verwenden.
Lösung 4:
sfdisk
hat auch einen nicht-interaktiven Modus, der Partitionsinformationen von stdin einliest. parted
ist aber flexibler.
Lösung 5:
Verwenden Sie stattdessen sfdisk.
Die sfdisk-Manpage ist ein wenig verwirrend, hier sind einige spezifische Beispiele, wie man die Einrichtung von Partitionen mit sfdisk automatisieren kann. Ein Beispiel ist, dass Sie die Partitionsinformationen von einem Laufwerk über sfdisk -l
speichern können und dann direkt auf ein neues Laufwerk kopieren.