web-dev-qa-db-fra.com

GPT ou MBR: comment savoir?

Comment savoir si mon disque dur est disposé à l'aide d'un MBR ou GPT format?

90
goldilocks

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 Partition Table indique que j'utilise une table de partition msdos MBR (celle qui est encore couramment utilisée pour Linux et Windows) sur les deux disques. À partir de la page manparted peut créer (et donc, espérons-le, identifier) ​​les types de table de partition suivants (ou plus largement `étiquette de disque '):

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

Mise à jour

Cela vaut la peine d'ajouter la commande pour répertorier une seule partition, car cela n'est pas évident sans une certaine connaissance de parted et il peut être difficile de trouver les données dont vous avez besoin s'il y a plusieurs lecteurs. Pour /dev/sda vous feriez:

parted /dev/sda print
97
Graeme

Sous linux, vous pouvez vérifier cela via l'outil gdisk qui devrait être disponible pour toute distribution.

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 disposez d'un disque de style MBR. Ne vous inquiétez pas, cela n'a fait aucun mal.

Si vous ne voyez pas cet avertissement, vous disposez d'un disque GPT ou d'un disque hybride GPT/MBR. Les derniers sont principalement utilisés sur les machines Apple destinées aux versions à double démarrage de MS Windows qui ne prennent pas en charge GPT. gdisk l'indiquera avec:

Found valid GPT with hybrid MBR; using GPT

Ils peuvent également être utilisés dans d'autres situations où la prise en charge des deux styles est requise.

34
goldilocks

Comme le système d'exploitation n'a pas été spécifié, voici FreeBSD façon de faire les choses.

Tout se fait via la commande gpart (abréviation de GEOM partioner - rien à voir avec GNU).

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

  • disposition de la partition héritée avec [~ # ~] mbr [~ # ~] (aka "msdos") et [~ # ~] bsd [~ # ~] = schémas de partition (un partitionnement à 2 niveaux était généralement requis pour les systèmes BSD, à moins 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)
    
  • disposition de partition moderne 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 gpart manual .

17
Ouki

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_entries=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

Ci-dessus, j'ai un lecteur avec un partitionnement hybride GPT + MS-DOS. Dans ce cas, le noyau Linux ignore le partitionnement MS-DOS, c'est pourquoi udisks définit UDISKS_PARTITION_TABLE_SCHEME sur gpt.

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

$ udevadm info -q property -n sda | grep UDISKS_PARTITION_TABLE_SCHEME
UDISKS_PARTITION_TABLE_SCHEME=gpt
9
Stéphane Chazelas

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 d'étiquette de disque: dos. S'il affiche DOS, cela signifie qu'il s'agit d'un schéma MBR ou d'un schéma GPT

8
Rakib

Dans mes scripts de partition Alpine Linux j'utilise:

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

Vous pouvez utiliser blkid.

Exemples avec sortie:

# blkid /dev/sdc
/dev/sdc: PTUUID="92f03b9b-7402-4ad2-8316-08a991c237b3" PTTYPE="gpt"

# blkid -o export /dev/sdc
DEVNAME=/dev/sdc
PTUUID=92f03b9b-7402-4ad2-8316-08a991c237b3
PTTYPE=gpt

Ou dans un script, avec le -o value option:

disk=$1
part_type=$(blkid -o value -s PTTYPE $disk)
case $part_type in
    gpt)  echo "GPT";;
    dos)  echo "MBR";;
    *)    echo "partition is $part_type";;
esac
1
mivk