fdisk

Создание и управление таблицей разделов MBR на жестком диске

Синтаксис:

fdisk [-fpz] [-B загрузчик] диск [команда [аргументы]]

Опции:

-B загрузчик
Использовать 512-байтный файл, указанный в аргументе загрузчик, в качестве первичной программы начальной загрузки для устройства. По умолчанию устанавливается загрузчик, встроенный в утилиту fdisk.
-f
Принудительная запись загрузчика даже при невозможности сохранения существующего старого загрузчика в смонтированной файловой системе. В неинтерактивном режиме работы используется совместно с командой loader для записи загрузчика в случаях, которые иначе привели бы к прерыванию выполнения команды. В интерактивном режиме, если не указана опция -f, выдается запрос на подтверждение операции; если же опция -f указана, выполнение команды продолжается без сохранения старого загрузчика.
-p
Пауза перед запуском.
-z
Обнулить таблицу разделов (только в интерактивном режиме).
диск
Диск для разбиения. Должен быть указан блок-ориентированный специальный файл (например, /dev/fd1, /dev/hd0).
[команда [аргументы]]
Команда установки, см. описание ниже.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:


Caution: Для запуска этой утилиты необходимо выполнить вход в систему под учетной записью root либо обладать полномочиями на чтение и запись для данного блок-ориентированного специального файла.

Утилита fdisk позволяет создавать разделы на жестком диске и управлять ими (обычно в роли жесткого диска выступает вращающийся носитель, однако утилита fdisk может работать и с другими устройствами, такими как карта Compact Flash или флэш-накопитель USB, если на них поддерживаются основные загрузочные записи (MBR) и разделы в стиле IBM PC). Формат информации о разделах, которая хранится в первом физическом блоке диска, совпадает с форматом, используемым в системе DOS.


Note: Для управления таблицей разделов в формате GPT предназначена утилита gdisk.

На некоторых платформах fdisk поддерживает полноэкранный интерфейс; см. раздел "Интерактивный режим" далее.


Note:
  • Программа установки Microsoft Windows всегда записывает собственную основную загрузочную запись поверх имеющейся. Если на диске предусмотрено наличие загрузочных разделов DOS или ЗОСРВ «Нейтрино» (или иных разделов, отличных от DOS), необходимо сначала установить Windows, и только затем создать другие разделы. Если установка Windows выполняется после создания раздела ЗОСРВ «Нейтрино», восстановить загрузчик можно путем загрузки с установочного диска и явного вызова dinit для установки загрузчика (или mkqnx6fs, в зависимости от типа файловой системы).

  • На некоторых компьютерах на базе x86 загрузка возможна только с образов операционных систем, загруженных в первые 1024 цилиндра диска. Таким образом, несмотря на первоначально успешную установку и загрузку с раздела, не помещающегося в 1024 цилиндра, в дальнейшем возможно возникновение отказов после обновления загрузочного образа, поскольку местоположение некоторых блоков может измениться. При этом загрузка системы станет невозможной.

    Во избежание этой проблемы следует создать отдельный раздел для загрузки, полностью занимающий первые 1024 цилиндра накопителя, а для доступа к дополнительному пространству на накопителе использовать второй раздел. (Раздел начальной загрузки может быть очень небольшим – достаточно нескольких мегабайтов).


Перед первым созданием раздела QNX 4 необходимо запустить драйвер жесткого диска:

devb-eide &

Затем необходимо вызвать утилиту fdisk для разбиения жесткого диска:

fdisk /dev/hd0 add

Файловая система QNX 4 автоматически не обрабатывает внесенные с помощью утилиты fdisk изменения в таблицу разделов. Файловую систему или драйвер ( devb-*) необходимо либо принудительно остановить командой slay и перезапустить, либо распознать новые разделы при помощи вызова mount -e /dev/hd0 с обновлением содержимого /dev, либо выполнить перезагрузку.

Типы разделов

Утилита fdisk распознает следующие типы разделов. Если выполняется добавление раздела, для его инициализации необходимо использовать следующую команду.

Тип Файловая система Разделяемый объект Команда инициализации Команда проверки
1, 4 или 6 DOS fs-dos.so mkdosfs chkdosfs
5 DOS, расширенная Нет Нет Нет
7 Windows NT (только для чтения) fs-nt.so Нет Нет
8 или 9 QNX 2 Нет Нет Нет
11, 12 или 14 FAT32 fs-dos.so mkdosfs chkdosfs
15 Windows 95, расширенная Нет Нет Нет
77, 78 или 79 QNX 4 fs-qnx4.so dinit chkfsys
99 UNIX Нет Нет Нет
130 Файл подкачки Linux Нет Нет Нет
131 Ext2 (Linux) fs-ext2.so Нет Нет
133 или 147 Linux, расширенная Нет Нет Нет
165 BSD Нет Нет Нет
175 Macintosh Apple HFS или HFS Plus (только для чтения) fs-mac.so Нет Нет
177, 178 или 179 QNX 6 Power-Safe fs-qnx6.so mkqnx6fs chkqnx6fs (обычно не требуется)

Для получения дополнительной информации см. главу «Файловые системы» документа «Описание применения. Часть 1. Системная архитектура» КПДА.10964-01.

Команды

Утилита fdisk при вызове непосредственно из командной строки поддерживает следующие команды:

add [аргументы]
Добавить новый раздел указанного размера и типа. Если утилита fdisk не может выделить достаточный объем нераспределенного дискового пространства для удовлетворения запроса, выделяется наибольший доступный участок жесткого диска (при наличии). Список аргументов команды:
-b
Добавить загрузочный раздел. Если для другого раздела уже установлен флаг первичного раздела начальной загрузки, этот флаг снимается.
-c начало,конец
Начало и конец участка диска, на котором требуется создать раздел.
-p процент
Доля наибольшего непрерывного объема в процентах, которую должен занять новый раздел. Значение по умолчанию – 100%. Если указана опция -c, опция -p игнорируется.
-s слот
Используемый слот в таблице разделов. По умолчанию используется первый открытый слот.
-t, тип
Тип добавляемого раздела (0255). Значение по умолчанию – 77.
boot [аргументы]
Установить флаг загрузки для указанного раздела. Если для другого раздела уже установлен флаг первичного раздела начальной загрузки, этот флаг снимается. Аргументы команды:
-s слот
Загрузить раздел из выбранного слота.
-t тип
Загрузить раздел выбранного типа.
delete [аргументы]
Удалить указанные разделы. Аргументы команды:
-a
Удалить все разделы.
-s слот
Удалить разделы в выбранном слоте.
-t тип
Удалить раздел этого типа.
info
Отобразить информацию о монтировании для неформатированного диска.

Утилита fdisk выполняет вызов devctl( DCMD_CAM_DEVINFO ) для получения информации о количестве цилиндров, головок, секторов на дорожку и общего числа секторов. Классическим методом получения общего числа секторов является перемножение первых трех значений.

Однако в некоторых жестких дисках используется запись битов по зонам, которая не позволяет точно отобразить число секторов на дорожку и другие поля. В результате общее количество секторов, возвращаемое devctl(), и общее количество секторов, полученное в результате расчета, могут расходиться. В этом случае утилита fdisk выводит предупреждение.
loader
Записать загрузчик QNX на диск.
query [аргументы]
Вывести количество цилиндров в стандартный поток вывода. Аргументы команды:
-f
Вывести информацию об общем объеме свободного пространства.
-s слот
Запросить раздел в выбранном слоте.
-T
Вывести информацию об общем объеме пространства.
-t тип
Запросить раздел выбранного типа.
show
Отобразить таблицу разделов.

Интерактивный режим

На некоторых платформах fdisk является полноэкранной, интерактивной программой, для работы с которой не требуется дополнительных пояснений. При вызове fdisk на экран выводится таблица, аналогичная показанной ниже (предполагается, что разбиение диска уже выполнено):

FDISK Ignore Next Prev 1 2 3 4 Change Delete Boot Unboot Restore Loader Save Quit _____OS_____ Start End ______Number_____ Size Boot name type Cylinder Cylinder Cylinders Blocks --> 1. QNX6 (177) 0 7648 7649 122881122 60000 MB 2. QNX6 (178) 7649 9963 2315 37190475 18159 MB * 3. ______ (___) _______ _______ _______ _________ _____ 4. ______ (___) _______ _______ _______ _________ _____ Choose a partition by typing the partition number OR moving the pointer with the UP/DOWN arrows. Then, choose one of the actions on the top line of the screen. Drive : /dev/hd0 Config: 255 Heads Size : 78159 Mbytes 63 Sectors/track Loader: Unknown 9964 Cylinders 512 Block Size Last cylinder is 9963

Доступные команды выводятся в верхней части экрана. Для выбора команды введите первую букву или наведите на команду курсор с помощью клавиш со стрелками и нажмите Enter.

Доступны следующие команды:

Команда Действие
Next Перемещение указателя к следующей записи.
Prev Перемещение указателя к предыдущей записи.
1, 2, 3 или 4 Перемещение указателя на указанную запись.
Change Изменение выбранного раздела (см. ниже).
Delete Удаление выбранного раздела.
Boot Установка флага загрузки для выбранного раздела. Если для другого раздела уже установлен флаг первичного раздела начальной загрузки, этот флаг снимается.
Unboot Снятие флага загрузки для выбранного раздела.
Restore Восстановление предыдущей программы начальной загрузки, отличной от загрузчика ЗОСРВ «Нейтрино».
Loader Замена программы начальной загрузки на загрузчик ЗОСРВ «Нейтрино».
Save Выход с сохранением всех изменений. Выполняется запись на устройство; эту команду невозможно отменить.
Quit Выход без сохранения изменений.


Note: При изменении записи раздела рекомендуется выполнить следующие действия:
  • Сохраните подробные данные о разделе (например, на листке бумаги), поскольку fdisk очищает поля во время правки.
  • Необходимо ввести номер типа раздела, а также начальный и конечный цилиндры; остальная информация рассчитывается утилитой fdisk автоматически. После ввода каждого значения нажимайте Enter.
  • Если до изменения раздел был загрузочным, снова сделайте его загрузочным командой Boot.

Примеры:

Создание раздела QNX 4, занимающего половину диска или наибольший участок свободного пространства, если недостаточно пространства для нового раздела в половину диска:

fdisk /dev/hd0 add -t 77 -p 50

То же, но раздел загрузочный:

fdisk /dev/hd0 add -b -t 77 -p 50

В продолжение любого из вышеприведенных примеров: повторное чтение таблицы разделов, создание файловой системы QNX 4 на новом разделе с последующим монтированием этой файловой системы:

mount -e /dev/hd0 dinit -h /dev/hd0t77 mount -t qnx4 /dev/hd0t77 /mnt/q4fs

Создание загрузочного раздела для файловой системы "Power-Safe", повторное чтение таблицы разделов, форматирование нового раздела с последующим монтированием:

fdisk /dev/hd0 add -b -t 179 -p 50 mount -e /dev/hd0 mkqnx6fs /dev/hd0t179 mount -t qnx6 /dev/hd0t179 /mnt/psfs

Возвращаемое значение:

0
Успешно.
>0
Возникла ошибка; fdisk выводит сообщения об ошибках в стандартный поток ошибок.

Предостережения:

После изменения любой информации о разделе необходимо либо принудительно остановить работу файловой системы/драйвера ( devb-*) командой slay с последующим перезапуском, либо выполнить команду mount с опцией -e для повторного чтения всей таблицы разделов.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

devb-*, fs-*, chkdosfs, chkfsys, chkqnx6fs, df, dinit, gdisk, mkdosfs, mkqnx6fs, mount

Управление запуском ЗОСРВ «Нейтрино»




Предыдущий раздел: Утилиты