fdisk (сокращение от “format disk“, форматировать диск) — это наиболее распространенная утилита командной строки для работы с дисками в Linux/Unix системах. При помощи этой команды можно просматривать, создавать, удалять, изменять, копировать и перемещать разделы на жёстком диске, используя простой интерфейс текстовых меню.
Это очень полезный инструмент для выделения пространства для новых разделов, организации пространства на новых дисках, реорганизации старых дисков, а также копирования или перемещения данных на новых дисков. Он позволяет создавать до четырех первичных разделов и некоторое количество логических (расширенных) разделов в зависимости от размера жесткого диска в вашей системе.
Мы рассмотрим ряд базовых команд fdisk для управления таблицей разделов в Linux. Для запуска команды fdisk нужно обладать root-привилегиями (или использовать sudo), иначе будет выведена ошибка “command not found”.
Просмотр всех разделов диска
Для просмотра всех доступных разделов используется опция -l (listing — перечисление). Разделы перечисляются по именам, например, /dev/sda, /dev/sdb или /dev/sdc.
fdisk -l
Просмотр разделов заданного диска
Для просмотра всех разделов заданного жесткого диска укажите опцию -l с именем устройства. Например, следующая команда отобразит все разделы диска /dev/sda:
fdisk -l /dev/sda
Командный режим
Чтобы войти в командный режим, просто введите fdisk с именем жёсткого диска, например, /dev/sda, как показано ниже:
fdisk /dev/sda
Для получения списка команд, которые fdisk может выполнить на диске, введите “m”. Рассмотрим значение этих команд.
a toggle a bootable flag — сделать диск загрузочным
b edit bsd disklabel — редактировать bsd-метку диска
c toggle the dos compatibility flag — установить флаг совместимости с DOS
d delete a partition — удалить раздел
l list known partition types — перечислить известные типы разделов
m print this menu — вывести это меню
n add a new partition — создать новый раздел
o create a new empty DOS partition table — создать новую пустую таблицу разделов DOS
p print the partition table — вывести таблицу разделов (аналогична fdisk -l)
q quit without saving changes — выйти без сохранения
s create a new empty Sun disklabel — создать новую метку диска Sun
t change a partition’s system id — изменить системный идентификатор раздела
u change display/entry units — изменить единицы отображения/ввода
v verify the partition table — проверить таблицу разделов
w write table to disk and exit — записать таблицу на диск и выйти
x extra functionality (experts only) — дополнительные функции (только для экспертов)
Удаление раздела
Допустим, нам нужно удалить определенный раздел, например, /dev/sda4, с определенного жёсткого диска, например, /dev/sda. Сначала нужно зайти в командный режим:
fdisk /dev/xvdb
Затем введите d для удаления раздела. После этого у вас будет запрошен номер раздела для удаления с диска /dev/xvdb. Для удаления раздела номер 2 (то есть, /dev/xvdb2) нужно ввести соответствующую цифру, 2. Затем нужно ввести команду w, чтобы записать таблицу на диск и выйти.
fdisk -l /dev/xvdb
Как мы видим раздел /dev/xvdb2 был удален.
Внимание : будьте осторожны с этой командой, потому что удаление раздела полностью уничтожит все данные на нем.
Создание нового раздела
Войдите в командный режим и введите “n”:
fdisk /dev/xvdb
При создании нового раздела нужно выбрать одну из двух опций: extended для логического раздела или primary для первичного и нажать, соответственно, e или p. Затем потребуется ввести номера первого и последнего цилиндра раздела (либо смещение в цилиндрах или размер). Лучше всего оставить заданное по умолчанию значение первого цилиндра и ввести нужный размер раздела, например, “+5000M”, что означает размер 5000 мегабайт. После создания раздела нужно нажать w для сохранения изменений в таблице разделов.
fdisk -l /dev/xvdb
Теперь мы видим на диске /dev/xvdb два раздела.
Также при создании раздела можно указать размер раздела с помощью опции +size{K,M,G}. Т.е если нужно создать раздел размером 2 Гб, в качестве последнего сектора можно указать +2G
Форматирование раздела
После создания нового раздела не забудьте отформатировать его командой mkfs. Для этого выполните следующую команду:
mkfs -t ext4 /dev/xvdb2
где в ключе -t указываем тип файловой системы в которую мы хотим отформатировать наш раздел.
Проверка размера раздела
Когда раздел отформатирован, проверьте его размер при помощи опции -s (размер отображается в блоках). Так можно узнать размер любого заданного устройства:
fdisk -s /dev/xvdb2
Исправление нумерации в таблице разделов
Если вы удалили логический раздел, возможны ошибки вида ‘partition out of order‘ (нарушение порядка разделов) или ‘Partition table entries are not in disk order‘ (записи таблицы разделов не соответствуют порядку дисков). Допустим у нас диск со следующими разделами
Например, при удалении трёх логических разделов xvdb2, xvdb3 и xvdb4 и создании нового раздела можно предположить, что его имя будет xvdb2. Однако, система создаст раздел xvdb3. Это происходит потому, что после удаления раздела xvdb5 будет перемещена на место xvdb2, а свободное пространство — перераспределено в конец.
Для исправления подобных проблем и назначения вновь созданному разделу имени xvdb2 нужно перейти в режим дополнительных функций (x) и выполнить экспертную команду (f):
fdisk /dev/xvdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): x Expert command (m for help): f Done. Expert command (m for help): w The partition table has been altered!
Естественно, после выполнения команды (f) нужно сохранить изменения командой (w) . После исправления порядка разделов сообщения об ошибках должны прекратиться.
Флаг загрузочного раздела
Чтобы включить или отключить на заданном разделе флаг загрузочного раздела (отображается символом ‘*’ в таблице разделов), нужно выполнить следующие действия.
fdisk -l /dev/xvda
Вы увидите на диске /dev/sda1 флаг загрузочного раздела (звёздочка ‘*’)
fdisk /dev/xvda
Далее введите команду «a» для снятия флага загрузочного раздела, а затем введите номер раздела (в данном случае 1 для /dev/sda1). Флаг загрузочного раздела будет снят, символ звёздочки (*) пропадет.
Для назначения загрузочного диска нужно также использовать опцию «a». Например назначим загрузочным диск xvda2
Заключение
Мы рассмотрели базовые возможности команды fdisk, необходимые для работы с разделами. Более подробную информацию, в том числе об экспертных командах, доступ к которым осуществляется командой x, можно получить на соответствующей man-странице (man fdisk).
Наконец-то в инете появилась статья, которая подавляет страх от управления дисками и разделами из консоли. Автору респект
Отличная статья. А по GPT разделам добавка будет ?