GPT ou MBR: como eu sei?

73

Como posso saber se meu disco rígido é exibido usando um MBR ou GPT format?

    
por goldilocks 18.03.2014 / 15:38

6 respostas

80

Você pode usar parted -l para determinar o tipo de tabela de partição. Por exemplo:

$ 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)

O campo Partition Table mostra que estou usando uma tabela de partições msdos MBR (a que ainda é comumente usada para Linux e Windows) em ambos os discos. A partir do man page parted pode criar (e assim identificar esperançosamente) os seguintes tipos de tabela de partições (ou mais amplamente '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

Atualizar

Vale acrescentar o comando para listar uma única partição, pois isso não é óbvio sem algum conhecimento de parted e pode ser difícil encontrar os dados de que você precisa se houver várias unidades. Por /dev/sda você faria:

parted /dev/sda print
    
por 18.03.2014 / 15:49
31

No linux, você pode verificar isso através da ferramenta gdisk , que deve estar disponível para qualquer distribuição.

gdisk -l /dev/sda

Aqui, /dev/sda é o nó do dispositivo da unidade física , não uma partição ( /dev/sda1 , /dev/sda2 , etc. são partições).

Se você vir algo que inclua:

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

Você tem um disco estilo MBR. Não se preocupe, isso não causou nenhum dano.

Se não vir este aviso, tem um disco GPT ou um GPT / MBR híbrido disco. Os mais recentes são usados principalmente em máquinas da Apple destinadas a versões de inicialização dupla do MS Windows que não suportam GPT. gdisk indicará isso com:

Found valid GPT with hybrid MBR; using GPT

Eles também podem ser usados em outras situações em que é necessário suporte para ambos os estilos.

    
por 18.03.2014 / 15:38
17

Como o sistema operacional não foi especificado, aqui está o modo FreeBSD de fazer as coisas.

Tudo é feito através do comando gpart (abreviação de GEOM partioner - nada a ver com o GNU).

Um simples gpart show mostraria todas as partições disponíveis de todos os discos, mas você pode especificar o dispositivo para ter uma aparência mais precisa em um:

  • Layout de partição legado com MBR (também conhecido como "msdos") e BSD esquemas de particionamento (um particionamento de 2 níveis era normalmente necessário para sistemas BSD, a menos que fosse usado o disco completo ):

    $ 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 moderno de partições usando 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)
    

Para saber mais, tudo está no gpart manual .

    
por 18.03.2014 / 18:08
9

Com udisks no 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

Acima, eu tenho uma unidade com particionamento híbrido GPT + MS-DOS. Nesse caso, o kernel do Linux ignora o particionamento do MS-DOS, e é por isso que udisks configura o UDISKS_PARTITION_TABLE_SCHEME como gpt.

Essa ferramenta udisks-part-id é usada para preencher o banco de dados do udev. Portanto, se você tiver udisks instalado, poderá consultar essas informações mesmo como um usuário não privilegiado com:

$ udevadm info -q property -n sda | grep UDISKS_PARTITION_TABLE_SCHEME
UDISKS_PARTITION_TABLE_SCHEME=gpt
    
por 18.03.2014 / 18:52
5

Use

$ 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

Veja o tipo Disklabel: dos . Se mostra dos que significa que é esquema MBR mais esquema GPT

    
por 07.12.2016 / 18:35
3

Em minhas scripts de partição Alpine Linux I use:

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