Est-il possible de créer et de formater une partition à l'aide d'un script bash?
Je pense que cela peut être fait avec fdisk mais je ne sais pas comment introduire des commandes du script bash dans le shell fdisk, puis quitter le shell fdisk.
Je veux créer une partition puis la formater en ntfs à partir de bash.
bash
partitioning
ntfs
fdisk
GlassGhost
la source
la source
sfdisk
est plus facile à automatiser quefdisk
sfdisk
sfdisk
est une version scriptée defdisk
Cela fait partie
util-linux
, commefdisk
si, donc la disponibilité devrait être la même.Une table de partition avec une seule partition qui prend tout le disque peut être créée avec:
et des tables de partition plus complexes sont expliquées ci-dessous.
Pour générer un exemple de script, obtenez la configuration de l’un de vos disques:
Exemple de sortie sur mon dual boot Lenovo T430 Windows 7 / Ubuntu:
Une fois le script enregistré dans un fichier, vous pouvez l'appliquer
sdX
avec:Pour la
sfdisk
saisie, vous pouvez simplement omettre les noms de périphériques et utiliser des lignes de type:Ils sont simplement ignorés s'ils sont présents et le nom du périphérique est extrait de l'argument de la ligne de commande.
Quelques explications:
label
: type de table de partition.dos
(MBR) est l’ancien,gpt
le plus brillant , le plus populaire.unit
: seulementsector
est pris en charge. 1 secteur est généralement égal à 512 octets. Trouver aveccat /sys/block/sda/queue/hw_sector_size
Voir aussi: https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partitiondevice
: informatif seulement je penselignes de partition:
start
: offset à l'intérieur du disque où la partition démarre.start
a de très bons défauts, et peut souvent être omis:start
correspond à 2048, soit 1 Mo (2048 + 512), ce qui est un paramètre normal pour la compatibilité des disquesstart
défaut sur la première position non allouéesize
:man sfdisk
Dit:The default value of size indicates "as much as possible"
. Donc, pour remplir le disque avec une seule partition, utilisez:/dev/sda : start=2048, type=83
type
: octet magique stocké sur le secteur de démarrage pour chaque entrée de partition . Valeurs possibles: https://en.wikipedia.org/wiki/Partition_type Sur cet exemple, nous observons:7
(sda1
,2
et3
): systèmes de fichiers pris en charge par Windows. Matériel Windows préinstallé et partitions de récupération Lenovo.sudo blkid
les étiquettes aident à les identifier.5
(sda4
): partition primaire étendue, qui contiendra d'autres partitions logiques (car nous ne pouvons avoir que 4 partitions primaires avec MBR)83
(sda5
,7
et8
): partitions supportées par Linux. Pour moi, unehome
et deux racines avec différentes versions d'Ubuntu82
(sd6
): échangefdisk
peut également lire dessfdisk
scripts avec laI
commande, qui les "source" lors d'unefdisk
session interactive , vous permettant une personnalisation plus poussée avant l'écriture de la partition.Testé sur Ubuntu 16.04,
sfdisk
2.27.1.Formater et peupler les partitions d’un fichier image sans
sudo
Il s'agit d'un bon moyen d'apprendre à utiliser
sfdisk
sans faire exploser vos disques durs: https://stackoverflow.com/questions/10949169/how-to-create-a-multi-partition-sd-disk-image-without-root- privilèges / 52850819 # 52850819la source
fdisk
lit à partir de stdin donc vous avez juste besoin de lui donner les commandes appropriées. Par exemple, ce qui suit efface la table de partition, s’il en existe une, et en crée une nouvelle avec une seule partition qui est le; disque entier:Je vous recommande de faire la tâche que vous voulez, en enregistrant ce que vous tapez afin de pouvoir la reproduire.
la source
printf
plutôtecho
que d'avoir l'habitude d'utiliser quelque chose qui se comporte de manière cohérente sur tous les systèmes.Vous pouvez le faire avec seulement quelques commandes, utilisez intros \ n au lieu de plusieurs échos.
la source
\n
nécessaire après lew
?echo
termine automatiquement la ligne avec une nouvelle ligne (sauf si l'-n
option est utilisée)Vous pouvez écrire un script
fdisk
.Cela crée une partition de 200 Mo sur
/dev/sdc
la source
Les commandes de tuyauterie vers fdisk fonctionnent bien comme expliqué par d’autres personnes, mais de cette façon un peu plus élégantes et lisibles:
La tuyauterie à partir d'un fichier (temporaire) fonctionne également:
la source
Créez un nouveau type de label gpt:
sudo /sbin/parted /dev/xvdf mklabel gpt --script
Partitionnez le disque:
sudo /sbin/parted /dev/xvdf mkpart primary 0% 100% --script
la source
la source
Le script utilise fdisk pour créer des partitons basés sur les réponses d’autres personnes.
Modifiez les éléments suivants dans le script:
NUM_PARTITIONS = 5
PARTITION_SIZE = "+ 10G"
Un exemple d'utilisation est donné après le script.
courir avec:
sudo sh mk_partition.sh / dev / sdxxx
la source
Vous pouvez utiliser ce script. Assurez-vous simplement de définir vos propres partitions là où elles
hdd
sont définies. Il y a 2 espaces vides entre1
etw
; ils doivent être là pour prendre les valeurs par défaut.la source