Шестнадцатеричные коды GDisk

Во время использования gdisk есть возможность указать шестнадцатеричный код. Я хочу знать, что это такое и зачем это нужно, см. Ниже. Так, например, если я создаю программный RAID на своем диске, я предполагаю, что мне нужен код fd00. Но почему? Что это, и я должен использовать это? Почему я не могу создать свой массив raid, используя 8300 (что бы это ни значило)?

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-5860533134, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-5860533134, default = 5860533134) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
4100 PowerPC PReP boot     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        8302 Linux /home           8400 Intel Rapid Start   
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    a580 Midnight BSD data     a581 Midnight BSD boot   
a582 Midnight BSD swap     a583 Midnight BSD UFS      a584 Midnight BSD ZFS    
a585 Midnight BSD Vinum    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       
ea00 Freedesktop $BOOT     eb00 Haiku BFS             ed00 Sony system partitio
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition 
Press the  key to see more codes:  
fb00 VMWare VMFS           fb01 VMWare reserved       fc00 VMWare kcore crash p
fd00 Linux RAID            

2 ответа

Ответ kyodake правильный, но он также скорее MBR-ориентированный. В GPT применяются те же принципы, то есть код типа раздела определяет предполагаемое назначение раздела. Разница заключается в том, что коды типа GPT представляют собой 128-битные идентификаторы GUID по сравнению с 8-битными кодами, используемыми в MBR. Природа идентификаторов GUID означает, что нет необходимости регистрировать коды в центральном органе, чтобы избежать коллизий; статистически очень маловероятно, что два идентификатора GUID будут идентичны случайно.

AFAIK, официального хранилища кодов типов GPT не существует, но они описаны на странице Википедии о GPT. Один из недостатков кодов типов GPT заключается в том, что, как и GUID, они длинные и неудобные - например, 0FC63DAF-8483-4772-8E79-3D69D8477DE4 для данных файловой системы Linux, против 0x83 для эквивалента MBR. Таким образом, большинство инструментов для разбиения GPT-дисков используют в своих пользовательских интерфейсах некоторую форму "стенографии" или "перевода на естественный язык". Я являюсь автором GPT fdisk, и моей целью при написании этой статьи было создание чего-то похожего на (MBR) fdisk насколько возможно, я использовал подход, основанный на использовании кодов MBR; однако, поскольку соответствие между кодами типов GPT и MBR не равно 1:1, я умножил коды типов MBR на 0x100, чтобы получить эквиваленты GPT. Таким образом, MBR 0x83 стал 8300. Это также позволяет использовать связанные последующие коды, которых нет в MBR, такие как 8301, 8302 и т. Д. Эти коды просты в использовании для людей, которые уже знакомы с эквивалентами MBR, но они по общему признанию произвольно для людей, которые не знают коды MBR. Внутри GPT fdisk переводит эти коды в GUID. Вы можете увидеть фактические GUID, просмотрев подробную информацию о разделе (через i вариант в gdisk, например). Вы также можете ввести произвольный GUID, а не использовать четырехсимвольные коды GPT fdisk, если вам нравится или если вам нужно использовать код, который не поддерживает GPT fdisk.

Другие инструменты используют другие подходы. Библиотека libparted (и, таким образом, parted, GParted и другие инструменты, основанные на libparted) переводят некоторые коды типов в "флаги" и полностью скрывают другие коды. Это помогает упростить вещи для некоторых пользователей, но делает некоторые задачи невозможными - например, вы не можете установить код произвольного типа с чем-либо, основанным на libparted. Дисковая утилита OS X переводит известные идентификаторы GUID в текстовые описания. (IIRC, когда вы создаете раздел, он устанавливает соответствующий код типа на основе файловой системы, созданной в разделе, аналогично тому, что делает GParted.)

В большинстве случаев Linux не использует коды типов ни для MBR, ни для GPT. То есть вы можете поместить свою стандартную файловую систему Linux в раздел (GPT fdisk) 8300, либо использовать 0700 (как это было раньше), либо назначить свой собственный произвольный GUID. Аналогичные комментарии применимы к RAID, LVM, swap и другим типам разделов. Однако есть несколько исключений из этого правила. Например, установщики дистрибутива часто просматривают и устанавливают коды типов, поэтому вам может понадобиться правильный код типа в разделе, прежде чем он будет использоваться должным образом. Другое исключение состоит в том, что systemd начинает использовать коды типов в качестве запасного варианта, если /etc/fstab неправильно настроен. (Вот откуда берутся большинство кодов GPT fdisk 830x - они являются частью спецификации Discoverable Partition Specification, которая является инициативой Freedesktop/systemd.) В настоящее время Ubuntu просто использует основной код типа файловой системы Linux (8300 в GPT fdisk) для файловые системы, а также соответствующие коды для LVM, RAID, подкачки и т. д. Одним большим исключением из правил "Linux не использует коды типов" является код загрузочного раздела BIOS (21686148-6449-6E6F-744E-656564454649; ef02 в GPT fdisk или bios_grub флаг в libparted). Этот тип кода идентифицирует раздел, используемый GRUB, и когда вы запускаете grub-installGRUB установит часть себя в этот раздел. Если вы устанавливаете GRUB в систему загрузки BIOS с GPT-диском, обычно должен присутствовать загрузочный раздел BIOS. (Однако есть способы обойти это правило.) Более важно, если вы по ошибке установили код этого типа на неправильном разделе, этот раздел будет поврежден при установке GRUB! Я видел довольно много людей, делающих эту ошибку на различных онлайн-форумах.

Коды типов становятся более важными при работе с другими ОС. Например, Windows и OS X не касаются разделов кодами типов, которые они не распознают. Их список кодов типов исключает распространенные коды типов, специфичные для Linux, поэтому использование кода типов, специфичного для Linux, помогает снизить риск того, что Windows или OS X испортят вашу установку Ubuntu. Этим операциям все равно, используете ли вы код GPT fdisk 8300 или fd00. Проблемы могут возникнуть, если вы используете коды, которые распознаются этими другими операционными системами. Например, когда-то GUID типа файловой системы Linux (0FC63DAF-8483-4772-8E79-3D69D8477DE4) не существовало. Я создал его и вставил в свой собственный GPT-диск и libparted, потому что обычная практика использования кода типа "Основные данные Microsoft" (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) вызывала проблемы в настройках с двойной загрузкой. В частности, некоторые инструменты Windows могут подумать, что раздел Linux является поврежденным или неинициализированным разделом Windows, и предложат подготовить его. Ошибка пользователя в этом запросе будет катастрофической. Смотрите эту страницу для получения дополнительной информации по этому вопросу.

Списки назначенных типов разделов, которые будут использоваться в таблице разделов, изначально поддерживались IBM и Microsoft внутри компании.

Когда рынок операционных систем для ПК и дисковых инструментов вырос и раскрепостился, другим производителям также пришлось назначать специальные типы разделов для своих продуктов.

Несколько отраслевых экспертов в 1990-х годах начали исследовать типы разделов и опубликовали списки типов разделов, чтобы помочь в документировании отраслевого стандарта де-факто и тем самым снизить риск дальнейших конфликтов.

Как интерпретировать значение зависит от загрузчика операционной системы и / или ядра. Таким образом, в таблице указано, в какие операционные системы или продукты, связанные с дисками, изначально был введен идентификатор, и в какую файловую систему или специальный тип раздела они отображены.

ID раздела: 83ч. Тип: файловая система. Происхождение: GNU/Linux. Описание: любая родная файловая система Linux.

Идентификатор раздела: FDh. Происхождение: GNU/Linux. Поддерживается: Linux. Описание: Linux RAID суперблок с автоопределением.

Другие вопросы по тегам