Страница 1 из 5

GPT диски

Добавлено: 21 авг 2012, 12:08
Olej
С этим, с новым стандартом формата размещения таблиц разделов на диске уже сталкиваемся массово Таблица разделов GUID
Это то, что идёт (пришло?) на смену MBR:
Он является частью Расширяемого микропрограммного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта, предложенного Intel на смену отжившего BIOS, одного из последних реликтов первозданной IBM PC. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR).
Изображение

Такая разбивка уже довольно часто встречается на практике (например, при создании LiveUSB дистрибутивов), и иногда приводит в замешательство.

P.S. Название "GPT диски", как в названии темы, по идее, неправильное ... Но такое жаргонное название понятно, и сразу объясняет о чём речь.

Re: GPT диски

Добавлено: 21 авг 2012, 12:28
Olej
Olej писал(а):Это то, что идёт (пришло?) на смену MBR:
1. Это будет болезненный переход от MBR к GPT. MBR существовал как стандарт (привычный) около 35 лет, или чуть более...

2. И он обязательно будет. Потому, что он уже происходит...

В одночасье окажутся неактуальными, ошибочными, вводящими в заблуждение - тысячи публикаций относительно MBR: как подготовить диск? как записать загрузочную флешку? и т.д. и т.п.

Поэтому это должно быть интересно (ознакомительно) даже для тех, кто пока никаким образом не пересекается с GPT на практике.

Применительно к Linux интересны такие вопросы:

1. Какие это несёт сложности?
2. Какие дистрибутивы, и с каких релизов, и в какой степени поддерживают/используют GPT?
3. Какие инструменты работы с дисками: fdisk, gparted, ... - понимают и работают с GPT, и если да, то с каких версий начиная?
4. Что будет (как это отразится) на LVM и средствами (программами) управления логическими томами?
... и др. разное.

Re: GPT диски

Добавлено: 21 авг 2012, 14:17
Olej
Там есть очень интересные вещи, настолько, что их стоит скопировать (см. картинку выше):
GPT использует современную систему адресации логических блоков (LBA) вместо применявшейся в MBR адресации «Цилиндр — Головка — Сектор» (CHS). Доставшаяся по наследству MBR со всей своей информацией содержится в блоке LBA 0, оглавление GPT — в блоке LBA 1, далее сама таблица разделов. В случае 64-битной версии ОС Microsoft Windows NT, за GPT зарезервировано 32 сектора или 16 384 байта (при использовании сектора размером 512, а не 4 096 байт), так что первым используемым сектором каждого жёсткого диска в ней будет блок LBA 34.
Кроме того, GPT обеспечивает дублирование — оглавление и таблица разделов записаны как в начале, так и в конце диска.
Теоретически, GPT позволяет создавать разделы диска размером до 9,4 ЗБ (9,4 × 1021 байт), в то время как MBR может работать только до 2,2 ТБ (2,2 × 1012 байт).

Наследственный MBR (LBA 0)
Основная цель помещения MBR в начало диска чисто защитная. MBR-ориентированные дисковые утилиты могут не распознать и даже переписать GPT диски. Чтобы избежать этого, указывается наличие всего одного раздела, охватывающего весь GPT диск. Системный идентификатор (англ. System ID) для этого раздела устанавливается в значение 0xEE, указывающее, что применяется GPT. Вследствие этого EFI игнорирует MBR. Некоторые 32-битные операционные системы, не приспособленные для чтения дисков содержащих GPT, тем не менее распознают этот Системный идентификатор и представляют том в качестве недоступного GPT диска. Более старые ОС обычно представляют диск, как содержащий единственный раздел неизвестного типа и без свободного места; как правило, они отказываются модифицировать такой диск, пока пользователь явно не потребует и не подтвердит удаление данного раздела. Таким способом предотвращается случайное стирание содержимого GPT диска.

Оглавление таблицы разделов (LBA 1)
Оглавление таблицы разделов указывает те логические блоки на диске, которые могут быть задействованы пользователем (англ. the usable blocks). Оно также указывает число и размер записей данных о разделах, составляющих таблицу разделов. Так на машине с установленной 64-битной ОС Microsoft Windows Server 2003, зарезервировано 128 записей данных о разделах, каждая запись длиной 128 байт. Таким образом возможно создание 128 разделов на диске.
Оглавление содержит GUID (англ. Globally Unique IDentifier — Глобально Уникальный Идентификатор) диска. В нём записан свой собственный размер и местоположение (всегда блок LBA 1), а также размер и местоположение вторичного (запасного) оглавления и таблицы разделов, которые всегда размещаются в последних секторах диска. Важно, что он также содержит контрольную сумму CRC32 для себя и для таблицы разделов. Эти контрольные суммы проверяются процессами EFI при загрузке машины. Из-за проверок контрольных сумм невозможным становится применение шестнадцатеричных редакторов для модификации содержимого GPT. Всякое редактирование изменит контрольные суммы, после чего EFI перезапишет первичный GPT вторичным. Если же оба GPT будут содержать неверные контрольные суммы, доступ к диску станет невозможным.

Записи данных о разделах (LBA 2-33)
Записи данных о разделах (англ. Partition entries) просты и расположены с равным приращением адресов. Первые 16 байт определяют GUID типа раздела. Например, GUID системного EFI-раздела имеет вид «C12A7328-F81F-11D2-BA4B-00A0C93EC93B». Следующие 16 байт содержат GUID, уникальный для данного конкретного раздела. Далее записываются данные о начале и конце 64-битных LBA, если они имеются. Остальное место отводится информации об именах и атрибутах разделов.
Другой перевод этой же статьи лежит здесь на сайте документации - http://rus-linux.net/lib.php?name=MyLDP ... /guid.html:
GUID Partition Table (новая таблица разделов)
Из Wikipedia, свободной энциклопедии
Сокращенный перевод: Алексей Дмитриев
Дата перевода: 13 ноября 2007
Но обращаю внимание: это видение 2007 года (а реально ещё раньше), и многое уже могло поменяться.

Re: GPT диски

Добавлено: 21 авг 2012, 14:43
Olej
Olej писал(а): Такая разбивка уже довольно часто встречается на практике (например, при создании LiveUSB дистрибутивов), и иногда приводит в замешательство.
загрузочный Linux на USB флешке :

Код: Выделить всё

[olej@nvidia Fedora-17]$ sudo fdisk -l /dev/sdc

WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.

Диск /dev/sdc: 1002 МБ, 1002438656 байт
255 heads, 63 sectors/track, 121 cylinders, всего 1957888 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0acb7725

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1   *           0     1585151      792576    0  Пустой
/dev/sdc2             164        1755         796   ef  EFI (FAT-12/16/32)
/dev/sdc3            1804        4507        1352    0  Пустой
Это после прямого тупого накатывания LiveUSB с LiveCD Fedora 17 :

Код: Выделить всё

[olej@nvidia Fedora-17]$ time sudo dd if=RFRemix-17-i686-Live-GNOME.iso of=/dev/sdc bs=10M
...
И с этого замечательно грузится (с USB) система, и система 32-разрядная...

Re: GPT диски

Добавлено: 21 авг 2012, 14:58
Olej
Olej писал(а):Но обращаю внимание: это видение 2007 года (а реально ещё раньше), и многое уже могло поменяться.
А тут вот один не сильно умненький хлопчик из Ubuntu (а что? разве в Ubuntu бывают сильно умненькие хлопчики?) накатал совсем свежую статью
22.04.2012
- Создаем таблицу разделов и форматируем жесткий диск в Ubuntu
Что такое таблица разделов диска (таблица GPT)
Таблица разделов — это служебная область на диске, в которой хранится таблица с информацией о разделах диска. Таблицы разделов бывают разных типов, например, GParted позволяет создать таблицы следующих типов: msdos, aix, amiga, bsd, dvh, gpt, mac, pc98, sun и loop. Отличаются они разной структурой, надежностью и возможностями. Некоторые не поддерживаются в одной операционной системе, но поддерживаются в другой. Для жестких дисков с Linux обычно используются таблицы разделов MSDOS (иногда ее называют MBR) и GPT. У таблиц MSDOS главный недостаток в том, что они не поддерживают диски объемом более 2.2Тб. Нас будет интересовать тип GUID Partition Table (GPT), он поддерживается Linux и имеет несколько важных плюсов. GPT поддерживает диски очень больших размеров, позволяет давать символьные метки (названия) для разделов, позволяет создавать 128 основных (primary) разделов (точнее, для GPT вообще нет разделения разделов на основные, логические и расширенные). Основной недостаток GPT заключается в том, что GPT поддерживается не всеми операционными системами. Например, версии Windows ниже Vista не могут читать эти диски. Также Windows не может грузиться с диска GPT, это значит, что если вы собираетесь устанавливать на этот диск Windows, тогда вам лучше выбирать таблицу разделов MSDOS. Я планирую использовать диск, как второй в системе и только для хранения данных. Я буду использовать таблицу разделов GPT.
Откуда он такое взял? :-o

... дальше там всё неинтересно: в стиле a'la Windows "давим на кнопки" ... :-?

Re: GPT диски

Добавлено: 21 авг 2012, 18:35
Olej
Olej писал(а): 3. Какие инструменты работы с дисками: fdisk, gparted, ... - понимают и работают с GPT, и если да, то с каких версий начиная?
Вот самый интересный для меня вопрос: чем будем работать с дисками?
Использую в качество "тестовой болванки" вот тот LiveUSB, созданный Fedora 17...

fdisk :

Код: Выделить всё

bash-4.2$ sudo fdisk /dev/sdc
Welcome to fdisk (util-linux 2.21.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.

Па-а-а-анятно :-(

parted

Код: Выделить всё

bash-4.2$ sudo parted /dev/sdc
GNU Parted 3.0
Используется /dev/sdc
Добро пожаловать в GNU Parted! Наберите 'help' для просмотра списка команд.
(parted) print                                                            
Предупреждение: Драйвер говорит,что размер физического блока равен 2048 байт, но Linux говорит, что он 512 байт.
Игнорировать/Ignore/Отменить/Cancel? i                                    


You found a bug in GNU Parted! Here's what you have to do:
...
Не намного лучше...
Но к parted ещё нужно вернуться ... здесь ему не даёт работать "размер блока", это может быть связано с тем, что это "снятый" образ LiveCD.

parted
... любимый народный ... ;-)
Это GUI реализация parted и она так же сходит с ума...

Но!
Есть такой проект: http://sourceforge.net/projects/gptfdis ... isk/0.8.5/
Где вы можете скачать его в исходниках (проект на С++).
Но:

Код: Выделить всё

bash-4.2$ make
g++ -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16   -c -o guid.o guid.cc
In file included from guid.cc:22:0:
guid.h:29:23: фатальная ошибка: uuid/uuid.h: Нет такого файла или каталога
компиляция прервана.
make: *** [guid.o] Ошибка 1
Это версия (0.8.5) от 30.05.2012, т.е. совершенно свежая - этот результат не представляет ничего страшного, нужно поискать что-то из проектов-пакетов *-dev-*, реализующих тип uuid_t ...
Но это и не есть необходимым, т.к. в современных дистрибутивах (Fedora 17) этот пакет (версия 0.8.4) есть в репозитариях и даже установлен по дефаулту:

Код: Выделить всё

bash-4.2$ yum list *gdisk*
...
Установленные пакеты
gdisk.i686                                                   0.8.4-1.fc17                                                   @updates
На этот пакет есть шикарные описания и страницы man-ов ... даже без установки самого пакета: GPT fdisk Tutorial

Почему этот пакет?
Потому что он а). специально предназаначен для GPT и б). он позволяет использовать для тестирования (поиграться) в качестве диска не /dev/sd* устройство, а любой произвольный файл (образ) достаточно большого размера.

Re: GPT диски

Добавлено: 21 авг 2012, 19:01
Olej
Olej писал(а): Почему этот пакет?
Потому что он а). специально предназаначен для GPT и б). он позволяет использовать для тестирования (поиграться) в качестве диска не /dev/sd* устройство, а любой произвольный файл (образ) достаточно большого размера.
Вот примерно как-то так:

Код: Выделить всё

bash-4.2$ DISK=`mktemp --tmpdir=$HOME`
bash-4.2$ echo $DISK
/home/olej/tmp.2Gx4krDXCv
bash-4.2$ time dd if=/dev/zero of=$DISK bs=1024 count=3000000
3000000+0 записей считано
3000000+0 записей написано
 скопировано 3072000000 байт (3,1 GB), 106,837 c, 28,8 MB/c

real	1m46.940s
user	0m1.132s
sys	0m24.583s
Это потребует некоторого времени, но теперь вы можете произвольно развлекаться-тренироваться-изгаляться над GPT в таком вот "зверинце" (на 3Gb у меня).

Для начала вот какие partition ID теперь понимает GPT:

Код: Выделить всё

bash-4.2$ gdisk $HOME
GPT fdisk (gdisk) version 0.8.4

The specified path is a directory!
bash-4.2$ gdisk $DISK
GPT fdisk (gdisk) version 0.8.4

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): l
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
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      
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    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       
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition 
fd00 Linux RAID            

Re: GPT диски

Добавлено: 21 авг 2012, 21:10
Olej
Olej писал(а): Это потребует некоторого времени, но теперь вы можете произвольно развлекаться-тренироваться-изгаляться над GPT в таком вот "зверинце" (на 3Gb у меня).
Теперь можно безопасно (безнаказанно! ;-) ) поупражняться c GPT диском:

Код: Выделить всё

bash-4.2$ gdisk $DISK
GPT fdisk (gdisk) version 0.8.4

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-5999966, default = 2048) or {+-}size{KMGTP}: 34
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-5999966, default = 5999966) or {+-}size{KMGTP}: +50M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed type of partition to 'EFI System'

Command (? for help): n
Partition number (2-128, default 2): 10
First sector (34-5999966, default = 104448) or {+-}size{KMGTP}:.
Last sector (104448-5999966, default = 5999966) or {+-}size{KMGTP}: +1G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'

Command (? for help): n
Partition number (2-128, default 2): 20
First sector (34-5999966, default = 2201600) or {+-}size{KMGTP}:.
Last sector (2201600-5999966, default = 5999966) or {+-}size{KMGTP}:.
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /home/olej/tmp.2Gx4krDXCv: 6000000 sectors, 2.9 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0D645F76-BD2A-4AEF-ADA6-62FBF69FF7C4
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5999966
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          104447   50.0 MiB    EF00  EFI System
  10          104448         2201599   1024.0 MiB  0700  Microsoft basic data
  20         2201600         5999966   1.8 GiB     8300  Linux filesystem

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /home/olej/tmp.2Gx4krDXCv.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
Создан GPT диск с 3-мя разделами (со "странными" номерами разделов: 1, 10, 20 ... из возможных в GPT 128-ми партиций).

Теперь самое время вернуться и пощупать его parted:

Код: Выделить всё

bash-4.2$ sudo parted $DISK
GNU Parted 3.0
Используется /home/olej/tmp.2Gx4krDXCv
Добро пожаловать в GNU Parted! Наберите 'help' для просмотра списка команд.
(parted) print............................................................
Модель:  (file)
Диск /home/olej/tmp.2Gx4krDXCv: 3072MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Disk Flags:.

Номер  Начало  Конец   Размер  Файловая система  Имя                   Флаги
 1     1049kB  53,5MB  52,4MB                    EFI System            загрузочный
10     53,5MB  1127MB  1074MB                    Microsoft basic data
20     1127MB  3072MB  1945MB                    Linux filesystem

(parted) help set.........................................................
  set НОМЕР ФЛАГ СОСТОЯНИЯ         изменить ФЛАГ на разделе НОМЕР

    НОМЕР - это номер раздела используемый в Linux.  В MS-DOS метки диска, номера основных разделов от 1 до 4, логических
        разделов от 5 и далее.
        ФЛАГ один из: загрузочный, корневой, подкачка, скрытый, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv,
        diag, legacy_boot
        СОСТ. один из: on, off
(parted) set 1 загрузочный on
(parted) print............................................................
Модель:  (file)
Диск /home/olej/tmp.2Gx4krDXCv: 3072MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Disk Flags:.

Номер  Начало  Конец   Размер  Файловая система  Имя                   Флаги
 1     1049kB  53,5MB  52,4MB                    EFI System            загрузочный
10     53,5MB  1127MB  1074MB                    Microsoft basic data
20     1127MB  3072MB  1945MB                    Linux filesystem

(parted) quit.............................................................
parted также замечательно видит GPT.
То, что раньше он с криком слетал, связано, очевидно, что перед этим ему скормили диск - образ LiveCD.

Итого, я имею в файле образ диска из 3-х разделов, не форматированных в свои файловые системы... Пока я не соображу как сделать форматирование. Отложим это на потом.

P.S. Структура создаваемого диска в моих экспериментах в точности повторяет ту, что описывает немецкий автор: EFI Grub2 Multiboot HowTo.
Возьмём на заметку эту статью!
А зачем нам ещё нужно разгребаться с GPT как не Multiboot? ;-)

Re: GPT диски

Добавлено: 21 авг 2012, 21:25
Olej
Olej писал(а):Теперь можно безопасно (безнаказанно! ;-) ) поупражняться c GPT диском:
Дальше я так же поиграюсь, но уже с GPT диском на реальной USB флешке. Вот её состояние "до того":

Код: Выделить всё

bash-4.2$ sudo fdisk -l /dev/sdb

Диск /dev/sdb: 1010 МБ, 1010826752 байт
64 heads, 32 sectors/track, 963 cylinders, всего 1974271 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x660f5597

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1            2048        3000         476+  17  Скрытый HPFS/NTFS
/dev/sdb2            3001        4000         500   17  Скрытый HPFS/NTFS
/dev/sdb3            4001        5000         500    7  HPFS/NTFS/exFAT
/dev/sdb4            6144      415743      204800    5  Расширенный
/dev/sdb5   *        8192      305151      148480   83  Linux
/dev/sdb6          307200      415743       54272   82  Linux своп / Solaris
Почему так - не будем вдаваться ... Это - мусор!

Код: Выделить всё

bash-4.2$ sudo gdisk /dev/sdb.
GPT fdisk (gdisk) version 0.8.4

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Command (? for help): p
Disk /dev/sdb: 1974271 sectors, 964.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): E7F4D1D1-F19D-4C85-9CB4-23D9C3CF70FF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1974237
Partitions will be aligned on 2048-sector boundaries
Total free space is 1974204 sectors (964.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
gdisk замечательно увидел структуру MBR диска, потёр его ... дальше создаём новые разделы:

Код: Выделить всё

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-1974237, default = 2048) or {+-}size{KMGTP}: 34
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-1974237, default = 1974237) or {+-}size{KMGTP}: +50M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed type of partition to 'EFI System'

Command (? for help): n
Partition number (2-128, default 2): 10
First sector (34-1974237, default = 104448) or {+-}size{KMGTP}:.
Last sector (104448-1974237, default = 1974237) or {+-}size{KMGTP}: +500M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'

Command (? for help): n
Partition number (2-128, default 2): 20
First sector (34-1974237, default = 1128448) or {+-}size{KMGTP}:.
Last sector (1128448-1974237, default = 1974237) or {+-}size{KMGTP}:.
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):.
Changed type of partition to 'Linux filesystem'
Я не совсем отчётливо понимаю пока как gdisk меняет флаг активности (загрузочности):

Код: Выделить всё

Command (? for help): x

Expert command (? for help): ?
a<----->set attributes
c<----->change partition GUID
d<----->display the sector alignment value
e<----->relocate backup data structures to the end of the disk
g<----->change disk GUID
h<----->recompute CHS values in protective/hybrid MBR
i<----->show detailed information on a partition
l<----->set the sector alignment value
m<----->return to main menu
n<----->create a new protective MBR
o<----->print protective MBR data
p<----->print the partition table
q<----->quit without saving changes
r<----->recovery and transformation options (experts only)
s<----->resize partition table
t<----->transpose two partition table entries
u<----->Replicate partition table on new device
v<----->verify disk
w<----->write table to disk and exit
z<----->zap (destroy) GPT data structures and exit
?<----->print this menu

Expert command (? for help): a
Partition number (1-20): 1
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount

Attribute value is 0000000000000000. Set fields are:
  No fields set

Toggle which attribute field (0-63, 64 or <Enter> to exit): 2
Have enabled the 'legacy BIOS bootable' attribute.
Attribute value is 0000000000000004. Set fields are:
2 (legacy BIOS bootable)

Toggle which attribute field (0-63, 64 or <Enter> to exit):.

Expert command (? for help): m

Command (? for help): p
Disk /dev/sdb: 1974271 sectors, 964.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): E7F4D1D1-F19D-4C85-9CB4-23D9C3CF70FF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1974237
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          104447   50.0 MiB    EF00  EFI System
  10          104448         1128447   500.0 MiB   0700  Microsoft basic data
  20         1128448         1974237   413.0 MiB   8300  Linux filesystem

Command (? for help): i
Partition number (1-20): 1
Partition GUID code: C12A7328-F81F-11D2-BA4B-00A0C93EC93B (EFI System)
Partition unique GUID: BC71D0A4-C4D6-4B0B-92AB-0C133AFC2B75
First sector: 2048 (at 1024.0 KiB)
Last sector: 104447 (at 51.0 MiB)
Partition size: 102400 sectors (50.0 MiB)
Attribute flags: 0000000000000004
Partition name: 'EFI System'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
И снова подстрахуюсь parted:

Код: Выделить всё

bash-4.2$ sudo parted /dev/sdb.
GNU Parted 3.0
Используется /dev/sdb
Добро пожаловать в GNU Parted! Наберите 'help' для просмотра списка команд.
(parted) print............................................................
Модель: Ut163 USB2FlashStorage (scsi)
Диск /dev/sdb: 1011MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Disk Flags:.

Номер  Начало  Конец   Размер  Файловая система  Имя                   Флаги
 1     1049kB  53,5MB  52,4MB  ext2              EFI System            загрузочный, legacy_boot
10     53,5MB  578MB   524MB                     Microsoft basic data
20     578MB   1011MB  433MB                     Linux filesystem

(parted) quit.............................................................
Это уже тот диск, с которым можно делать манипуляции по EFI Grub2 Multiboot HowTo:
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B

Partition Table: gpt

Number Start End Size File system Name Flags
1 1049kB 106MB 105MB fat32 EFI system partition boot
2 106MB 240MB 134MB Microsoft reserved partition msftres
3 240MB 121GB 120GB ntfs Basic data partition
6 121GB 270GB 149GB Daten
5 270GB 278GB 8000MB linux-swap(v1)
4 278GB 500GB 222GB ext4
Размеры разделов у меня недостаточные для инсталляции систем (Windows 7, Linux, ...), но я и не собираюсь ничего ставить...

Re: GPT диски

Добавлено: 21 авг 2012, 22:08
Olej
Olej писал(а):Это уже тот диск, с которым можно делать манипуляции по EFI Grub2 Multiboot
И вот как такой созданный GPT диск выглядит в привычном fdisk:

Код: Выделить всё

bash-4.2$ sudo fdisk -l /dev/sdb

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

Диск /dev/sdb: 1010 МБ, 1010826752 байт
64 heads, 31 sectors/track, 995 cylinders, всего 1974271 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1               1     1974270      987135   ee  GPT
Как и было обещано (Таблица разделов GUID):
Чтобы избежать этого, указывается наличие всего одного раздела, охватывающего весь GPT диск. Системный идентификатор (англ. System ID) для этого раздела устанавливается в значение 0xEE, указывающее, что применяется GPT.
- fdisk видит только фиктивный "наследственный MBR" (LBA 0) ...
- и воспринимает диск как цельный не размеченный, с идентификатором ee (это 2-х байтовый ID MBR, в отличие от 4-х байтовых GPT!).