web-dev-qa-db-fra.com

Codes hexadécimaux GDisk

Lors de l'utilisation de gdisk, une option permet de spécifier le code hexadécimal. Je veux savoir ce que c'est et pourquoi c'est nécessaire, voir ci-dessous. Ainsi, par exemple, si je crée un logiciel RAID sur mon disque, je suppose que j'ai besoin du code fd00. Mais pourquoi? De quoi s'agit-il et dois-je l'utiliser? Pourquoi ne puis-je pas créer mon tableau RAID à l'aide de 8300 (quoi que cela signifie)?

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-5860533134, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-5860533134, default = 5860533134) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
4100 PowerPC PReP boot     4200 Windows LDM data      4201 Windows LDM metadata
7501 IBM GPFS              7f00 ChromeOS kernel       7f01 ChromeOS root       
7f02 ChromeOS reserved     8200 Linux swap            8300 Linux filesystem    
8301 Linux reserved        8302 Linux /home           8400 Intel Rapid Start   
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    a580 Midnight BSD data     a581 Midnight BSD boot   
a582 Midnight BSD swap     a583 Midnight BSD UFS      a584 Midnight BSD ZFS    
a585 Midnight BSD Vinum    a800 Apple UFS             a901 NetBSD swap         
a902 NetBSD FFS            a903 NetBSD LFS            a904 NetBSD concatenated 
a905 NetBSD encrypted      a906 NetBSD RAID           ab00 Apple boot          
af00 Apple HFS/HFS+        af01 Apple RAID            af02 Apple RAID offline  
af03 Apple label           af04 AppleTV recovery      af05 Apple Core Storage  
be00 Solaris boot          bf00 Solaris root          bf01 Solaris /usr & Mac Z
bf02 Solaris swap          bf03 Solaris backup        bf04 Solaris /var        
bf05 Solaris /home         bf06 Solaris alternate se  bf07 Solaris Reserved 1  
bf08 Solaris Reserved 2    bf09 Solaris Reserved 3    bf0a Solaris Reserved 4  
bf0b Solaris Reserved 5    c001 HP-UX data            c002 HP-UX service       
ea00 Freedesktop $BOOT     eb00 Haiku BFS             ed00 Sony system partitio
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition 
Press the  key to see more codes:  
fb00 VMWare VMFS           fb01 VMWare reserved       fc00 VMWare kcore crash p
fd00 Linux RAID            
1
john smith

la réponse de Kyodake est correcte, mais elle est aussi plutôt centrée sur le MBR. Sous GPT, les mêmes principes s'appliquent, c'est-à-dire qu'un code de type de partition identifie le but recherché d'une partition. La différence est que les codes de type GPT sont des GUID de 128 bits, par opposition aux codes de 8 bits utilisés sous MBR. La nature des GUID signifie qu'il n'est pas nécessaire d'enregistrer des codes auprès d'une autorité centrale pour éviter les collisions; il est statistiquement très peu probable que deux GUID soient identiques par accident.

Autant que je sache, il n’existe pas de référentiel officiel des codes de type GPT, mais ils sont documentés dans la page Wikipedia sur GPT. L’un des inconvénients des codes de type GPT est qu’en tant que GUID, ils sont longs et encombrants - par exemple, 0FC63DAF-8483-4772-8E79-3D69D8477DE4 pour les données du système de fichiers Linux, par rapport à 0x83 pour l'équivalent MBR. Ainsi, la plupart des outils de partitionnement de disques GPT utilisent une forme de "traduction abrégée" ou "traduction en langage naturel" dans leurs interfaces utilisateur. Je suis l'auteur de GPT fdisk, et comme mon objectif était de créer quelque chose d'aussi semblable que possible à (MBR) fdisk, j'ai choisi d'utiliser les codes MBR comme base; Cependant, comme la correspondance entre les codes de type GPT et MBR n'est pas 1: 1, j'ai multiplié les codes de type MBR par 0x100 pour obtenir les équivalents GPT. Ainsi, le MBR 0x83 est devenu 8300. Cela permet également d'utiliser des codes de suivi connexes qui n'existent pas dans le MBR, tels que 8301, 8302, etc. Ces codes sont faciles à utiliser pour les personnes déjà familiarisées avec les équivalents MBR. Certes, arbitraire pour les personnes qui ne connaissent pas les codes MBR. En interne, GPT fdisk traduit ces codes en GUID. Vous pouvez voir les GUID réels en affichant des informations détaillées sur la partition (via l'option i de gdisk, par exemple). Vous pouvez également entrer un GUID arbitraire plutôt que d'utiliser les codes à quatre caractères GPT fdisk, si vous le souhaitez ou si vous devez utiliser un code non pris en charge par GPT fdisk.

D'autres outils utilisent d'autres approches. La bibliothèque libparted (et donc parted, GParted et d’autres outils basés sur libparted) convertit certains codes de type en "flags" et les masque complètement d'autres codes. Cela simplifie la tâche de certains utilisateurs, mais rend certaines tâches impossibles. Par exemple, vous ne pouvez pas définir de code de type arbitraire avec quoi que ce soit basé sur libparted. L'utilitaire de disque d'OS X traduit les GUID connus en descriptions en texte brut. (IIRC, lorsque vous créez une partition, il définit un code de type approprié en fonction du système de fichiers créé dans une partition, similaire à ce que fait GParted.)

Pour la plupart, Linux n'utilise pas de codes de type, que ce soit pour MBR ou GPT. Autrement dit, vous pouvez placer votre système de fichiers Linux standard sur une partition 8300 (GPT fdisk), ou utiliser 0700 (comme c'était le cas par le passé), ou affecter votre propre GUID aléatoire. Des commentaires similaires s'appliquent aux types de partition RAID, LVM, swap et. Il y a cependant quelques exceptions à cette règle. D'une part, les installateurs de distribution examinent et définissent souvent les codes de type. Vous aurez donc peut-être besoin du bon code de type sur une partition avant de pouvoir l'utiliser correctement. Une autre exception est que systemd commence à utiliser les codes de type comme solution de secours si /etc/fstab n'est pas correctement configuré. (C'est de là que proviennent la plupart des codes 830x de GPT fdisk - ils font partie de la Spécification des partitions découvrables , qui est une initiative Freedesktop/systemd.) Actuellement, Ubuntu utilise simplement le code de type de système de fichiers Linux principal. (8300 dans GPT fdisk) pour les systèmes de fichiers, plus les codes appropriés pour LVM, RAID, swap, etc. Le code de partition de démarrage BIOS (21686148-6449-6E6F) constitue une grande exception aux règles "Linux n’utilise pas de codes de type". 744E-656564454649; ef02 dans fdisk GPT ou indicateur bios_grub dans libparted). Ce code de type identifie une partition utilisée par GRUB et lorsque vous exécutez grub-install, GRUB installera une partie de lui-même sur cette partition. Si vous installez GRUB sur un système démarrant le BIOS avec un disque GPT, une partition d'amorçage BIOS doit normalement être présente. (Il existe toutefois des moyens de contourner cette règle.) Plus important encore, si vous définissez par erreur ce code de type sur la mauvaise partition, , cette partition sera endommagée lors de l'installation de GRUB! J'ai vu pas mal de gens commettre cette erreur sur différents forums en ligne.

Les codes de type deviennent plus importants lorsque vous utilisez d'autres systèmes d'exploitation. Windows et OS X, par exemple, ont tendance à ne pas toucher les partitions avec des codes de type non reconnus. Leur liste de codes de types exclut les codes de types communs spécifiques à Linux. Par conséquent, l'utilisation d'un code de type spécifique à Linux permet de réduire le risque que Windows ou OS X supprime votre installation Ubuntu. Toutefois, ces systèmes d’exploitation ne vous intéressent pas si vous utilisez le code GPT fdisk 8300 ou fd00. Des problèmes peuvent survenir si vous utilisez des codes reconnus par ces autres systèmes d'exploitation. Par exemple, le type de système de fichiers Linux GUID (0FC63DAF-8483-4772-8E79-3D69D8477DE4) n’existait pas. Je l'ai créé et inséré à la fois dans mon propre fdisk GPT et libparted parce que la pratique habituelle consistant à utiliser le code de type "Microsoft Basic Data" (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) posait problème dans les configurations à double démarrage. Plus précisément, certains outils Windows penseraient que la partition Linux est une partition Windows endommagée ou non initialisée et proposeraient de la préparer. Une erreur de l'utilisateur à cette invite serait désastreuse. Voir cette page de la mienne pour plus d'informations à ce sujet.

6
Rod Smith

Les listes des types de partition attribués à utiliser dans la table de partition étaient initialement gérées par IBM et Microsoft en interne.

Lorsque le marché des systèmes d'exploitation pour PC et des outils de disque s'est développé et libéré, d'autres fournisseurs ont également dû attribuer des types de partition spéciaux à leurs produits.

Dans les années 90, plusieurs experts de l'industrie ont commencé à rechercher des types de partition et des listes de types de partition publiées afin de documenter la norme de facto de l'industrie et de réduire ainsi le risque de conflits ultérieurs.

C'est au chargeur de démarrage et/ou au noyau du système d'exploitation comment interpréter la valeur. La table spécifie donc à quels systèmes d'exploitation ou produits liés au disque ont initialement introduit un ID et à quel système de fichiers ou type de partition spéciale ils ont été mappés.

Numéro de partition: 83h. Type: système de fichiers. Origine: GNU/Linux. Description: tout système de fichiers natif Linux.

ID de partition: FDh. Origine: GNU/Linux. Pris en charge: Linux. Description: Superbloc RAID Linux avec détection automatique.

1
kyodake