fdisk — Работа с утилитой в Linux

29. 06. 2013

fdisk — семейство утилит для работы с разделами жесткого диска. Очень распространенная, имеется почти в каждой операционной системе. Но, несмотря на одинаковое название, это разные программы и следственно работают по-разному.

Работа с утилитой fdisk в Linux

Работа с утилитой fdisk в LinuxВ этом посте опишу работу с fdisk в Linux. Эта утилита используется при установки различных дистрибутивов Linux, таких как: ArchLinux, Gentoo, Slackware, Debian (текстовый инсталлятор) и.т.п. Основное назначение утилиты fdisk — создание разделов на «чистом» диске, а также изменение уже имеющихся разделов. Нужно упомянуть, что метод переразбиения диска в fdisk, сводится к удалению старых и создание новых разделов, а это означает - потерю всей информации.

Итак, начнем знакомство с fdisk...

Для просмотра имеющихся дисков, на sata контролере, можно применить команду: # ls /dev | grep sd. Все устройства хранятся в каталоге «/dev»

[root] # ls /dev | grep sd
sda

Так же, помимо sda могут быть и другие: sdb, sdc и.т.д.

Если у нас есть созданные разделы, информацию о них можем посмотреть такой командой:

[root] # /sbin/fdisk -l /dev/sda

Disk /dev/sda: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0×00018451

DeviceBootStartEndBlocksIdSystem
/dev/sda1*6319277996358+83Linux
/dev/sda21927808000369390379582Linux/swap
/dev/sda3800037010565950448829567+83Linux
/dev/sda4105659505488397167191368831+5Extended
/dev/sda51056595681251945449767488+83Linux
/dev/sda6125194608140825789781559183Linux
/dev/sda7140825853144729584195186683Linux
/dev/sda81447296482033186392929449683Linux
/dev/sda9203318703488397167142539232+83Linux

Далее, мы можем переходить к работе с fdisk, для этого вводим команду и в аргументе указываем нужный нам диск, в данном случае «/dev/sda».

[root] # fdisk /dev/sda

После чего, попадаем в меню fdisk.

Welcome to fdisk (util-linux 2.22.2).
Changes will remain in memory only, until you decide to write them
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x9265ceee.
Command (m for help): _

Список доступных командам можно получить введя «m»

Command (m for help): m
Command action
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
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
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
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)

Вот перевод:

Команды
a   установить/снять флаг загрузочного раздела
b   редактировать метки bsd диска
c   переключить флаг совместности с dos
d   удалить раздел
l   вывести список известных типов разделов
m   показать это меню
n   добавить новый раздел
o   создать новую пустую таблицу разделов в стиле DOS
p   показать существующею таблицу разделов
q   выйти без сохранения изменений
s   создать новый раздел с меткой Sun
t   изменить метку типа раздела
u   изменить отображения/записи блоков
v   проверить таблицу разделов
w   сохранить изменения и выйти
x   дополнительные возможности (только для экспертов)

Предположим, команда «/sbin/fdisk -l /dev/sda» показала, что диск «sda» пустой и нам нужно разбить его.

Для начала создадим раздел для «boot». Также следует упомянуть, что очередность имеет значение, чем ближе раздел к началу диска — тем больше скорость считывания, из-за скорости вращения.

Command (m for help): n
Partition type:
p     primary (0 primary, 0 extended, 4 free)
e     extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-488397167): 2048
Last sector, +sectors or +size{K,M,G} (2048-488397167, default 488397167): +100M
Partition 1 of type Linux and of size 100 MiB is set

Далее, следует создать «swap» (раздел подкачки). Обычно в 2 раза больше ОЗУ, об этом я уже писал - Разбить диск для Linux.

Command (m for help): n
Partition type:
p     primary (1 primary, 0 extended, 3 free)
e     extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (192780-488397167): 192780
Last sector, +sectors or +size{K,M,G} (192780-488397167, default 488397167): +4G
Partition 2 of type Linux and of size 4 GiB is set

После чего, создаем корень «/usr».

Command (m for help): n
Partition type:
p     primary (2 primary, 0 extended, 2 free)
e     extended
Select (default p): p
Partition number (1-4, default 3): 3
First sector (8000370-488397167): 8000370
Last sector, +sectors or +size{K,M,G} (8000370-488397167, default 488397167): +50G
Partition 3 of type Linux and of size 50 GiB is set

Далее, с помощью fdisk, нам нужно создать расширенный раздел «extended». Если вы планируете обойтись четырьмя разделами (например: /boot, swap, /usr, /home), тогда создавайте четвертый «primary».

Command (m for help): n
Partition type:
p     primary (3 primary, 0 extended, 1 free)
e     extended
Select (default e): e
Select partition 4
First sector (105659505-488397167): 105659505
Last sector, +sectors or +size{K,M,G} (105659505-488397167, default 488397167):
Using default value 488397167
Partition 4 of type Linux and of size 195 GiB is set

Продолжаем дальше создавать логические разделы «logical». Создадим раздел «/tmp».

Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (105659505-488397167): 105659505
Last sector, +sectors or +size{K,M,G} (105659505-488397167, default 488397167): +10G
Partition 5 of type Linux and of size 10 GiB is set

Создадим место под «/var».

Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (125194608-488397167): 125194608
Last sector, +sectors or +size{K,M,G} (125194608-488397167, default 488397167): +8G
Partition 6 of type Linux and of size 8 GiB is set

Можно создать отдельное место под логи (журнал событий) «/var/log», но это пожеланию.

Command (m for help): n
All primary partitions are in use
Adding logical partition 7
First sector (140825853-488397167): 140825853
Last sector, +sectors or +size{K,M,G} (140825853-488397167, default 488397167): +2G
Partition 7 of type Linux and of size 2 GiB is set

Также по желанию, создадим место для «/opt» — для сторонних приложений, таких как xampp или игры.

Command (m for help): n
All primary partitions are in use
Adding logical partition 8
First sector (144729648-488397167): 144729648
Last sector, +sectors or +size{K,M,G} (144729648-488397167, default 488397167): +30G
Partition 8 of type Linux and of size 30 GiB is set

И наконец-то, место для «/home» — домашняя директория пользователей.

Command (m for help): n
All primary partitions are in use
Adding logical partition 9
First sector (203318703-488397167): 203318703
Last sector, +sectors or +size{K,M,G} (203318703-488397167, default 488397167):
Using default value 488397167
Partition 9 of type Linux and of size 145 GiB is set

На этом операции с fdisk-ом не закончены. Нам нужно установить флаг загрузочного раздела.

Command (m for help): a
Partition number (1-6): 1

Далее, нам нужно изменить метку типа раздела, для «swap». Во время выбора, fdisk нам предложит напомнить типы известных разделов, для этого после вывода <Hex code (type L list codes): > введите большую «L» и найдите цифру нужного раздела.

Command (m for help): t
Partition number (1-6): 2
Hex code (type L list codes): 82

Потом, выводим наши созданные разделы на экран, убеждаемся, что все в порядке.

Command (m for help): p

Disk /dev/sda: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0×00018451

DeviceBootStartEndBlocksIdSystem
/dev/sda1*6319277996358+83Linux
/dev/sda2 1927808000369390379582Linux/swap
/dev/sda3 800037010565950448829567+83Linux
/dev/sda4 105659505488397167191368831+5Extended
/dev/sda5 1056595681251945449767488+83Linux
/dev/sda6 125194608140825789781559183Linux
/dev/sda7 140825853144729584195186683Linux
/dev/sda8 1447296482033186392929449683Linux
/dev/sda9 203318703488397167142539232+83Linux

Сохраняемся, на этом все, с fdisk закончили.

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

[root] #

Как видите ничего сложного в fdisk нет, стоит только приловчиться и с fdisk будете работать гораздо быстрее, чем с любой другой программой, например cfdiks.

  • Tolya

    Отличная статья, все просто и понятно, спасибо!

  • алексей

    добрый вечер.я хотел бы переустановить линукс,но никак не получается...не могли бы помочь?

    • root

      Какой дистрибутив linux и что именно не получается ?

  • fdisk/sdisk — устаревшие утилиты, я бы испольщовал GNU parted или GUI gparted.

  • Спасибо. Описано просто и ясно.