Страницы справочника OS X
Если Вы выполняете различную версию Mac OS X, просматриваете документацию локально:
Читать страницы руководства
Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.
- Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).
- Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.
- Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.
FDISK(8) BSD System Manager's Manual FDISK(8) NAME fdisk -- DOS partition maintenance program SYNOPSIS fdisk [-ieu] [-f mbrname] [-c cylinders] [-h heads] [-s sectors] [-S size] [-b size] device DESCRIPTION In order for the BIOS to boot the kernel, certain conventions must be adhered to. Sector 0 of a bootable hard disk must contain boot code, an MBR partition table, and a magic number (0xAA55). These MBR partitions (also known as BIOS partitions) can be used to break the disk up into several pieces. The BIOS loads sector 0 of the boot disk into memory, verifies the magic number, and begins executing the code at the first byte. The normal DOS MBR boot code searches the MBR partition table for an ``active'' partition (indicated by a `*' in the first column), and if one is found, the boot block from that partition is loaded and executed in place of the original (MBR) boot block. The options are as follows: -i Initialize the MBR sector. -a style Specify an automatic partitioning style. -e Edit existing MBR sectors. -f mbrname Specifies an alternate MBR template file. -u Update MBR code, preserving existing partition table. -y Do not ask for confirmation before writing. -d Dump partition table in a format readable by the -r option. -r Read a partition table from the standard input. -t Test if the disk is partitioned. -c cylinders, -h heads, -s sectors Specifies an alternate BIOS geometry for fdisk to use. -S size Specify the disk size in blocks. -b size Specify the number of bytes per disk block. The DOS fdisk program can be used to divide space on the disk into partitions and set one active. This fdisk program serves a similar purpose to the DOS program. When called with no special flags, it prints the MBR partition table of the specified device, i.e., # fdisk fd0 Disk: fd0 geometry: 80/2/18 [2880 sectors] Offset: 0 Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ----------------------------------------------------------------------*1: ---------------------------------------------------------------------*1: *1: A6 0 0 1 - 79 1 18 [ 0 - 2880] OpenBSD 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 3: A7 0 0 2 - 79 1 18 [ 1 - 2879] NEXTSTEP 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused The geometry displayed is a synthetic geometry unless another geometry has been selected using the -c, -h, -s, -S, and -b options. In the future, fdisk will read the BIOS geometry from the IOKit registry. In this example, the disk is divided into two partitions that happen to fill the disk. The first par-tition partition tition overlaps the third partition. (Used for debugging purposes.) # Number of partition table entry. A ``*'' denotes the bootable partition. id System identifier. OpenBSD reserves the magic number 166 decimal (A6 in hex). If no 166 partition is found, it will use an older FreeBSD partition (with a magic number of 165 or A5 in hex). cyl/hd/sec These fields provide the starting and ending address of the partition in BIOS geometry start/size These fields provide the starting sector and size in sectors of the partition in linear block addresses. NOTE: The sectors field is ``1 based'', and the start field is ``0 based''. The CHS values may need to be in the BIOS's geometry for older systems to be able to boot and use the drive correctly; most modern systems prefer the starting sector and size in preference to the CHS values. The -i flag is used to indicate that the partition data is to be initialized. In this mode, fdisk will completely overwrite the primary MBR and partition table, either using the default MBR template, or the one specified by the -f flag. In the default template, partition number 1 will be configured as a Darwin boot partition spanning from cylinder 0, head 1, sector 1, and extending for 8 megabytes. Partition number 2 will be configured as a Darwin HFS partition spanning the rest of the disk. This mode is designed to initialize an MBR the very first time, or when it has been corrupted beyond repair. You can specify other default partition styles with the -a flag. The available styles are: boothfs Creates an 8Mb boot partition (type AB hex) and makes the rest of the disk a Darwin HFS partition (type AF hex). hfs Makes the entire disk one HFS+ partition (type AF hex). dos Makes the entire disk one DOS partition (type 0C hex). raid Makes the entire disk one type AC hex partition. The -u flag is used to update the MBR code on a given drive. The MBR code extends from offset 0x000 to the start of the partition table at offset 0x1BE. It is similar to the -i flag, except the existing partition table is preserved. This is useful for writing new MBR code onto an existing drive, and is equivalent to the DOS command ``FDISK /MBR''. Note that this option will overwrite the NT disk signa-ture, signature, ture, if present. The -u and -i flags may not be specified together. The flag -e is used to modify a partition table using a interactive edit mode of the fdisk program. This mode is designed to allow you to change any partition on the drive you choose, including extended partitions. It is a very powerful mode, but is safe as long as you do not execute the write command, or answer in the negative (the default) when fdisk asks you about writing out changes. COMMAND MODE When you first enter this mode, you are presented with a prompt, that looks like so: fdisk: _>. This prompt has two important pieces of information for you. It will tell you if the in-memory copy of the boot block has been modified or not. If it has been modified, the prompt will change to look like: fdisk:*_>. The second piece of information pertains to the number given in the prompt. This number specifies the disk offset of the currently selected boot block you are editing. This number could be something different that zero when you are editing extended partitions. The list of commands and their explanations are given below. help Display a list of commands that fdisk understands in the interactive edit mode. manual Display this manual page. reinit Initialize the currently selected, in-memory copy of the boot block. auto Partition the disk with one of the automatic partition styles. disk Display the current drive geometry that fdisk has probed. You are given a chance to edit it if you wish. edit Edit a given table entry in the memory copy of the current boot block. You may edit either in BIOS geometry mode, or in sector offsets and sizes. setpid Change the partition identifier of the given partition table entry. This command is particu-larly particularly larly useful for reassigning an existing partition to OpenBSD. flag Make the given partition table entry bootable. Only one entry can be marked bootable. If you wish to boot from an extended partition, you will need to mark the partition table entry for the extended partition as bootable. update Update the machine code in the memory copy of the currently selected boot block. Note that this option will overwrite the NT disk signature, if present. select Select and load into memory the boot block pointed to by the extended partition table entry in the current boot block. print Print the currently selected in-memory copy of the boot block and its MBR table to the termi-nal. terminal. nal. write Write the in-memory copy of the boot block to disk. You will be asked to confirm this opera-tion. operation. tion. exit Exit the current level of fdisk, either returning to the previously selected in-memory copy of a boot block, or exiting the program if there is none. quit Exit the current level of fdisk, either returning to the previously selected in-memory copy of a boot block, or exiting the program if there is none. Unlike exit it does write the modified block out. abort Quit program without saving current changes. NOTES The automatic calculation of starting cylinder etc. uses a set of figures that represent what the BIOS thinks is the geometry of the drive. These figures are by default taken from the in-core disklabel, or values that /boot has passed to the kernel, but fdisk gives you an opportunity to change them if there is a need to. This allows the user to create a bootblock that can work with drives that use geometry translation under a potentially different BIOS. If you hand craft your disk layout, please make sure that the OpenBSD partition starts on a cylinder boundary. (This restriction may be changed in the future.) Editing an existing partition is risky, and may cause you to lose all the data in that partition. You should run this program interactively once or twice to see how it works. This is completely safe as long as you answer the ``write'' questions in the negative. FILES /usr/mdec/mbr default MBR template SEE ALSO gpt(8), pdisk(8) BUGS There are subtleties fdisk detects that are not explained in this manual page. As well, chances are that some of the subtleties it should detect are being steamrolled. Caveat Emptor. BSD January 3, 2002 BSD
Сообщение о проблемах
Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:
Ошибки содержания Ошибки отчета в содержании этой документации со ссылками на отзыв ниже. Отчеты об ошибках Сообщите об ошибках в функциональности описанного инструмента или API через Генератор отчетов Ошибки. Форматирование проблем Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.
GPT fdisk (Русский)
Состояние перевода: На этой странице представлен перевод статьи GPT fdisk. Дата последней синхронизации: 1 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
GPT fdisk состоит из программ gdisk, cgdisk, sgdisk, и fixparts. Они представляет собой набор инструментов для разметки диска, созданный Родом Смитом. Они работают с дисками с глобальным уникальным идентификатором (GUID) с таблицей разделов (GPT), а не со старыми (и всё ещё более распространенными) таблицами разделов основной загрузочной записи (MBR).
gdisk, cgdisk и sgdisk имеют одинаковую функциональность, но предоставляют разные пользовательские интерфейсы. gdisk — текстовый и интерактивный режим, sgdisk — режим командной строки, и cgdisk — интерфейс на основе curses. Эта статья охватывает утилиты gdisk(8) и sgdisk(8) .
- Для базовых функций разметки можно использовать cgdisk(8) с текстовым пользовательским интерфейсом.
- На сайте GPT fdisk есть подробные пошаговые инструкции для gdisk, cgdisk, sgdisk и FixParts.
Установка
Список разделов
Чтобы просмотреть таблицы разделов и разделы на блочном устройстве, вы можете запустить gdisk, указав устройство (например: /dev/sda ), /dev/nvme0n1 , /dev/mmcblk0 , и т.д.):
# gdisk -l /dev/sda
или с помощью sgdisk:
# sgdisk -p /dev/sda
Резервное копирование и восстановление таблицы разделов
Перед внесением изменений в диск вы можете сделать резервную копию таблицы разделов и схемы разделов диска. Вы также можете использовать резервную копию, чтобы скопировать одну и ту же структуру разделов на несколько дисков.
Используя sgdisk, вы можете создать двоичную резервную копию, состоящую из защитной MBR, основного заголовка GPT, резервного заголовка GPT и одной копии таблицы разделов. В приведённом ниже примере таблица разделов /dev/sda сохраняется в файл sgdisk-sda.bin :
# sgdisk -b=sgdisk-sda.bin /dev/sda
Позже вы можете восстановить резервную копию, запустив:
# sgdisk -l=sgdisk-sda.bin /dev/sda
Если вы хотите клонировать структуру разделов вашего текущего устройства ( /dev/sda в данном случае) на другой диск ( /dev/sdc ) запустите:
# sgdisk -R=/dev/sdc /dev/sda
Если оба диска будут на одном компьютере, вам необходимо рандомизировать GUID диска и разделов:
# sgdisk -G /dev/sdc
Создание таблицы разделов и самих разделов
Первый шаг в разметке диска — создание таблицы разделов. После этого создаются собственно разделы в соответствии с желаемой схемой разметки.
Перед началом вы можете сделать резервную копию вашей текущей таблицы разделов и схемы.
Ниже показано, как использовать gdisk для выполнения как создания таблицы разделов, так и создания фактических разделов. Также вы можете использовать основанную на curses версию cgdisk, однако следующие инструкции к ней неприменимы. Смотрите cgdisk(8) для её использования.
gdisk автоматически выполняет выравнивание по 2048 512-байтовым секторам (1 МиБ) что должно быть совместимо со всеми расширенными форматами HDD и подавляющим большинством SSD.
Чтобы использовать gdisk, запустите программу с именем блочного устройства, которое вы хотите изменить. В этом примере используется /dev/sda :
# gdisk /dev/sda
Создание новой таблицы
Важно: Если вы создадите новую таблицу разделов на диске с данными, то все данные на нём будут удалены. Убедитесь, что это действительно то, что вы хотите сделать.
Чтобы создать новую таблицу разделов GUID и стереть все текущие разделы, напишите o в строке. Пропустите этот шаг, если нужная вам таблица уже создана.
Создание разделов
Создайте новый раздел с помощью команды n . Введите номер раздела, первый сектор, последний сектор и тип раздела.
Примечание: Рекомендации по размеру и расположению разделов можно почитать в статье Разметка дисков#Схема разметки.
Номер раздела
Номер раздела — это номер, присвоенный разделу, например, раздел с номером 1 на диске /dev/sda будет /dev/sda1 . Номера разделов могут не совпадать с реальным порядком разделов на диске, в этом случае их можно отсортировать.
Рекомендуется использовать номер по умолчанию, который предложит gdisk.
Первый и последний сектор
Первый и последний сектор раздела могут быть указаны в виде номеров секторов или в виде позиций, измеряемых в кибибайтах ( K ), мебибайтах ( M ), гибибайтах ( G ), тебибайтах ( T ) или пебибайтах ( P ).
Позиция может быть задана:
- в абсолютном выражении от начала диска. Например, 40M в качестве первого сектора указывает позицию 40 МиБ от начала диска.
- в относительном выражении, предваряя размер символами +размер или —размер . Например, +2G указывает на позицию через 2 ГиБ после сектора, предложенного по умолчанию, а -200M указывает на позицию 200 МиБ перед последним доступным сектором.
Нажатие Enter без ввода значения использует значение по умолчанию, которое является началом самого большого доступного блока для первого сектора и концом того же блока для последнего сектора.
- При разметке всегда рекомендуется указывать относительные размеры разделов с помощью нотации +размер и не использовать размеры меньше 1 МиБ. Такие разделы всегда будут выровнены в соответствии со свойствами устройства.
- Оставьте 1 МиБ свободного места в первых 2 ТиБ диска (например, используя +1M в качестве первого сектора раздела) на случай, если вам понадобится создать раздел загрузки BIOS.
Тип раздела
Выберите тип раздела, введя внутренний код gdisk или указав GUID типа раздела вручную. Значение по умолчанию Linux filesystem (GUID 0FC63DAF-8483-4772-8E79-3D69D8477DE4 , внутренний код gdisk 8300 ) должно быть подходящим для большинства случаев.
- Введите L для просмотра списка внутренних кодов gdisk.
- Рекомендуется следовать Discoverable Partitions Specification, поскольку systemd-gpt-auto-generator(8) будет монтировать их автоматически. Смотрите #Отключение автоматического монтирования раздела GPT, если вы хотите отключить автоматическое монтирование для раздела.
| Тип раздела | Точка монтирования | код gdisk |
GUID типа раздела |
|---|---|---|---|
| Файловая система Linux | Любая | 8300 | 0FC63DAF-8483-4772-8E79-3D69D8477DE4 |
| Системный раздел EFI | Любая 1 | ef00 | C12A7328-F81F-11D2-BA4B-00A0C93EC93B |
| Загрузочный раздел BIOS | Нет | ef02 | 21686148-6449-6E6F-744E-656564454649 |
| Linux x86-64 корень (/) | / | 8304 | 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 |
| Linux подкачка | [SWAP] | 8200 | 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F |
| Linux /home | /home | 8302 | 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 |
| Linux /srv | /srv | 8306 | 3B8F8425-20E0-4F3B-907F-1A25A76F98E8 |
| Linux /var | /var 1 | 8310 | 4D21B016-B534-45C2-A9FB-5C16E091FD2D |
| Linux /var/tmp | /var/tmp 1 | 8311 | 7EC6F557-3BC5-4ACA-B293-16EF5DF639D1 |
| Linux LVM | Любая | 8e00 | E6D6D379-F507-44C2-A23C-238F2A3DF928 |
| Linux RAID | Любая | fd00 | A19D880F-05FC-4D3B-A006-743F0F84911E |
| Linux LUKS | Любая | 8309 | CA7D7CCB-63ED-4C53-861C-1742536059CC |
| Linux dm-crypt | Любая | 8308 | 7FFEC5C9-2D00-49B7-8941-3EA10A5586B7 |
- systemd-gpt-auto-generator(8) будет автоматически монтировать раздел только при выполнении определённых условий. Подробнее смотрите systemd (Русский)#Автомонтирование GPT-раздела.
Повторяйте эту процедуру, пока не получите желаемые разделы.
Запись изменений на диск
Совет: Используйте команду c , чтобы изменить имя раздела (PARTLABEL) для удобной его идентификации.
Для записи новой таблицы на диск и выхода используйте команду w .
Советы и рекомендации
Преобразование между MBR и GPT
Совет: Подробности можно почитать на сайте Рода Смита: Converting to or from GPT.
gdisk, sgdisk и cgdisk способны преобразовывать диски MBR и BSD disklabels в GPT без потери данных. После преобразования все первичные и логические разделы MBR становятся разделами GPT с правильными GUID типов разделов и уникальными GUID разделов.
После преобразования потребуется переустановить загрузчик, чтобы настроить его на загрузку с GPT.
- GPT хранит вторичную таблицу в конце диска. По умолчанию эта структура данных занимает 33 сектора по 512 байт (16,5 КиБ). MBR не имеет подобной структуры данных в конце диска, поэтому последний раздел на диске MBR иногда простирается до самого конца диска и не позволяет выполнить полное преобразование. Если это произошло, необходимо отказаться от преобразования и изменить размер последнего раздела.
- Известны проблемы с повреждением резервной копии GPT на ноутбуках с чипсетом Intel, работающих в режиме RAID. Решением является использование AHCI вместо RAID, если это возможно.
Для преобразования таблицы разделов MBR в GPT с помощью sgdisk используйте опцию -g / —mbrtogpt :
# sgdisk -g /dev/sda
Для преобразования GPT в MBR используйте опцию -m / —gpttombr . Имейте в виду, что преобразовать более четырёх разделов из GPT в MBR невозможно.
# sgdisk -m /dev/sda
Сортировка разделов
В ситуации, когда, например, новый раздел создаётся между двумя существующими или раздел удаляется, нумерация разделов может перестать соответствовать их реальному расположению на диске, и для исправления можно выполнить сортировку. В этом примере используется /dev/sda .
# sgdisk -s /dev/sda
Если вы не используете постоянные имена для блочных устройств, то вам может понадобиться обновить файлы конфигурации, в которых используется нумерация разделов, в частности /etc/fstab и/или /etc/crypttab .
Примечание: Перед использованием новых разделов ядро должно перечитать обновлённую таблицу. Перезагрузитесь или попросите ядро перечитать таблицу разделов.
Восстановление заголовка GPT
Если основной или резервный заголовок GPT оказался повреждён, можно восстановить его из сохранившегося заголовка с помощью gdisk. В данном примере используется /dev/sda .
# gdisk /dev/sda
Выберите r для опций восстановления и преобразования (только для экспертов). Далее выберите
- b : использовать резервный заголовок GPT (воссоздать основной)
- d : использовать основной заголовок GPT (воссоздать резервный)
После этого используйте команду w для записи новой таблицы на диск и выхода.
Расширение диска GPT
После увеличения диска (например, в аппаратном RAID-массиве или на диске виртуальной машины) вновь добавленное место можно будет использовать не сразу, так как GPT хранит свои данные в конце диска. Необходимо переместить резервный заголовок GPT в новый конец диска.
Запустите sgdisk с опцией -e / —move-second-header , например:
# sgdisk -e /dev/sda
После этого посмотрите список разделов, и вы должны увидеть появившееся свободное место.
Отключение автоматического монтирования раздела GPT
systemd-gpt-auto-generator(8) будет автоматически монтировать разделы в соответствии с Discoverable Partitions Specification. Иногда это нежелательно.
Автоматическое монтирование можно отключить путём добавления атрибута раздела 63 .
Запустите gdisk, например:
# gdisk /dev/sda
Введите p для просмотра списка разделов и посмотрите номера разделов, для которых вы хотите отключить автоматическое монтирование.
Введите x (экспертные команды).
Введите a — команду установки атрибута. Введите номер нужного раздела и затем номер атрибута 63 . После этого под строкой Set fields are: должно появиться 63 (do not automount) . Нажмите Enter для завершения изменения атрибутов. Повторите этот шаг для всех нужных разделов.
После завершения используйте команду w для записи новой таблицы на диск и выхода.
Также можно использовать sgdisk с опцией -A / —attributes= ; смотрите sgdisk(8) . Например, для установки атрибута 63 разделу /dev/sda2 выполните:
# sgdisk -A 2:set:63 /dev/sda
EFI-приложение gdisk
Его нет в пакетах, но Род Смит предоставляет собранное бинарное приложение EFI на SourceForge. Скачайте gdisk-efi-*.zip и распакуйте архив. Для использования скопируйте gdisk_x64.efi в системный раздел EFI и запустите его с помощью вашего загрузчика или через UEFI Shell.
gdisk_x64.efi позволяет редактировать таблицу разделов ещё до загрузки операционной системы. Он используется так же, как и двоичный файл gdisk в Linux.
Примечание: gdisk_x64.efi не умеет работать с файловыми системами, так что он не сможет делать резервную копию таблицы в файл или восстанавливать таблицу из файла резервной копии.
Смотрите README-efi.txt для более подробной информации.
Смотрите также
- GPT fdisk Tutorial — официальный сайт GPT fdisk.
- Страница GPT fdisk на SourceForge
GPT fdisk Tutorial
This Web page, and the associated software, is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find GPT fdisk or this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
| Donate $1.00 | Donate $2.50 | Donate $5.00 | Donate $10.00 | Donate $20.00 | Donate another value |
FreeBSD users: The FreeBSD version of GPT fdisk can’t normally save changes to your partition table if any partition from the disk is mounted. If you want to modify your FreeBSD boot disk, the safest way to do so is from an emergency system or from a dual boot to another OS. Alternatively, you can type sysctl kern.geom.debugflags=16 at a shell prompt to enable FreeBSD to write to active disks. This limitation is shared by at least some other FreeBSD partitioning tools, such as gpt and FreeBSD’s fdisk. This limitation does not exist in the Linux, macOS, or Windows versions of the software.
Windows users: BIOS-mode versions of Windows cannot boot from a GPT disk; Windows can boot from such disks only if the computer uses Unified Extensible Firmware Interface (UEFI) firmware. Versions prior to Vista may not be able to read GPT disks at all. Since GPT fdisk automatically turns MBR disks into GPT disks, you should use GPT fdisk only if you’re positive your system can handle them. The vast majority of computers sold with Windows 8 and later have UEFI firmware and so also use GPT. Consult Microsoft’s GPT FAQ for more information on GPT support in older versions of Windows. (A newer version of this FAQ describes GPT with Windows 10 and later.) If you have a BIOS-based computer and desperately need to boot from a GPT disk, consult my BIOS to UEFI Transformation Web page; however, I have not tested these procedures in years myself, and the Clover boot loader may work better today. Also, be aware that the vast majority of computers sold since 2011 do not need to use such software, since they support EFI-mode booting directly.
Sections
- What’s a GPT?—A summary of basics about GPT
- Working Around MBR’s Limitations—A couple of ways to eek a bit more life out of MBR
- Legacy BIOS Issues with GPT—Information on obscure issues related to BIOS/GPT coexistence
- Why Use GPT fdisk?—Advice on when to use GPT fdisk vs. its alternatives
- A gdisk Walkthrough—A demonstration of how to use GPT fdisk’s interactive gdisk tool, which is a powerful tool for experts.
- A cgdisk Walkthrough—A demonstration of how to use GPT fdisk’s command-line cgdisk tool, which is easier to use for partitioning novices.
- An sgdisk Walkthrough—A demonstration of how to use GPT fdisk’s command-line gdisk tool, which is intended for use in scripts or by experts to do quick tasks.
- Partitioning Advice—General suggestions on how to lay out your GPT partitions
- Converting to or from GPT—If you want to convert an existing MBR or BSD disklabel disk to use GPT, or convert GPT to MBR, read this!
- Wiping Out GPT Data—If you need to re-partition a GPT disk using MBR, read this first!
- Booting from GPT—Advice on booting Linux, FreeBSD, Windows, and macOS from GPT disks
- Hybrid MBRs—Information on this non-standard, ugly, flaky, dangerous, but occasionally useful GPT variant.
- Repairing GPT Disks—When a GPT disk’s data structures are damaged, GPT fdisk can help you recover your data.
- Obtaining GPT fdisk—How to get the program.
- Revisions—GPT fdisk’s revision history.
Man Pages
- gdisk man page
- cgdisk man page
- sgdisk man page
- fixparts man page
Using GPT fdisk on Any Computer
- PartedMagic
- SystemRescueCd
Additional Resources
- GPT fdisk’s Sourceforge page—The preferred download method for source code and non-Linux binaries. (For Linux binaries, see the «Obtaining GPT fdisk» page.)
- Intel’s Unified EFI page includes links to various EFI resources.
- The UEFI 2.x specifications and tools detail UEFI 2.x, as implemented on some modern PC motherboards. The GPT structure is described in Section 5 (and especially Section 5.3) of the UEFI 2.8 specification. Note that UEFI 2.x uses the same GPT format (1.0) as described in version 1.x of the EFI specification, although the description has been clarified or expanded in a few areas. The GPT version number is unrelated to the EFI/UEFI version number.
- «Make the Most of Large Drives with GPT and Linux»—An informational piece on GPT I wrote for IBM developerWorks.
- The Wikipedia entry on GPT—This has lots of useful technical information, including the most complete set of GUID partition codes I’ve seen in one place. (I implemented them all in gdisk, but there may be more by the time you read this.)
- The Wikipedia entry on MBR—This has lots of useful technical information on MBR, should you want to compare it to the GPT information.
- Apple’s Technical Note TN2166—A document that provides technical details on GPT.
- Microsoft’s GPT FAQ—Go here to learn Windows-specific GPT information.
- Microsoft’s Recommended UEFI-Based Disk-Partition Configurations page provides details on how to partition a UEFI-based computer on which you want to install Windows.
- Microsoft’s MBR2GPT tool will convert a disk from MBR to GPT form, just as gdisk does. It also converts the Windows installation on the disk to boot in EFI/UEFI mode rather than the BIOS/CSM/legacy mode it had presumably been using.
- A piece on Anandtech concerns the transition to 4096-byte sectors in hard disks.
- Another of my IBM developerWorks articles, this time on using disks with 4096-byte sectors in Linux.
- A page on repairing damage to GPT done by MacDrive under Windows. This page includes a simple Python utility to repair the damage, but of you can do the same thing with GPT fdisk.
- A Web page I’ve written on recovering MBR disks that GNU Parted, GParted, and other libparted-based tools can’t handle because of an improper extended partition definition.
- Google’s Chromium project Web page includes a page on disk formats, including information on how ChromeOS uses GPT disks.
- My Web page on rEFInd, a boot loader project derived from the earlier rEFIt, covers this boot loader for EFI systems.
- My Linux on UEFI: A Quick Installation Guide page provides helpful tips on how to install Linux on EFI-based systems.
copyright © 2009–2022 by Roderick W. Smith
If you have problems with or comments about this web page, please e-mail me at rodsmith@rodsbooks.com. Thanks.
Return to my main web page.
Использование гибридного жесткого диска в MacBook и установка на него Windows
Эта история о том, как простая переустановка затянулась на несколько дней.
И как я пытался подружить EFI и Legacy в MacBook Pro.

Предыстория
В 2018 году я себе приобрел в личное пользование MacBook Pro 15 дюймов, конца 2011 года. Можно уже сказать что он старый, да только на замену прошлого Lenovo он был просто как атомный реактор.
Очень удачно попался с нестандартной комплектацией, а 1680х1050 экраном и увеличенной графикой. И кажется что всё хорошо, можно пользоваться и будет тебе счастье, только для работы одной Mac OS будет мало и через некоторое время я стал ставить на его Windows. И тут я встретил большие проблемы.
Поиск проблем
Большинство информации в интернете рекомендуют ставить через bootcamp, что я и решил сделать как советуют. Только вот мой bootcamp не мог поставить windows. Из предложенного он мог только скачать пакет драйверов и создать\удалить раздел для новой ОС. На этом его функционал закончился. Поиск предлагает переписать несколько строк кода — безрезультатно.
Отложив это дело не надолго я стал искать по ноутбуку информацию. Банально это сверить серийный номер с сайтом и посмотреть что за он. Только официальный сайт ничего полезного не рассказывает. Позже я стал проверять по версии EFI(BootRom) и SMC. И тут я был очень удивлен!
Если версия EFI иногда обновляется с приходом новых обновлений из AppStore, то SMC не обновляется вообще. Конечно, на официальном сайте есть раздел и можно скачать новую версию, что кажется вполне логичным. Только вся проблема в том, что у каждого ноутбука своя версия SMC и всё, она не может меняться(только в самых крайних случаях). В интернете набрел на сайт где рассказывают по модельно в каком ноутбуке должна зашита «эта» версия SMC. Как оказалось, у меня версия от 13 дюймового 1.69f4. В конце концов я пытался понизить версию SMC, а результатов не было. Система говорила что обновилась, а изменений нет.
После всех поисков я терял надежды и решил просто поставить с флешки. И тут разочарование! Система мою звуковую карту видит в системных устройствах, а при попытке установить AMD графику я получаю код ошибки 32. И после установки Intel HD Graphichs я получаю чёрный экран. Пробовал разные сборки, везде один и тот-же результат. В конце концов решение было найдено довольно банально, придя к отцу, взяв его MacBook Pro mid 2012 и поставив в его свой SSD, я поставил Windows и всё было хорошо, я имел одну AMD графику и рабочий звук с остальной периферией. Только я знал что это не вечно и может случиться так что второго ноутбука не будет а переустановить надо. И вот тогда я столкнулся с этим снова.
Таблетка от всех болезней
Практически 95% ресурсов требуют установку через BootCamp, мне эта идея не нравилась, всегда было приятно ручками вручную всё делать. Из прошлой работы Windows я узнал что она работает в режиме Legacy. Я был очень удивлен и не понял как так может быть, если у меня всё работает в системах EFI. По этому в интернете набрел на информацию по конвертации диска из обычного в «гибридный». Тем самым я могу использовать его как GPT и MBR одновременно.
Первым делом мне нужно узнать разметку своего диска.
Я получаю ответ:
sudo gpt -r show /dev/disk0 gpt show: /dev/disk0: Suspicious MBR at sector 0 start size index contents 0 1 MBR 1 1 Pri GPT header 2 32 Pri GPT table 34 6 40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B 409640 204799960 2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 205209600 294907904 3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 500117504 655 500118159 32 Sec GPT table 500118191 1 Sec GPT header
sudo fdisk /dev/disk0 Disk: /dev/disk0 geometry: 31130/255/63 [500118192 sectors] Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ *1: EE 0 0 2 - 1023 254 63 [ 0 - 500118191] 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused mbp-mansi:~ mansi$
Далее, я начинаю редактировать структуру, согласно информации о разделах:
sudo fdisk -e /dev/disk0 fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory Enter 'help' for information fdisk: 1> edit 1 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 1: EE 0 0 2 - 1023 254 63 [ 1 - 409639] Partition id ('0' to disable) [0 - FF]: [EE] (? for help) EE Do you wish to edit in CHS mode? [n] N Partition offset [0 - 500118192]: [63] 1 Partition size [1 - 500118191]: [500118191] 409639 fdisk:*1> edit 2 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 2: AF 1023 254 63 - 1023 254 63 [ 409640 - 204799960] HFS+ Partition id ('0' to disable) [0 - FF]: [AF] (? for help) AF Do you wish to edit in CHS mode? [n] N Partition offset [0 - 500118192]: [409640] 409640 Partition size [1 - 499708552]: [499708552] 204799960 fdisk:*1> edit 3 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ *3: 0C 1023 254 63 - 1023 254 63 [ 205209600 - 294907904] Win95 FAT32L Partition id ('0' to disable) [0 - FF]: [C] (? for help) 0C Do you wish to edit in CHS mode? [n] N Partition offset [0 - 500118192]: [205209600] 205209600 Partition size [1 - 294908592]: [294908592] 294907904 fdisk:*1>
После чего выставляем флаг на третий раздел командой flag 3, и закрываем утилиту, командой exit или q. И проверяем что у нас получилось.
sudo fdisk /dev/disk0 Disk: /dev/disk0 geometry: 31130/255/63 [500118192 sectors] Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 1: EE 0 0 2 - 1023 254 63 [ 1 - 409639] 2: AF 1023 254 63 - 1023 254 63 [ 409640 - 204799960] HFS+ *3: 0C 1023 254 63 - 1023 254 63 [ 205209600 - 294907904] Win95 FAT32L 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
И что бы убедиться у нас всё получилось на 100%, можно скачать дополнительный пакет gdisk и запустить его с такой командой
sudo gdisk /dev/disk0 GPT fdisk (gdisk) version 1.0.4 Warning: Devices opened with shared lock will not have their partition table automatically reloaded! Partition table scan: MBR: hybrid BSD: not present APM: not present GPT: present Found valid GPT with hybrid MBR; using GPT. Command (? for help):
И если всё сделали верно, раздел с MBR стал гибридным.
EFI shell legacy mode?
Самое интересное теперь в установке Windows. Она у нас не пойдет как обычно, система попросту не даст установиться. Это и логично, мы ведь загружаем установку в режиме EFI и требуем работу с GPT разметкой а система не ставит в данном режиме на MBR.
WinNTSetup отлично помогла установить операционную систему. После выбора языка, вызываем консоль сочетанием клавиш Shift + F10 и переходим в каталог с программой, которую предварительно скопировали на флешку. А тут всё просто, запускаем её, указываем файл с установкой, куда хотим ставить и жмём старт. После чего идёт распаковка файлов, запись загрузчика и всё, система почти установлена.

После успешной установки закрываем программу, выходим из установки и перезагружаем ноутбук и выбираем новый раздел с Windows и ждём чудо. Система может перезагрузиться несколько раз, что вполне нормально и после нескольких минут ожидания мы получаем рабочую версию Windows c одной графикой и работающим звуком.

Заключение
После подобных манипуляций и информации в интернете, работа приложения BootCamp становится всё понятнее и понятнее. Она делает данные операции автоматически, мы всё правили вручную. А теперь, после такой информации уже не страшно переустанавливать всё и замена ssd на больше с установкой всех ОС займет на много меньше времени.
Полезные ссылки: