Cookies de statistiques et de publicité
Nous utilisons des cookies de statistiques et de publicité, tous deux destinés à Google. Si vous refusez, rien ne change visiblement pour vous.Aller à la page de confidentialité
1 GiB = 1048576 KiB
Saisissez une valeur et la conversion de gibioctet en kibioctet suit pendant que vous tapez. Le facteur vaut exactement 1048576 : c’est ce que représente 1 Gio en Kio. Le calcul se fait sur votre propre appareil ; une fois la page chargée, elle n’interroge plus aucun serveur.
8 Gio is 8389000 Kio
— la mémoire d’un portable de milieu de gamme.
931 Gio is 976200000 Kio
— ce que Windows affiche pour un disque d’un téraoctet.
0,0004883 Gio is 512 Kio
— un demi-mébioctet.
0,000003815 Gio is 4 Kio
— une page de mémoire sur la plupart des systèmes.
| Gio | Kio |
|---|---|
| 1 | 1048576 |
| 2 | 2097152 |
| 5 | 5242880 |
| 10 | 10485760 |
| 50 | 52428800 |
| 100 | 104857600 |
| 500 | 524288000 |
| 1000 | 1048576000 |
Convertir des Gio en Kio
Un gibioctet vaut 1 073 741 824 octets, environ 7 % de plus qu’un gigaoctet. Windows mesure en gibioctets tout en les étiquetant « Go », et c’est là tout le mystère de l’espace disque qui s’évapore.
Un kibioctet vaut exactement 1 024 octets. Le nom a été introduit en 1998 pour que « kilooctet » puisse de nouveau valoir 1 000 — l’habitude n’a jamais tout à fait cédé.
Dans ce sens, l'opération est une multiplication, et par un nombre entier : un gibioctet fait 1 048 576 kibioctets, exactement, et 1 048 576 est la définition, pas une mesure tombée juste.
C'est donc une des rares conversions qui valent le coup de tête, et le résultat se vérifie : divisez en sens inverse et vous devez retomber exactement sur le nombre de départ, sans reste à justifier.
Un GiB vaut 1 024 fois l'unité du dessous ; un GB, 1 000. Sur cette page, c'est l'écart entre 1048576 KiB et 976562,5 KiB — 7,4 % — et il grandit à chaque palier : négligeable sur une photo, visible sur un disque dur.
Le mystère de l'espace disque manquant tient tout entier là-dedans, et sur cette page il vaut 7,4 %. Un disque vendu en GB contient exactement ce qui est annoncé ; Windows divise ensuite par 1 024 au lieu de 1 000, garde le nom décimal, et affiche 976562,5 KiB là où la boîte annonçait 1048576 KiB. macOS compte ces tailles en unités décimales depuis 10.6, d'où le même disque qui paraît de deux tailles sur deux machines — rien n'a disparu et personne n'arrondit : les mêmes octets portent deux noms.
Une table de partitions stocke le début et la longueur en secteurs. LVM stocke des étendues physiques. mdadm stocke une taille de tronçon en kibioctets. mkfs prend un compte de blocs. Aucun de ceux-ci n’est l’unité dans laquelle quelqu’un décide de la taille qu’un volume devrait avoir, donc chaque mise en page de disque implique de convertir un chiffre en gibioctets vers le bas au moins une fois, et d’habitude en deux unités plus petites différentes au cours de la même session.
Les chiffres qui valent la peine d’avoir à portée de main sont 1 048 576 Kio, 2 097 152 secteurs de 512 octets, et 262 144 blocs de 4 Kio par gibioctet. Tous trois sont des puissances de deux exactes, ce qui est commode et aussi la raison pour laquelle une mauvaise réponse a l’air plausible : une erreur d’un facteur deux produit toujours un nombre net, et seule la vérification contre la capacité totale la fera apparaître.
Pendant longtemps la première partition sur un disque de PC commençait au secteur 63, parce que la géométrie que le BIOS rapportait mettait soixante-trois secteurs par piste et que la première piste contenait le secteur d’amorçage. Soixante-trois est impair, donc chaque frontière qui en dérivait était impaire, et quand les disques sont passés à des secteurs physiques de 4 Kio tout en présentant des secteurs logiques de 512 octets, chaque bloc de système de fichiers tombait à cheval sur deux secteurs physiques.
Commencer au secteur 2048 — un mebioctet à l’intérieur — a corrigé cela en choisissant un décalage divisible par chaque granularité en jeu : secteurs physiques de 4 Kio, pages flash de 8 Kio et plus, tronçons RAID de 512 Kio, étendues LVM de 4 Mio. Le coût est un mebioctet de disque, ce qui à l’échelle du gibioctet est une erreur d’arrondi, et chaque outil de partitionnement l’a par défaut depuis bien plus d’une décennie. Une mise en page héritée qui commence ailleurs mérite d’être vérifiée avant d’être étendue.
La pénalité est un cycle de lecture-modification-écriture, et elle s’applique aux écritures plutôt qu’aux lectures. Un disque avec des secteurs physiques de 4 Kio ne peut pas écrire moins d’un, donc un bloc de système de fichiers de 4 Kio qui chevauche deux d’entre eux force le disque à lire les deux, à fusionner avec les nouvelles données et à écrire les deux en retour. Sur mémoire flash, l’unité équivalente est le bloc d’effacement et l’amplification est plus grande, parce que le contrôleur doit déplacer et finir par effacer bien plus que ce qui a été écrit.
Rien de tout cela n’apparaît dans un chiffre de capacité, un attribut SMART ou une sortie de df — le volume fonctionne et rapporte exactement la taille qu’il devrait. Cela se montre sous forme d’un débit d’écriture aléatoire qui n’est qu’une fraction de ce pour quoi le matériel est noté, et sous forme d’une amplification d’écriture qui raccourcit la durée de vie d’un SSD. La vérification est bon marché : parted /dev/sda align-check optimal 1 répond directement, et cat /sys/block/sda/queue/optimal_io_size donne la granularité que le disque préférerait.
LVM alloue en étendues physiques de 4 Mio par défaut, donc un volume logique de 100 Gio fait 25 600 étendues et toute taille qui n’est pas un multiple de 4 096 Kio arrondit à l’unité supérieure. C’est pourquoi lvcreate -L 10G et lvcreate -L 10GiB peuvent produire des volumes de la même taille alors que lvcreate -l 100%FREE produit quelque chose qui paraît arbitraire — c’est exact en étendues et malpropre en gibioctets.
Le RAID ajoute un autre niveau. mdadm a par défaut un tronçon de 512 Kio, et une bande sur n disques de données fait n tronçons de large, donc un RAID 5 à cinq disques a une bande de 2 Mio. La création du système de fichiers devrait en être informée : mkfs.ext4 prend stride et stripe-width en blocs de système de fichiers, et les obtenir justes permet aux écritures en bande complète d’éviter la lecture de parité. Toutes ces décisions se prennent au niveau du kibioctet sous une taille de volume choisie en gibioctets.
L’habitude la plus sûre est de donner le suffixe et de laisser l’outil convertir. parted accepte KiB, MiB, GiB et TiB explicitement, et parted -a optimal placera la frontière sur la bonne granularité sans qu’on le lui dise. sfdisk prend des tailles avec les suffixes K, M et G qui sont binaires. mkfs.ext4 prend un compte de blocs, donc une taille en gibioctets doit devenir 262 144 blocs par Gio, et obtenir celui-ci faux produit un système de fichiers qui tient et ne remplit pas la partition.
Là où un nombre brut est inévitable, écrire le chiffre en gibioctets dans un commentaire ou un message de commit à côté. Un script de mise en page plein de nombres comme 2 097 152 et 2 097 152 000 est correct et complètement opaque, et la prochaine personne à le modifier convertira l’un et pas l’autre. L’arithmétique est exacte dans les deux sens ; c’est la documentation qui disparaît.
parted print dans son unité par défaut arrondit à trois chiffres significatifs, et fdisk -l imprime une chaîne de taille humaine. Les deux servent à lire. Quand la taille va être utilisée — pour vérifier que deux partitions correspondent à travers un miroir, pour déterminer si un disque de remplacement est assez grand, pour dimensionner une copie dd — basculer l’outil en secteurs et prendre l’entier exact. parted unit s print et blockdev --getsz le donnent tous deux.
Cela compte le plus lors du remplacement d’un disque en panne dans une grappe. Deux disques vendus comme de la même capacité peuvent différer de quelques mebioctets, et un miroir n’acceptera pas un membre plus petit que celui qui existe. La convention qui évite le problème est de laisser un écart délibéré — partitionner à un chiffre rond de gibioctets un peu en dessous de la taille réelle du disque — pour que le compte exact de secteurs du disque suivant n’ait jamais à correspondre.
Une partition de 100 Gio fait 104 857 600 Kio, et un système de fichiers ext4 neuf dessus rapportera sensiblement moins. Le journal prend une quantité fixe, communément 128 Mio sur un volume de cette taille. Les tables d’inodes sont allouées à l’avance à raison d’un inode par 16 Kio par défaut, à 256 octets chacun — environ 1,6 Gio sur un volume de 100 Gio. Cinq pour cent sont réservés à root par défaut, ce que tune2fs -m peut réduire sur un volume de données où rien n’a besoin de la réserve.
Cela fait près de sept gibioctets comptabilisés avant qu’un octet ne soit écrit, et aucun n’est une perte — ce sont les structures qui font que le système de fichiers fonctionne, plus une réserve qui existe pour qu’un disque plein ne devienne pas un disque irrécupérable. Là où le volume contiendra un petit nombre de grands fichiers, mkfs.ext4 -T largefile réduit fortement le compte d’inodes et restitue la plus grande partie de la table d’inodes.
1 Gio vaut 1048576 Kio. La valeur est exacte et non arrondie : la correspondance de gibioctet en kibioctet est fixée par définition.
Non. Le calcul se fait dans votre navigateur. Vous pouvez couper la connexion et continuer à calculer — c’est d’ailleurs la façon la plus simple de le vérifier.
Parce que deux unités différentes portent le même nom. Les fabricants comptent 1 Go = 1 000 000 000 octets ; Windows affiche des gibioctets, soit 1 073 741 824 octets, tout en les appelant « Go ». Le même disque paraît ainsi environ sept pour cent plus petit. Rien n’a disparu.
Un Kio vaut 9,53674e-7 Gio. C’est le même rapport lu à l’envers : un résultat obtenu sur une page et repassé par l’autre doit revenir à son point de départ.
Ce que cette page affirme sur unités d’information se vérifie : voici les documents qui le fixent.
Le facteur figure dans la page sous forme de constante, et le calcul tient en quatre opérations. Rien n’est donc envoyé et rien n’est attendu : ce que vous saisissez ne quitte jamais le navigateur, faute de requête dans laquelle voyager.