Содержание

Команды fdisk

fdisk — общее название системных утилит (sfdisk) для управления разделами жёсткого диска. Широко распространены и имеются практически в любой операционной системе, но работают по-разному. Используют текстовый интерфейс пользователя. В системе FAQ Linux можно запускать fdisk в интерактивном или командном режиме. При запуске нужно обязательно указывать устройство диска, например: /dev/hdb, /dev/sda и т. п. В отдельных случаях (при изменении раздела в командном режиме), потребуется указать раздел диска (например /dev/hda1).

КомандаОСОписание
fdisk -lLinuxВыведет информацию о всех подключееных HDD, в числе и Flash USB
# fdisk -l

Диск /dev/sda: 160.0 ГБ, 160041885696 байт
255 heads, 63 sectors/track, 19457 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xea89ea89

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *           1        1216     9767488+  83  Linux
/dev/sda2            1217       19457   146520832+   5  Расширенный
/dev/sda5            1217        1459     1951866   82  Linux своп / Solaris
/dev/sda6            1460        2675     9767488+  83  Linux
/dev/sda7            2676        3891     9767488+  83  Linux
/dev/sda8            3892       19457   125033863+  83  Linux

Диск /dev/sdb: 4026 МБ, 4026531840 байт
136 heads, 30 sectors/track, 1927 cylinders
Units = цилиндры of 4080 * 512 = 2088960 bytes
Disk identifier: 0x00081047

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1   *           1        1928     3932159+   b  W95 FAT32

Использование fdisk

Обычно разбиение диска производится с помощью программы fdisk для FAQ Linux, которая запускается на одном из этапов установки. Кроме этого, в современных дистрибутивах, пользователь может столкнуться со специальными мастерами(wizard), являющимися надстройками fdisk, и позволяющими графически представлять разбиение диска на разделы. Программа fdisk имеет интерфейс командной строки.

После загрузки средств инсталляции выполните команду fdisk, напечатав

  fdisk <drive>

где <drive> имя устройства в Linux, которому вы хотите выделить раздел. Например, если вы хотите выполнить fdisk для первого IDE-диска, используйте команду fdisk /dev/hda. /dev/hda (первый IDE-диск) берется по умолчанию, если вы не описали другого.

Для современных HDD может понадобиться запуск с ключом -u, например fdisk -u /dev/sdb. Чтобы избежать ошибки "Partition 1 does not start on physical sector boundary."

Если вы создаете разделы для Linux более, чем на одном диске, выполните fdisk отдельно для каждого диска.

    # fdisk /dev/hda
    Command (m for help):

В этот момент fdisk ждет команды; вы можете ввести m, чтобы получить перечень опций.

    Команда (m для справки):  m
    Действия
    a установить признак загрузочного раздела
    d удалить раздел
    l показать список известных типов раздела
    m вывести это меню
    n добавить раздел
    p вывести таблицу разделов
    q выйти без сохранения изменений
    t сменить системный идентификатор раздела
    v проверить таблицу разделов
    w записать таблицу разделов на диск и выйти
    x дополнительные возможности(для опытных пользователей)
    Команда (m для справки):

Для создания нового раздела используется команда n. О большинстве других опций вы можете не вспоминать. Выйти из программы fdisk, без сохранения произведенных изменений, можно командой q. Выйти из программы fdisk с записью изменений в таблице разделов можно командой w.

Первое, что вы должны сделать, это получить и записать текущее состояние таблицы разделов. Используйте команду p.

    Command (m for help):  p
    Disk /dev/hda:  16 heads, 38 sectors, 683 cylinders
    Units = cylinders of 608 * 512 bytes
       Device Boot Begin Start End Blocks Id  System
    /dev/hda1   *   1      1   203  61693  6  DOS  16-bit >=32M
    Command (m for help):

Это пример, когда у нас один MS-DOS-раздел на /dev/hda1, который имеет 61693 блоков (около 60M - блок в Linux - 1024bytes). Этот раздел начинается на цилиндре 1 и заканчивается на цилиндре 203. Всего у нас на диске 683 цилиндров. Так что остается 480 цилиндров для создания раздела Linux.

Для создания нового раздела используйте команду n. В этом примере мы создадим два новых первичных раздела (/dev/hda2 and /dev/hda3) для Linux.

    Command (m for help):  n
    Command action
    e extended
    p primary partition (1-4)
    p

Здесь fdisk спрашивает тип создаваемого раздела: extended (расширенный) или primary (первичный). В нашем примере мы создаем только первичный раздел, так что выбираем p.

  Partition number (1-4):

Затем fdisk спросит число создаваемых разделов; поскольку раздел 1 уже использован, наш первый раздел Linux получит номер 2.

  Partition number (1-4):  2
  First cylinder (204-683):

Теперь введите номер первого цилиндра раздела. Поскольку цилиндры с 204 по 683 не используются, мы используем первый свободный (номер 204). Нет смысла оставлять пустые места между разделами.

  First cylinder (204-683):  204
  Last cylinder or +size or +sizeM or +sizeK (204-683):

Программа fdisk запрашивает размер создаваемого раздела. Мы можем указать последний номер свободных цилиндров или размер в байтах, килобайтах или мегабайтах. Поскольку мы хотим, чтобы наш раздел был размером в 80M, мы укажем +80M. При указании размера раздела таким способом fdisk округлит действительный размер раздела до ближайшего числа цилиндров.

  Last cylinder or +size or +sizeM or +sizeK (204-683):  +80M
  Warning:  Linux  cannot currently  use 33090  sectors of this
  partition

Если вы увидите предупреждение, вроде этого, его можно проигнорировать. Программа fdisk выдает сообщение, поскольку это старая программа, написанная еще до того, когда в Linux были разрешены разделы более, чем 64M. Теперь мы готовы создать второй раздел для Linux. С целью демонстрации мы создадим его размером в 10M.

    Command (m for help):  n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4):  3
    First cylinder (474-683):  474
    Last cylinder or +size or +sizeM or +sizeK (474-683):  +10M

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

  Command (m for help):  p
  Disk /dev/hda:  16 heads, 38 sectors, 683 cylinders
  Units = cylinders of 608 * 512 bytes
   Device Boot Begin Start  End  Blocks  Id  System
/dev/hda1   *   1      1    203  61693    6  DOS  16-bit >=32M
/dev/hda2      204   204    473  82080   81  Linux/MINIX
/dev/hda3      474   474    507  10336   81  Linux/MINIX

Как вы видите, теперь есть /dev/hda2 - раздел размером в 82080 блоков (что соответствует приблизительно 80M), и /dev/hda3 - 10336 блоков (около 10M).

Имейте в виду, что много дистрибутивов требуют использования команды t в программе fdisk для изменения области своппинга "Linux swap", которая обычно имеет номер 82. Вы можете воспользоваться командой l для печати кодов типов известных разделов, а затем использовать t, чтобы установить тип области своппинга, соответствующий "Linux swap".

При этом программы инсталляции смогут автоматически найти ваши разделы своппинга, основываясь на типе. Если ваши программы инсталляции не распознают области своппинга, вы можете снова запустить программу fdisk и использовать команду t в режиме вопросов.

В вышеприведенном примере оставшиеся цилиндры диска (номера с 508 по 683) не использованы. Вы можете позже создать дополнительные разделы.

Наконец, мы используем команду w, чтобы записать изменения и выйти из fdisk

  Command (m for help):  w
  #

Имейте в виду, что ни одно из сделанных изменений не даст эффекта то тех пор, пока вы не дадите команду w. Так что вы можете играть с различными конфигурациями и сохранить их, когда закончите. Кроме того, если вы захотите выйти из fdisk в любое время без сохранения изменений, используйте команду q.

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

Некоторые дистрибутивы Linux требуют перезагрузки системы после окончания работы fdisk. Это позволяет изменениям в таблице разделов оказать свое влияние на последующую инсталляцию. Новые версии fdisk автоматически изменяют соответствующую информацию в ядре, так что перезагрузка не требуется. Чтобы обезопасить себя, после выполнения fdisk вам следует снова загрузить средства инсталляции как и раньше - перед продолжением инсталляции.

Далее нужно отформатировать партиции командой mkfs, например так:

mkfs -t ext3 /dev/hdb1

Расширение диска в Linux без потери данных при помощи fdisk

До внесения изменений, обязательно сделайте резервную копию (backup) всех данных сервера!

Расширение будет выполнено без потери данных, инструкция пригодна для Debian, CentOS, Ubuntu и других ОС. Алгоритм увеличения диска подразумевает удаление раздела - не нужно этого бояться, данные будут сохранены.

В нашем примере устройство называется vda и находится в каталоге /dev

  1. Необходимо узнать название устройства жесткого диска который мы хотим расширить. Делается это командой fdisk -l
  2. Чтобы увеличить размер раздела (партиции, слайса) на диске, нам необходимо выполнить: fdisk /dev/vda
  3. Затем внутри командной строки приложения fdisk выполнить p (print), чтобы увидеть таблицу разделов на диске.
  4. Выполним d для удаления существующего раздела. Затем n – для создания нового, p – для primary, 1 – это номер раздела; и укажем начало и конец раздела в секторах. Начальный сектор должен соответствовать начальному сектору раздела, который был удален. Последний сектор раздела выбираем максимально возможным.
  5. Еще раз p – чтобы убедиться, что раздел теперь увеличился до необходимого нам размера. И w – для записи и выхода из fdisk. После этого мы получим предупреждение, что устройство подмонтировано и суперблок недоступен, и что объем раздела будет изменен после перезапуска ОС.
  6. Перезагружаем ОС — reboot
  7. После перезагрузки нам необходимо расширить ФС на весь раздел. Сделаем это командой resize2fs /dev/vda1