Je partitionner un disque dur non SSD avec entrouvertes parce que je veux une table de partition GPT.
parted /dev/sda mklabel gpt
Maintenant, j'essaie de créer les partitions correctement alignées. J'utilise la commande suivante pour savoir où commence le premier secteur:
parted /dev/sda unit s p free
Disk /dev/sda: 488397168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
34s 488397134s 488397101s Free Space
Nous pouvons voir que cela commence dans le secteur 34 (c'est la valeur par défaut lorsque cette table de partition est utilisée).
Donc, pour créer la première partition que j'ai essayée:
parted /dev/sda mkpart primary 63s 127s
pour l'aligner sur le secteur 64 puisqu'il s'agit d'un multiple de 8 mais cela montre:
Avertissement: La partition résultante n'est pas correctement alignée pour optimiser les performances.
Les tailles de secteur logique et physique sur mon disque dur sont toutes deux de 512 octets:
cat /sys/block/sda/queue/physical_block_size
512
cat /sys/block/sda/queue/logical_block_size
512
Comment créer des partitions correctement alignées? Qu'est-ce que je fais mal?
parted /dev/sda mkpart primary 64s 128s
(au cas où ça commence en 1) mais ça retourne le même avertissement.Réponses:
Afin d'aligner la partition avec
parted
vous, vous pouvez utiliser l'--align
option. Les types d'alignement valides sont les suivants:Une autre astuce utile est que vous pouvez définir la taille avec des pourcentages pour l’aligner. Commencez à 0% et finissez à 100%. Par exemple:
parted -a optimal /dev/sda mkpart primary 0% 4096MB
la source
0% 100%
? D'où4096MB
vient-il?'0%'
guillemets pour que mon shell puisse exécuter la commande correctement.print
Ma solution a été d'utiliser gdisk, qui peut effectuer l'alignement des partitions automatiquement sur 2048 secteurs (1024 Ko) par défaut, bien que cela puisse être modifié dans le menu Expert.
la source
Depuis le Wiki Arch :
Lors de la création d'une partition, Parted peut avertir d'un alignement incorrect de la partition mais ne suggère pas un alignement correct. Par exemple:
L'avertissement signifie que la partition
start
n'est pas alignée.Entrez
Ignore
quand même pour continuer , imprimez la table de partition par secteurs pour voir où elle commence et supprimez / recréez la partition avec le secteur de départ arrondi à la puissance croissante égale à 2 jusqu'à ce que l'avertissement cesse. À titre d'exemple, sur un lecteur flash avec 512 milliards de secteurs, Parted voulait que les partitions démarrent sur des secteurs multiples de 2048, ce qui correspond à un alignement de 1 Mo.En outre, juste au-dessus de cette section, ils indiquent que les unités binaires IEC plus précises de KiB, MiB, GiB, etc., sont acceptables pour les unités, ainsi que les unités moins précises KB, MB, GB, etc.
Personnellement, ma commande exacte qui a résolu ceci était:
Il ne s'est pas plaint, je suppose qu'il voulait des alignements de 1 Mo.
la source
Une correction mineure. Si je comprends bien, les disques GPT n’ont plus de types de partition, ils sont tous «primaires». La commande 'mkpart primary' ne crée pas de partition principale comme sur les disques msdos, elle crée simplement une partition appelée primaire. Vous pouvez aussi bien utiliser la commande
Cela peut semer la confusion si vous essayez de créer des partitions logiques, je le sais bien.
Vous ne pouvez pas créer une partition appelée "logique" à l'intérieur d'une partition appelée "étendue".
la source
La réponse acceptée par @lik montre comment vous pouvez spécifier l'alignement préféré. Toutefois, Parted utilise toujours cet alignement pour vérifier la partition résultante, mais ne crée pas toujours de partitions avec cet alignement.
TL; DR: lorsque 1 Mo est l'alignement optimal, spécifier 0% fonctionnera pour les disques de 200 Mo et plus. Pour des disques plus petits ou un alignement plus important, spécifier 0G peut fonctionner là où 0% ne fonctionne pas. Voir ci-dessous pourquoi.
Parted essaie de satisfaire les contraintes d'alignement lors de la création d'une partition, mais il ne s'écartera pas non plus trop des valeurs demandées. Ce qui compte comme "trop" dépend de la façon dont vous avez spécifié les postions.
Lorsque vous spécifiez une position de début (ou de fin) dans la commande mkpart, elle génère en interne une plage de valeurs acceptables. Cette plage est centrée sur la valeur que vous spécifiez et s'étend également des deux côtés de la moitié de la taille de l'unité que vous avez utilisée (c'est ce que je lis du code , les commentaires indiquent une taille d'unité complète aux deux extrémités).
Par exemple, lorsque vous spécifiez "10M", il essaiera d’utiliser une position comprise entre 9,5M et 10,5M. Il en va de même pour les pourcentages, donc si vous spécifiez 0%, il utilisera toute valeur comprise entre 0% et 0,5% (évidemment, elle ne sera pas négative).
Une exception est que, lorsque vous utilisez une puissance de deux unités (telle que KiB pour 1024, par opposition à K pour 1000), Parted suppose que vous essayez de spécifier une position exacte et ne considère que la valeur exacte que vous avez spécifiée.
Comme l'alignement optimal semble typiquement aligné sur 1 Mo, les unités K et M n'auront souvent pas assez de place pour atteindre un alignement optimal. Spécifier des positions dans G devrait avoir beaucoup de place, mais% est aussi très bien.
Donc, c'est pourquoi 0% fonctionne habituellement, même si cela a des limites.
la source