Шестнадцатеричные коды 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-install
GRUB установит часть себя в этот раздел. Если вы устанавливаете 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 суперблок с автоопределением.