GPT ou MBR: Comment savoir?

Comment savoir si mon disque dur est configuré en utilisant un format MBR ou GPT ?

Vous pouvez utiliser parted -l pour déterminer le type de table de partition. Par exemple:

 $ sudo parted -l Model: ATA TOSHIBA THNSNS25 (scsi) Disk /dev/sda: 256GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 4194kB 32.2GB 32.2GB primary ext4 boot 2 32.2GB 256GB 224GB primary ext4 Model: ATA Hitachi HDT72101 (scsi) Disk /dev/sdb: 1000GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 32.2GB 32.2GB primary ext4 boot 2 32.2GB 996GB 964GB primary ext4 3 996GB 1000GB 4295MB primary linux-swap(v1) 

Le champ Partition Table montre que j'utilise une table de partition msdos MBR (celle qui est encore couramment utilisée pour Linux et Windows) sur les deux disques. A partir de la page man parted on peut créer (et ainsi espérer identifier) ​​les types de table de partition suivants (ou plus largement `disk label '):

 bsd dvh gpt - this is a GPT partition table loop - this is raw disk access without a partition table mac msdos - this is a standard MBR partition table pc98 sun 

Mettre à jour

Il vaut la peine d'append la command pour listr une seule partition car cela n'est pas évident sans une certaine connaissance de parted et il peut être difficile de find datatables dont vous avez besoin s'il y a plusieurs lecteurs. Pour /dev/sda vous feriez:

 parted /dev/sda print 

Sur linux, vous pouvez vérifier cela via l'outil gdisk qui devrait être disponible pour n'importe quelle dissortingbution.

 gdisk -l /dev/sda 

Ici, /dev/sda est le nœud de périphérique du lecteur physique , pas une partition ( /dev/sda1 , /dev/sda2 , etc. sont des partitions).

Si vous voyez quelque chose qui comprend:

 *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. *************************************************************** 

Vous avez un disque de style MBR. Ne vous inquiétez pas, cela n'a pas fait de mal.

Si vous ne voyez pas cet avertissement, vous avez un disque GPT ou un disque hybride GPT / MBR . Les versions plus récentes sont principalement utilisées sur les machines Apple destinées aux versions dual-boot de MS Windows qui ne prennent pas en charge GPT. gdisk indiquera ceci avec:

 Found valid GPT with hybrid MBR; using GPT 

Ils peuvent également être utilisés dans d'autres situations où un support pour les deux styles est requirejs.

Comme l'OS n'a pas été spécifié, voici la façon de faire de FreeBSD .

Tout est fait par la command gpart (abréviation pour GEOM partioner – rien à voir avec GNU).

Un gpart show simple vous montrerait toutes les partitions disponibles de tous les disques, mais vous pouvez spécifier le périphérique pour avoir un look plus précis sur un:

  • layout de partitionnement avec des schémas de partitionnement MBR (un partitionnement à deux niveaux était généralement requirejs pour les systèmes BSD, à less d'utiliser le disque complet):

    $ gpart show

     => 63 67108801 ada0 MBR (32G) 63 67108545 1 freebsd [active] (32G) 67108608 256 - free - (128k) => 0 67108545 ada0s1 BSD (32G) 0 2097152 2 freebsd-swap (1.0G) 2097152 65011393 1 freebsd-ufs (31G) 
  • layout de partition moderne en utilisant GPT :

    $ gpart show /dev/ada2

     => 34 976773101 ada2 GPT (465G) 34 6 - free - (3.0k) 40 128 1 freebsd-boot (64k) 168 67108864 2 freebsd-swap (32G) 67109032 901775360 3 freebsd-zfs (430G) 

Pour en savoir plus, tout est dans le manuel de gpart .

Avec udisks sous Linux:

 $ sudo /lib/udev/udisks-part-id /dev/sda using device_file=/dev/sda syspath=/sys/devices/pci0000:00/0000:00:0b.0/ata1/host0/target0:0:0/0:0:0:0/block/sda, offset=0 ao=0 and number=0 for /dev/sda Entering MS-DOS parser (offset=0, size=500107862016) MSDOS_MAGIC found found partition type 0xee => protective MBR for GPT Exiting MS-DOS parser Entering EFI GPT parser GPT magic found partition_entry_lba=2 num_ensortinges=128 size_of_entry=128 Leaving EFI GPT parser EFI GPT partition table detected UDISKS_PARTITION_TABLE=1 UDISKS_PARTITION_TABLE_SCHEME=gpt UDISKS_PARTITION_TABLE_COUNT=4 

Au-dessus, j'ai un lecteur avec partition hybride GPT + MS-DOS. Dans ce cas, le kernel Linux ignore le partitionnement MS-DOS, c'est pourquoi les udisks définissent UDISKS_PARTITION_TABLE_SCHEME sur gpt.

Cet outil udisks-part-id est utilisé pour remplir la database udev. Donc, si vous avez installé des udisks , vous devriez pouvoir interroger ces informations même en tant qu'user non-privilégié avec:

 $ udevadm info -q property -n sda | grep UDISKS_PARTITION_TABLE_SCHEME UDISKS_PARTITION_TABLE_SCHEME=gpt 

Dans mes scripts Alpine Linux Partition j'utilise:

 check_scheme() { fdisk -l $1 |grep "Disklabel type:" |awk '{ print $3 }' } 

Utilisation

 $ sudo fdisk -l Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x987c1a05 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 999423 997376 487M 83 Linux /dev/sda2 1001470 250068991 249067522 118.8G 5 Extended /dev/sda5 1001472 250068991 249067520 118.8G 8e Linux LVM 

Voir le type de Disklabel: dos . Si cela montre que cela signifie que c'est le schéma MBR sinon le schéma GPT