GPT или MBR: Откуда я знаю?

Как узнать, установлен ли мой жесткий диск с использованием формата MBR или GPT ?

Вы можете использовать parted -l чтобы определить тип таблицы разделов. Например:

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

В поле « Partition Table показано, что я использую таблицу разделов msdos MBR (которая все еще широко используется для Linux и Windows) на обоих дисках. Из раскрытой man страницы можно создать (и, следовательно, надеяться, определить) следующие типы таблиц разделов (или, более широко, «метка диска»):

 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 

Обновить

Стоит добавить команду для перечисления одного раздела, так как это не очевидно без каких-либо знаний о parted и может быть больно найти нужные вам данные, если есть несколько дисков. Для /dev/sda вы бы сделали:

 parted /dev/sda print 

В linux вы можете проверить это с помощью инструмента gdisk , который должен быть доступен для любого дистрибутива.

 gdisk -l /dev/sda 

Здесь /dev/sda – это узел устройства физического диска , а не раздел ( /dev/sda1 , /dev/sda2 и т. Д. – разделы).

Если вы видите что-то, что включает:

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

У вас есть диск в стиле MBR. Не волнуйтесь, это не навредило.

Если вы не видите это предупреждение, у вас есть GPT-диск или гибридный диск GPT / MBR . Более поздние используются в основном на компьютерах Apple, предназначенных для версий с двойной загрузкой MS Windows, которые не поддерживают GPT. gdisk укажет это следующим образом:

 Found valid GPT with hybrid MBR; using GPT 

Они также могут использоваться в других ситуациях, когда требуется поддержка обоих стилей.

Поскольку ОС не была указана, это способ делать вещи FreeBSD .

Все это делается с помощью команды gpart (сокращение от GEOM partioner – ничего общего с GNU).

Простое gpart show покажет вам все доступные разделы всех дисков, но вы можете указать, что устройство имеет более точный вид:

  • устаревшее разделение разделов с помощью MBR (так называемые msdos) и схемы разделения BSD (для систем BSD обычно требовалось двухуровневое разбиение, если только не использовать полный диск):

    $ 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) 
  • современная компоновка разделов с использованием 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) 

Чтобы узнать больше, все в руководстве gpart .

С udisks в 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 

Выше, у меня есть диск с гибридным GPT + MS-DOS. В этом случае ядро ​​Linux игнорирует разделение MS-DOS, поэтому udisks устанавливает UDISKS_PARTITION_TABLE_SCHEME в gpt.

Этот инструмент udisks-part-id используется для заполнения базы данных udev. Поэтому, если у вас установлены udisks , вы можете запросить эту информацию даже в качестве непривилегированного пользователя:

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

В моих сценариях Alpine Linux Partition я использую:

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

использование

 $ 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 

См. Тип Disklabel: dos . Если он показывает dos, это означает, что схема MBR еще одна схема GPT