Утилита разметки fdisk
Fdisk — это утилита разметки диска, поддерживающая стиль разметки MBR и GPT.
Утилита поставляется в пакете util-linux.
Утилита fdisk работает только от имени суперпользователя.
Синтаксис в fdisk
Для разовых справочных операций синтаксис fdisk выглядит следующим образом:
$ sudo fdisk <опция> <устройство>
Опции задают режим работы утилиты. Некоторые опции имеют обязательные или необязательные аргументы, о них подробнее — в справке по опциям.
Устройство — это жесткий диск, на котором нужно изменить разметку.
Работа с диском
Для начала работы над разметкой необходимо сначала выбрать устройство — войти в режим редактирования конкретного диска:
$ sudo fdisk /dev/sda
Дальнейшая работа с диском осуществляется с помощью команд в интерактивном режиме. Команды задают действия, которые нужно выполнить на диске.
После обращения к диску утилита ответит информацией и будет ожидать ввода команды в интерактивном режиме:
$ sudo fdisk /dev/sda
Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only until you decide to write them.
Be careful before using the write command.
# По умолчанию утилита создает пустую таблицу разделов MBR, но это можно отключить опцией -n.
Does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x569c5370.
Command (m for help):
# Теперь утилита готова выполнять разметку на диске /dev/sda
Интерактивный режим на примерах
При вводе команд утилита будет уточнять дополнительную информацию в интерактивном режиме. Ниже несколько примеров.
Создание раздела
Пример создания раздела на диске /dev/sda
.
$ sudo fdisk /dev/sda
Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only until you decide to write them.
Be careful before using the write command.
Does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x569c5370.
# После обращения к диску нужно ввести команду создания раздела:
Command (m for help): n
# Утилита предлагает выбрать тип раздела (для разметки под MBR):
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
# Далее ожидает указания номера раздела:
Partition number (1-4, default 1): 1
# Предлагает определить размер раздела, задав начало и окончание.
# Можно не заполнять first sector и сразу указать размер, например, в мебибайтах в следующей строке.
First sector (2048-2097151, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-2097151, default 2097151): +500М
Created a new partition 1 of type 'Linux' and of size 500 MiB.
**Be sure to write your changes to disk using the `w` flag**
# Необходимо ввести команду w, чтобы записать изменения на диск:
Command (m for help): w
The partition table has been altered!
Удаление раздела
Пример удаления раздела раздела 1 на диске /dev/sda
.
$ sudo fdisk /dev/sda
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only until you decide to write them.
Be careful before using the write command.
# После обращения к диску нужно ввести команду удаления раздела:
Command (m for help): d
# Далее нужно указать номер раздела, который нужно удалить:
Partition number (1-4): 1
Partition 1 has been deleted.
# Сохранить изменения и выйти из режима работы с диском:
Command (m for help): w
The partition table has been altered!
Создание таблицы GPT
По умолчанию fdisk на пустых устройствах создает таблицу MBR. Это поведение можно изменить опцией -n, которая отменяет автоматическое создание таблицы разделов и ожидает явного создания таблицы разделов соответствующей командой пользователя.
$ sudo fdisk -n /dev/sda
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only until you decide to write them.
Be careful before using the write command.
# После обращения к диску нужно ввести команду создания таблицы разделов GPT:
Command (m for help): g
Created a new GPT disklabel (GUID: DEC15360-414A-4C2D-87DD-25875C23A03E)
Форматирование отсутствует в fdisk.
В fdisk нет встроенной команды форматирования, но можно воспользоваться командой mkfs
.
Например, чтобы отформатировать файловую систему ext4 на разделе 1 диска /dev/sda
нужно ввести команду:
$ sudo mkfs.ext4 /dev/sda1
Команды fdisk
Все команды вводятся в режиме работы с диском.
Работа с таблицей разделов
Работа с разделами
Доступные типы разделов из команды t:
uefi
— системный раздел ESP,home
— раздел home,swap
— область подкачки,linux
— другие разделы.
Сохранение и выход
Справка и информация
Команды только для MBR (DOS)
Дополнительные команды
Опции fdisk
Справка и информация
Отображение
Синтаксис и примеры
----color или -L
Подсвечивает вывод цветом. Аргумент может быть auto
, never
или always
. Если аргумент пропущен, по умолчанию используется auto
.
$ sudo fdisk -c=<когда>
# или
$ sudo fdisk --compatibility=<когда>
$ sudo fdisk -L=never
# или
$ sudo fdisk --color=never
# Подсветка по умолчанию:
$ sudo fdisk --color
----output или -o
Используется совместно с опцией --list
для управления набором столбцов.
$ sudo fdisk -l -o Device,Size
Disk /dev/sda: 32 GiB, 34359738368 bytes, 67108864 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x40fee7c0
Device Size # теперь здесь только два запрошенных столбца
/dev/sda1 31G
/dev/sda2 975M
/dev/sda3 512B
/dev/sda4 512B
/dev/sda5 975M
Справка по --help
содержит список всех поддерживаемых столбцов для разных стилей разметки.
Список столбцов по умолчанию может быть расширен, если он указан в формате +<cтолбец>
.
$ sudo fdisk -l -o +Attrs
Disk /dev/sda: 32 GiB, 34359738368 bytes, 67108864 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x40fee7c0
Device Boot Start End Sectors Size Id Type Attrs # дополнительный столбец
/dev/sda1 * 2048 65107967 65105920 31G 83 Linux 80
/dev/sda2 65110014 67106815 1996802 975M 5 Extended
/dev/sda3 65107968 65107968 1 512B 83 Linux
/dev/sda4 65107969 65107969 1 512B 83 Linux
/dev/sda5 65110016 67106815 1996800 975M 82 Linux swap / Solaris
----units или -u
При использовании --list
поазывает размеры в sectors (секторах) или cylinders (цилиндра х). Можно использовать опцию без аргумента единицы измерения — тогда используется значение по умолчанию, в секторах.
$ sudo fdisk -u=<единицы> -l <устройство>
# или
$ sudo fdisk --units=<единицы> --list <устройство>
$ sudo fdisk -u=cylinders -l /dev/sda
# или
$ sudo fdisk --units=cylinders -l /dev/sda
# Пример вывода:
#теперь в цилиндрах
Device Boot Start End Cylinders Size Id Type
/dev/sda1 * 1 4053 4053 31G 83 Linux
/dev/sda2 4053 4178 125 975M 5 Extended
/dev/sda3 4053 4053 1 512B 83 Linux
/dev/sda4 4053 4053 1 512B 83 Linux
/dev/sda5 4053 4178 125 975M 82 Linux swap / Solaris
# Установить значение по умолчанию:
$ sudo fdisk --units -l /dev/sda
Создание, удаление, блокировка
----lock
Устанавливает исключительную блокировку BSD для устройства или файла, с которым работает утилита. Этот параметр перезаписывает переменную окружения $LOCK_BLOCK_DEVICE.
Аргумент может быть yes, no (или 1 и 0) или nonblock. Если аргумент опущен, по умолчанию он равен yes.
$ sudo fdisk --lock=<аргумент> <устройство>
$ sudo fdisk --lock=yes /dev/sda
# или
$ sudo fdisk --lock=1 /dev/sda
# Блокировка по умолчанию:
$ sudo fdisk --lock /dev/sda
----noauto-pt или -n
Отключает автоматическое создание таблицы разделов на пустом устройстве. Таблица разделов должна быть явно создана пользователем.
$ sudo fdisk -n <устройство>
# или
$ sudo fdisk --noauto-pt /dev/sda
----type или -t
Включает поддержку только указанных стилей разметки.
$ sudo fdisk -t <стиль> <устройство>
# или
$ sudo fdisk --type <стиль> <устройство>
$ sudo fdisk -t gpt /dev/sda
# или
$ sudo fdisk --type gpt /dev/sda
----wipe или -w
аналогичная опция: --wipe-partitions или -W
Удаляет файловую систему, RAID и подписи таблиц разделов с устройства, чтобы избежать возможных коллизий. Аргумент может быть auto, never или always. Если эта опция не указана, значение по умолчанию — auto, в этом случае подписи стираются только в интерактивном режиме. Во всех случаях обнаруженные подписи сообщаются предупреждающими сообщениями перед созданием новой таблицы разделов.
$ sudo fdisk -w <аргумент> <устройство>
# или
$ sudo fdisk --wipe <аргумент> <устройство>
$ sudo fdisk -w never /dev/sda
# или
$ sudo fdisk --wipe never /dev/sda