Сайт о телевидении

Сайт о телевидении

» » IgorKa - Информационный ресурс. Работа с программой Fdisk

IgorKa - Информационный ресурс. Работа с программой Fdisk

Назначение программы Fdisk

Утилита Microsoft Fdisk, известная со времен MS DOS, может использоваться и на базе современных систем.

Эта простая программка не обеспечивает такой гибкости, как PartitionMagic, но отлично выполняет операции, связанные с разбиением дисков на разделы. Fdisk может быть полезна в

аварийных случаях либо при первом разбиении диска на разделы. Она позволяет быстро очищать разделы от данных.

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

Программа Fdisk занимает очень мало места, что позволяет включить ее в состав «аварийной» дискеты.

Запуск программы

Если операционная система сбоит, вставьте в привод флоппи-диска аварийную дискету, на которой записан файл Fdisk. Перезапустите ПК с дискеты так, как описывалось в предыдущих разделах. Для запуска Fdisk можно использовать диск инсталляции Windows 9x. Загрузитесь с него и выберите команду меню Start computer with CD-ROM support. После загрузки MS DOS введите в командную строку MS DOS команду а: \ fdisk и нажмите . Программа запустится, и отобразится ее окно.

В поставку Windows XP входят различные утилиты, запускаемые из командной строки, однако многие из них подверглись значительным изменениям по сравнению с предшествующими версиями Windows. Многие команды усовершенствованы. Существует ряд новых команд, а некоторые в Windows XP вообще аннулированы. Windows XP, в частности, не поддерживает следующие команды - fdisk, backup, detrag, emm386, mirror, msd, r e s t o r e , scandisk, sys и др.

Для запуска Fdisk в Windows Millennium достаточно выбрать команду меню Пуск >> Выполнить. В диалоговом окне Запуск программ введите в текстовое поле Открыть команду

fdisk и щелкните на кнопке ОК.

Комбинация клавиш позволяет запустить программу Диспетчер задач Windows, которая может выручить вас в трудную минуту. В окне программы вы можете выбрать и закрыть любую из программ, которая, по вашему мнению, привела к «повисанию» системы. Для перезапуска системы выберите команду меню Завершение работы >> Перезагрузка (Выключение).

Создание разделов

Для создания разделов диска выполните следующие действия.

1. Утилита Fdisk предложит активизировать поддержку больших дисков. В случае отказа от подобной активизации реализуется возможность создания раздела с файловой системой FAT 16 объемом до 2 048 Мбайт. Выберите из меню команду Создание раздела DOS либо логического раздела DOS, что позволит создать первый раздел для инсталляции Windows 9x.

2. Выберите команду Создание основного раздела DOS для создания основного раздела загрузки.

3. На предложение использовать для раздела все имеющееся дисковое пространство ответьте отрицательно. Следует предусмотреть запас дискового пространства для двух дополнительных разделов, которые позволят инсталлировать Windows XP, а также отдельно хранить файлы документов и программ.

4. Определите размер первого раздела. Помощь в этом может оказать табл. 1.

Таблица 1. Размеры логических дисков, необходимых для установки различных операционных систем

Операционная система Размер, Мбайт

Windows 98 400-2 000

Windows NT 4.0 124-1000

Windows 2000 Professional 650-2 000

Windows XP Home Edition 1 500-2 000

Windows XP Professional 1 500-2 000

Linux RedHat 6.1 135-2 000

5. Выполните установку первого раздела как активного, предназначенного для загрузки.

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

6. Выберите сначала команду меню Создание радела DOS либо логического диска DOS, а затем - Создание дополнительного раздела DOS, что позволит создать логический раздел для следующей файловой системы.

7. Руководствуясь табл. 1, определите размер второго раздела, в котором будет установлена вторая операционная система.

8. Аналогичным образом создайте третий раздел. Он также может быть создан в среде Windows XP с помощью программы Диспетчер дисков.

9. Для выхода из программы нажмите клавишу , а затем, дважды нажав комбинацию клавиш , выполните «теплый запуск системы».

Для того чтобы иметь исчерпывающую информацию о параметрах жестких дисков, выполните последовательность Пуск => Панель управления => Администрирование => Управление компьютером.

Выберите элемент Дефрагментация диска. В открывшемся диалоговом окне выберите анализируемый диск и щелкните на кнопке Анализ. В диалоговом окне Дефрагментация диска щелкните на кнопке Вывести отчет.

Прошлая лекция была посвящена жестким дискам в целом и в Linux в частности. Сегодня мы поговорим о том как разбить жесткий диск на разделы, как отформатировать раздел и какие есть файловые системы. Для того чтобы создать разделы на новом диске нам вполне подойдет команда fdisk . Команда fdisk существует во всех дистрибутивах Linux , поэтому является в этом смысле универсальным инструментом. Команда fdisk умеет создавать и удалять разделы диска, но не умеет изменять размеры существующих разделов. Если есть раздел А и Б одинакового размера и необходимо увеличить раздел А за счет раздела Б, то команда fdisk не сможет сделать это “на лету”. Придется сохранить всю информацию, удалить разделы А и Б, и затем создать новые разделы А и Б с нужными размерами.

Пусть у нас есть чистый неотформатированный жесткий диск /dev/sdc , который нам нужно разбить для установки системы Linux . Запустим программу fdisk с параметром /dev/sdc . Работать в программе fdisk необходимо от имени суперпользователя.

igor@adm-ubuntu:~/linux$ sudo fdisk /dev/sdc

Количество цилиндров для этого диска установлено в 19457.
С этим все в порядке, но значение больше, чем 1024,
и в отдельных установках могут возникнуть проблемы с:
1) программами, запускаемым при загрузке (напр., старые версии LILO)
2) загрузкой и программами разметки из других ОС
(напр., DOS FDISK, OS/2 FDISK)

Команда (m для справки):

По этой команде мы начинаем работу с нашим жестким диском в интерактивном режиме. Подсказка сообщает нам, что необходимо нажать m для справки. Нажимаем клавишу m и видим перечень основных команд:

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

Давайте нажмем на кнопку p , чтобы посмотреть, есть ли разделы на нашем диске:

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

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

5 - расширенный
82 - Linux swap
83 - Linux (ext2/ext3/ext4)

Начнем создавать разделы. Пусть у нас будет 5 разделов. Первый раздел будем размером 200 Мб, и на нем будет храниться каталог /boot . Далее будет идти раздел куда будет установлена остальная часть операционной системы Linux (выделим 20 Гб), далее раздел swap (2 Гб), далее расширенный раздел, который будет разделен на два одинаковых раздела.

Для того чтобы создать раздел необходимо нажать на клавишу n :

Команда (m для справки): n
Действие команды
e расширенный
p основной раздел (1-4)

fdisk спрашивает какой раздел мы хотим создать: расширенный или основной. Нам нужен основной раздел, поэтому нажимаем p и Enter

Номер раздела (1-4):

Далее необходимо указать номер раздела, чтобы программа fdisk знала в какой раздел таблицы разделом MBR записать информацию о разделе. Вариантом может быть всего четыре (по количеству разделов). Будем указывать по порядку, поэтому нажимаем 1 и Enter

Первый цилиндр (1-19457, по умолчанию 1):

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

Last цилиндр, +цилиндры or +size{K,M,G} (1-19457, по умолчанию 19457):

Далее нам необходимо указать какой размер будет у раздела. Размер можно указывать либо в цилиндрах (что для нас не очень удобно), либо в кило-, мега-, гигабайтах, что гораздо удобнее. Наш первый раздел будет 200 Мб, поэтому набираем +200M и нажимаем Enter . Создание раздела закончено, нажмем p , чтобы проверить это:

Команда (m для справки): p

Устр-во Загр Начало Конец Блоки Id Система

Видим, что раздел создан. Создаем таким же образом еще два основных раздела. После этого нажимаем p , чтобы проверить разделы:

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdc1 1 26 208813+ 83 Linux

/dev/sdc3 2639 2900 2104515 83 Linux

Четвертый раздел создаем расширенный. После того как выберем нажав на e - тип расширенный далее нажимаем Enter принимая все значения по умолчанию. Таким образом мы выделим под расширенный раздел все оставшееся пространство:

Команда (m для справки): n
Действие команды
e расширенный
p основной раздел (1-4)
e
Выбранный раздел 4
Первый цилиндр (2901-19457, по умолчанию 2901):
Используется значение по умолчанию 2901
Last цилиндр, +цилиндры or +size{K,M,G} (2901-19457, по умолчанию 19457):
Используется значение по умолчанию 19457

Теперь начнем создавать логические разделы на нашем расширенном разделе. Снова нажимаем n и видим, что теперь уже программа fdisk работает только с расширенным разделом:

Первый цилиндр (2901-19457, по умолчанию 2901):

Процесс создания логических разделов ничем не отличается от процесса создания основных разделов. В итоге получаем следующую картину по разделам:

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdc1 1 26 208813+ 83 Linux
/dev/sdc2 27 2638 20980890 83 Linux
/dev/sdc3 2639 2900 2104515 83 Linux


/dev/sdc6 11180 19457 66493003+ 83 Linux

Раздел /dev/sdc3 у нас должен быть отформатирован как swap-раздел . Поэтому нам необходимо внести изменения в тип файловой системы раздела /dev/sdc3 . Дла этого нажимаем t , затем выбираем раздел и указываем идентификатор нового типа раздела (для swap - это 82):

Команда (m для справки): t
Номер раздела (1-6): 3
Шестнадцатеричный код (введите L для получения списка кодов): 82
Системный тип раздела 3 изменен на 82 (Linux своп / Solaris)

Точно таким же образом можно изменить типы файловых систем на других разделах. Проверяем разделы командой p :

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdc1 1 26 208813+ 83 Linux
/dev/sdc2 27 2638 20980890 83 Linux
/dev/sdc3 2639 2900 2104515 82 Linux своп / Solaris
/dev/sdc4 2901 19457 132994102+ 5 Расширенный
/dev/sdc5 2901 11179 66501036 83 Linux
/dev/sdc6 11180 19457 66493003+ 83 Linux

Разделы созданы. Теперь внимание! Все манипуляции с жестким диском которые мы только, что делали пока сохранены в оперативной памяти и никаких изменений в жесткий диск внесено не было. Для того чтобы внести эти изменения нужно нажать на клавишу w (write) . После этого изменения будут необратимыми. Если сейчас нажать вместо w на клавишу q , то утилита fdisk завершит свою работу и никакие изменения не будут применены.

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

После создания разделов и перезагрузки компьютера, разделы нужно отформатировать. Для этого предназначена команда mkfs . Чтобы отформатировать раздел нужно указать тип файловой системы и сам раздел:

igor@adm-ubuntu:~$ mkfs -t ext4 /dev/sda

Для наиболее часто используемых файловых систем есть команды вида mkfs.ext4, mkfs.ext3, mkfs.vfat и другие. То есть отформатировать раздел /dev/sda8 можно было бы командой: sudo mkfs.ext4 /dev/sda8 .

Для того чтобы отформатировать раздел под swap-область нужно воспользоваться командой mkswap : mkswap /dev/sdc3 . Для того чтобы подключит swap-раздел используется команда swapon . Для отключения swap-области существует команда swapoff . Чтобы swap-раздел подключался автоматически при загрузке системы, необходимо в файле /etc/fstab прописать соответствующую строку монтирования. Для того чтобы посмотреть используется ли в системе область подкачки (swap ) можно использовать команду free :

igor@adm-ubuntu:~$ free
total used free shared buffers cached
Mem: 1024752 581616 443136 0 16888 158100
-/+ buffers/cache: 406628 618124
Swap: 1140544 1792 1138752

Видим, что в системе под область подкачки используется 1 Гб дискового пространства.

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

fdisk - общее название системных утилит для управления разделами жёсткого диска. Широко распространены и имеются практически в любой операционной системе, но работают по-разному. Используют текстовый интерфейс пользователя.

Предупреждение : Не создавайте, не удаляйте и не изменяйте разделы, если вы не знаете, что вы делаете!

Утилита FDISK в Unix/Linux

С FDISK утилитой можно просматривать, создавать, изменять размер, удалять, копировать и перемещать разделы на жестком диске. И я приведу наглядные примеры по использованию.

Просмотр разделов в Unix/Linux

Начнем с самого легкого — просмотра разделов. Используйте опцию «-l» с командой FDISK, для просмотра доступных разделов в Linux (в Unix системах — данная опция может не сработать. Проверялось на Mac OS X). Все имеющиеся разделы в линукс отображаются по имени их устройства. Например: /dev/sda, /dev/sdb или /dev/sdc.

И так, запустим команду:

Вывод получаем следующий:

Можно узнать некоторую полезную информацию по конкретному блочному устройству. Например, следующая команда отобразит все разделы для /dev/sda:

Если у Вас есть разные названия устройств, простое имя устройства записи как /dev/sdb или /dev/sdc и так далее.

Вывод доступных команд по FDISK

Если вы хотели бы просмотреть все команды, которые доступны для FDISK, то просто используйте следующую команду, упомянув название жесткого диска, например /dev/sda, как показано ниже:

вывод все доступных команд для FDISK например для /dev/sda

Введите ‘m’, чтобы увидеть список всех доступных команд по FDISK, которые помогут с работой по жесткому диску /dev/sda. После, ввода ‘m’ на экране, вы увидите все доступные параметры для FDISK которые можете использовать для устройства /dev/sda (данное устройство взято как пример):

ПРЕДУПРЕЖДЕНИЕ: DOS-совместимый режим не рекомендуется. Настоятельно рекомендуется
выключить режим (команда ‘c’) и изменить units для сектора (команда ‘u’).

Допустимые опции при работы с fdisk

  • a:- Данная опция служит для переключение загрузочного флага.
  • b:- Данная опция служит для редактирования BSD метки диска.
  • c:- Данная опция служит для переключения флага совместимости дос.
  • d:- Данная опция служит для удаления раздела.
  • g:- Данная опция служит для создания новой, пустой таблицы разделов GPT.
  • G:- Данная опция служит для создание таблицы разделов IRIX (SGI).
  • l:- Данная опция служит для вывода известных типов разделов (Linux swap, Linux, GPT, Solaris и так далее).
  • m:- Данная опция служит для вывода доступных команд (меню).
  • n:- Данная опция служит для добавления нового раздела.
  • o:- Данная опция служит для создание новой пустой таблицы разделов DOS.
  • p:- Данная опция служит для вывода таблиц разделов.
  • q:- Данная опция служит для выхода из меню но без какого-либо сохранения изменений.
  • s:- Данная опция служит для создания новой и пустой Sun метки диска (disklabel).
  • t:- Данная опция служит для изменения типа «System ID» раздела (взять можно с вывода «l» опции).
  • u:- Данная опция служит для изменения блоков отображения/ввода.
  • v:- Данная опция служит для проверка таблиц разделов.
  • w:- Данная опция служит для записи всего измененного и потом выйти.
  • x:- Данная опция служит для вызова дополнительной функциональности (только для экспертов).

Вывод всех партиций (разделов) в Unix/Linux

Чтобы вывести таблицу разделов вашего блочного устройства, используйте:

# fdisk /dev/sda

После чего, вы попадаете в меню (в нем можно проводить различные операции с разделами), нас интересует только просмотр, по этому — вводим «p» опцию:

Создать таблицу разделов (disklabel) в Unix/Linux

Если имеется пустое блочное устройство и вы хотите на нем сделать разметку для установки будущей ОС, то для начала, стоит выбрать будущую разметку.

Приеду основные таблицы для разметки:

  • MBR (msdos)

Чтобы создать таблицу разделов вашего блочного устройства, используйте:

# fdisk /dev/sda

Данным действием было выбрано блочное устройство /dev/sda и чтобы создать на нем новую таблицу разделов, используем одну из опций:

  • g — Чтобы создать новую, пустую таблицу GPT разделов.
  • o — Чтобы создать новую, пустую таблицу DOS разделов.

И переходим к созданию разделов.

Создать новый раздел в Unix/Linux

И так, допустим у вас есть свободное место на одном из устройств (у меня это /dev/sda) и вам необходимо создать новый раздел (например для установки ОС). Тогда вы должны запустить утилиту следующим образом (Введите следующую команду, чтобы войти в режим управления конкретного блочного устройства):

# fdisk /dev/sda

После входа в командный режим нажмите «n», чтобы создать новый раздел в /dev/sda с определенным размером.

После нажатия «n», вас просят выбрать тип будущего раздела:

  • p — Для «primary», т.е создать первичный раздел.
  • e — Для «extended», т.е создать расширенный раздел.

Хочу отметить следующее, что «primary» разделов можно создать до 4-х штук, а все остальные будут «extended» (т.е расширенными разделами). Т.к у меня — это всего лишь 1-й раздел, то я выбираю опцию «p». Как я сказал ранее, это мой первый, первичный раздел и для него, я должен указать номер (номер партиции), логично указать 1 (Но можно выбрать 1-4, т.к всего 4). Для создания полноценного раздела, необходимо указать сектор (начало позиции цилиндра для создаваемого раздела), мне подсказывают что это будет — 2048 (выбрал стандартное значение), а так же, нужно указать где будет заканчиваться данный сектор (конец позиции цилиндра для создаваемого раздела) — мне предлагают указать стандартное значение, но оно мне не подходит, т.к оно создаст 1 раздел максимальной длины (у меня это 21 Гб — тестовая машина). На данном этапе, можно указывать конец сектора в килобайтах (K), мегабайтах (M), гигабайтах (G). Предположим, я хочу создать 1-й раздел 5Гб, тогда я должен прописать «+5G» (или «+5000M» и так далее).

Можно еще создать несколько разделов. Действия будут какие же.

Пожалуйста, имейте в виду, что после создания нового раздела, вы должны запустить (выполнить) команду ‘w’, чтобы все действия сохранились. Ну а после чего, выполнить перезапуск ОС, чтобы убедиться что создался раздел.

Форматирование разделов в Unix/Linux

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

Я буду использовать утилиту «mkfs для форматирования раздела. Данная утилита поддерживает следующие ФС:

  • ext2: # mkfs.ext2 /dev/sda1
  • ext3: # mkfs.ext3 /dev/sda4
  • ext4: # mkfs.ext4 /dev/sda4
  • fat: # mkfs.fat /dev/sda4
  • minix: # mkfs.minix /dev/sda4
  • msdos: # mkfs.msdos /dev/sda4
  • vfat: # mkfs.vfat /dev/sda4
  • xfs: # mkfs.xfs /dev/sda4

Выбираем тип ФС и переходим к фармотированию.

Проверить размер раздела в Unix/Linux

После форматирования нового раздела, проверить размер раздела можно с помощью флага «s» и команды FDISK. Таким образом, вы можете проверить размер любого конкретного устройства. Например:

# fdisk -s / dev/sda3 5285413

Размер отображается в блоках.

Для вывода в гигабайтах (Гб), используйте:

# echo "`fdisk -s /dev/sda2`/(2^20)" | bc # echo "`fdisk -s /dev/sda1`/(2^20)" | bc # echo "`fdisk -s /dev/sda`/(2^20)" | bc

Выглядит юзабельно.

Включение/Выключение загрузки флага (*) из раздела в Unix/Linux

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

# fdisk /dev/sda

Первым шагом, будет просмотр имеющихся разделов, чтобы увидеть текущую таблицу разделов. Как вы помните — это «p» опция. У меня на скриншоте ниже, видно что загрузочный раздел на / dev/sda1 диске (вы видите, что это флаг загрузки — звездочка ‘*’), как показано ниже:

Чтобы включить флаг с загрузки, используем «a» опцию. После того как нажали, необходимо будет ввести номер раздела который будет загружаться (например 1-й) и сново вернули все на места.

Удалить раздел в Unix/Linux

Если вы хотели бы удалить определенный раздел (т.е. /dev/sda4) от конкретного блочного устройства (например — /dev/sda). Вы должны выполнить:

# fdisk /dev/sda

Затем, введите ‘d’ — чтобы войти в меню удаления разделов. После ввода, просят ввести номер раздела, который я хочу удалить. Предположим, мне нужно удалить 4-й раздел, то я ввожу «4». Все, раздел был удален. Вводим ‘w’ для записи всех изменений! Новые изменения будут работать только после следующей перезагрузки системы. Это можно легко понять из приведенного ниже вывода.

Предупреждение: Будьте осторожны, выполняя этот шаг, потому что с помощью опции ‘d’ полностью удалит раздел из системы и вы можете потерять все данные с разделе!

Использование fdisk в bash скриптах

Если хорошо знаешь команды, то можно написать небольшой баш-скрипт или просто использовать данную конструкцию в шеле оболочки, который эмулировал бы работу пользователя:

Fdisk /dev/hda << EOF n p 1 a 1 t c w EOF

Я не буду объяснять что делает данные буквы, т.к я описывал все опции выше.

Тема «Как использовать команду FDISK на Linux», я старался изо всех сил рассказать почти о всех основных командах fdisk, но все еще FDISK содержит множество других команд вы можете использовать их, введя «х». Для получения более подробной информации, введите команду ‘man Fdisk «в терминала.

Самый известный инструмент для работы с таблицей разбиения - программа fdisk . Программы с таким названием имеются во всех операционных системах. Но, несмотря на совпадение названий, по сути это совершенно разные программы, так что не стоит пользоваться описанием одной из них, применяя другую. К тому же в одном из руководств я нашел утверждение о том, что использование FDISK от Win95/Win98 в системах с несколькими разными файловыми системами (установленными в разные разделы) опасно. Известны случаи, когда эта программа удаляла логические разделы типа, отличного от FAT, хотя ей было задано удалить FAT-раздел, расположенный где-то дальше в цепочке логических разделов.

В Линукс имеются три версии этой программы: fdisk , sfdisk , cfdisk . Их основное назначение - создание разделов на "чистом" диске или изменение разбиения диска. Но основной метод переразбиения диска в этих программах сводится к удалению существующих разделов и созданию новых (соответственно, с потерей всей информации на диске). Правда, man-страница к утилите sfdisk сообщает, что утилита эта может производить переразбиение диска, но предупреждает, что операция эта очень опасна.

Все три упомянутых программы имеют только текстовый интерфейс, то есть запускаются в консоли или окне терминала. На страничке man к программе fdisk сообщается, что cfdisk создает высококачественные таблицы разбиения диска и поэтому, если есть возможность, то надо использовать именно эту программу. Одновременно отмечается, что fdisk обычно дает неплохой результат, но имеет некоторые недостатки и ее не рекомендуется применять, если есть другие возможности. Относительно sfdisk утверждается, что это программа для хакеров - она более корректна, чем fdisk и мощнее чем fdisk и cfdisk , но имеет ужасно неудобный интерфейс. И, действительно, интерфейс cfdisk кажется наиболее удобным, поскольку он уже имеет интуитивно понятное меню. Автор статьи утверждает, что именно по этой причине программа cfdisk используется в текстовых инсталляторах Debian GNU/Linux и Slackware Linux. А вот в системе, установленной из дистрибутива Red Hat Linux 9 этой утилиты почему-то не оказалось.

У fdisk и sfdisk есть одна важная особенность -- они умеют выводить список всех существующих разделов в неинтерактивном режиме. Для этого достаточно запустить эти команды с опцией -l. Причем, если не указывать устройство, то будет выведен список разделов всех имеющихся дисков. Результаты выполнения этих команд выглядят немного по-разному. На моем диске с испорченной таблицей разделов я получил следующие результаты:

Листинг 4.

# /sbin/sfdisk -l /dev/hda

Disk /dev/hda: 77545 cylinders, 16 heads, 63 sectors/track Warning: extended partition does not start at a cylinder boundary. DOS and Linux will interpret the contents differently. Units = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/hda1 0+ 764- 765- 385528 82 Linux swap end: (c,h,s) expected (764,15,62) found (47,254,62) /dev/hda2 * 765+ 4574- 3809 1919736 c W95 FAT32 (LBA) start: (c,h,s) expected (765,1,1) found (48,1,1) end: (c,h,s) expected (1023,15,63) found (286,254,63) /dev/hda3 4574+ 4765- 192- 96390 83 Linux start: (c,h,s) expected (1023,15,63) found (287,0,1) end: (c,h,s) expected (1023,15,63) found (298,254,63) /dev/hda4 4765+ 77535- 72771- 36676395 f W95 Ext"d (LBA) start: (c,h,s) expected (1023,15,63) found (1023,5,1) end: (c,h,s) expected (1023,15,63) found (1023,14,63) /dev/hda5 4765+ 6805- 2040- 1028128+ 83 Linux start: (c,h,s) expected (1023,15,63) found (299,1,1) end: (c,h,s) expected (1023,15,63) found (426,254,63) /dev/hda6 6805+ 10885- 4080- 2056288+ 83 Linux start: (c,h,s) expected (1023,15,63) found (427,1,1) end: (c,h,s) expected (1023,15,63) found (682,254,63) /dev/hda7 10885+ 27141- 16257- 8193118+ 83 Linux start: (c,h,s) expected (1023,15,63) found (683,1,1) end: (c,h,s) expected (1023,15,63) found (1023,254,63) /dev/hda8 27141+ 36895- 9754- 4915858+ 83 Linux start: (c,h,s) expected (1023,15,63) found (1023,254,63) end: (c,h,s) expected (1023,15,63) found (1023,254,63) /dev/hda9 36895+ 77535- 40641- 20482843+ b W95 FAT32 start: (c,h,s) expected (1023,15,63) found (1023,254,63) end: (c,h,s) expected (1023,15,63) found (1023,254,63)

Листинг 5.

Disk /dev/hda: 40.0 GB, 40020664320 bytes 16 heads, 63 sectors/track, 77545 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hda1 1 765 385528 82 Linux swap Partition 1 does not end on cylinder boundary. /dev/hda2 * 766 4575 1919736 c W95 FAT32 (LBA) Partition 2 does not end on cylinder boundary. /dev/hda3 4575 4766 96390 83 Linux Partition 3 does not end on cylinder boundary. /dev/hda4 4766 77536 36676395 f W95 Ext"d (LBA) Partition 4 does not end on cylinder boundary. /dev/hda5 4766 6806 1028128+ 83 Linux /dev/hda6 6806 10886 2056288+ 83 Linux /dev/hda7 10886 27142 8193118+ 83 Linux /dev/hda8 27142 36896 4915858+ 83 Linux /dev/hda9 36896 77536 20482843+ b W95 FAT32

Все сказанное еще не позволяет сделать однозначного вывода о том, какая их этих программ предпочтительнее. Поэтому рассмотрим все три утилиты последовательно.

2.2. Программа fdisk

Работа с программой fdisk осуществляется через командный интерфейс. Если запустить ее без опций, мы увидим только приглашение к вводу одной из доступных однобуквенных клавиатурных команд (см. листинг 6).

Листинг 6.

# /sbin/fdisk /dev/hda The number of cylinders for this disk is set to 2498. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help):

Список доступных команд мы получаем по команде (поскольку вызов этих команд осуществляется нажатием соответствующей клавиши, я буду обозначать команды буквой, заключенной в угловые скобки):

Листинг 7.

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) Command (m for help):

Самая употребительная из этих команд, пожалуй, команда

, по которой выводится полный перечень имеющихся на диске разделов (включая логические). Результат выполнения этой команды аналогичен результату, получаемому после выполнения команды
# /sbin/fdisk -l /dev/hda
из командной строки, так что пример выполнения этой команды вы уже видели (листинг 5). Границы разделов в этом случае показаны в виде номеров цилиндров. Вообще говоря, в процессе знакомства с программами разбиения диска складывается впечатление, что границы разделов лучше всего размещать по границам цилиндров.

Если добавить в вызов утилиты fdisk опцию -u, то границы разделов будут задаваться порядковыми номерами секторов. Я предполагаю (хотя нигде в документации такого утверждения я не встречал), что это соответствует линейной нумерации секторов (LBA). Номера секторов вы увидите и тогда, когда выполните команду

после запуска самой утилиты в следующем формате:
# /sbin/fdisk -u /dev/hda
Впрочем, переключиться с одного способа указания границ разделов на другой можно в любой момент работы с программой, достаточно дать клавиатурную команду .

Назначение некоторых клавиатурных команд я поясню так же кратко, как они даются самой утилитой, но на русском языке:

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

По команде мы переходим “на второй уровень” программы fdisk . Как сказано выше, этот уровень - для экспертов! Перечень дополнительных возможностей, доступных на этом уровне, можно снова получить по команде (см. листинг 8):

Листинг 8.

Command (m for help): x Expert command (m for help): m Command action b move beginning of data in a partition c change number of cylinders d print the raw data in the partition table e list extended partitions f fix partition order g create an IRIX (SGI) partition table h change number of heads m print this menu p print the partition table q quit without saving changes r return to main menu s change number of sectors/track v verify the partition table w write table to disk and exit Expert command (m for help):

Некоторые из этих команд вам уже знакомы -

, , , . Они здесь действуют так же, как на основном уровне. Командой - исправить порядок расположения разделов, вам придется воспользоваться в том случае, когда вы удаляли разделы и создавали новые. Дело в том, что после таких операций порядок нумерации разделов не соответствует порядку их размещения на диске. Команда позволяет исправить это несоответствие. Команда служит для того, чтобы вывести на экран в шестнадцатиричном виде содержимое секторов, в которых хранится структура разделов диска. С помощью других команд второго уровня можно изменить число цилиндров (команда ), головок (команда ) и секторов (команда ), то есть фактически задать "фальшивую" геометрию диска. Но, если вы задумаете это сделать, вы должны четко понимать, к чему это ведет (смотри предыдущую часть этих заметок). Тем более надо представлять себе последствия таких команд, как - перемещение начала данных в разделе. Я ничего не берусь пояснить или добавить к сказанному, ибо не использовал этих команд применительно к реальным ситуациям. Поэтому я закончу рассказ о команде fdisk и перейду к утилите cfdisk .

2.3. Программа cfdisk

Запуск этой утилиты осуществляется в том же формате, что и других команд этой группы:
# /sbin/fdisk /dev/hda

Указание на устройство можно опустить, если вы хотите изменить разбиение на диске /dev/hda (этот диск выбирается по умолчанию). После запуска программа пытается прочесть таблицу разбиения указанного диска. Если ей это по каким-то причинам не удается, выдается сообщение об ошибке и выполнение программы прекращается. Одной из причин может быть некорректная информация о геометрии диска и в таком случае можно заставить программу работать, если указать ей геометрию диска в строке вызова. Другой путь - запустить программу с опцией -z. В этом случае существующая таблица разбиения диска будет игнорирована.

В отличие от fdisk интерфейс программы cfdisk построен на основе небольшого меню, расположенного в нижней части экрана (рис.1).

Рис.1. Окно программы cfdisk

Переход от одного пункта меню к другому осуществляется клавишей <Тab> или с помощью клавиш перемещения курсора "стрелка вправо/влево". Клавиши "стрелка вверх/вниз" используются для выбора раздела диска в списке, отображаемом в центральной части экрана. Для каждого раздела указаны его наименование, значение флагов, тип раздела (первичный или логический), тип файловой системы в разделе, метка раздела и его размер. В графе Flags (флаги) значение может отсутствовать или же может стоять Boot (что означает загрузочный раздел), или NC («Not Compatible with DOS or OS/2» - не совместим с DOS или OS/2). Последний флаг имеет следующее значение. Некоторые операционные системы (в том числе DOS и OS/2) создают разделы на диске таким образом, что первый раздел диска, а также все логические разделы начинаются со второй дорожки, оставляя первую дорожку цилиндра пустой. Установив флаг NC с помощью команды меню Maximize или горячей клавиши , вы сможете использовать это дисковое пространство. Но учтите, что в работающей системе экономить таким образом дисковое пространство не стоит. Я попробовал получить таким образом пару лишних дорожек, и моя система работала только до первой перезагрузки. А при следующей загрузке появилось сообщение о Kernel Panic. К счастью, после того, как я снял с помощью той же программы этот флажок (для чего, конечно, пришлось загрузиться с LiveCD Knopix), работоспособность системы восстановилась.

Размер раздела в cfdisk может быть показан в мегабайтах (по умолчанию), килобайтах, а также в количестве секторов или цилиндров. Переключение между этими режимами осуществляется командой Units или с помощью горячей клавиши (в последнем случае переключение осуществляется по циклу). Если после указания размера стоит звездочка, это означает, что либо границы раздела не совпадают с границами цилиндров, либо используется неверная геометрия диска. Линукс не использует геометрию в работе с дисками, так что бояться этого не стоит. Но можно и поменять геометрию диска, с которой будет работать cfdisk . Для этого служит горячая клавиша . Однако в руководстве к программе сказано, что делать это может только тот, кто знает, что он делает. А остальным в определении геометрии диска лучше довериться программе cfdisk .

С помощью команды Delete или горячей клавиши можно удалить раздел, выделенный в данный момент в списке разделов.

Если в списке разделов подсветка перемещена на свободное пространство, вид меню изменится (смотри рис.2).


Рис.2. Создание нового раздела с помощью cfdisk

Новый раздел создается с помощью команды New или горячей клавиши . Если тип раздела не определяется однозначно, программа попросит вас его задать. Помните, что можно создать не более 4 первичных разделов и что расширенным может быть только один из них. Поэтому все логические разделы должны быть расположены на диске последовательно и не могут чередоваться с первичными. Затем программа запросит у вас размер создаваемого раздела, причем по умолчанию предложит вам создать его равным всему свободному пространству. Если вас это устраивает, можно просто нажать клавишу . В противном случае можно ввести желаемый размер, причем программа воспринимает размер, заданный в мегабайтах (M), килобайтах (K), цилиндрах (С) и секторах (S). Приведенные в скобках буквы вы должны указать сразу после цифры, задающей размер (M можно не указывать, это значение по умолчанию). Создаваемый раздел можно разместить либо в начале, либо в конце свободного дискового пространства, и cfdisk снова попросит вас принять решение на этот счет.

К чему приведут сделанные вам изменения, можно просмотреть с помощью команды Print (

). При этом возможны три варианта отображения этого результата:

    так называемый raw data формат, то есть шестнадцатеричный вид секторов, которые будут записаны в первые сектора каждого раздела;

    секторный формат (рис.3);

Рис.3. Таблица разделов в секторном формате


Чтобы сделанные изменения вступили в силу, необходимо записать таблицу разбиения на диск, что делается с помощью команды Write или горячей клавиши (причем, именно заглавной W). Программа запросит у вас подтверждения и запишет результат на диск.

Для выхода из программы служит команда Quit или горячая клавиша .

2.4. Программа sfdisk

Будучи запущенной без параметров, эта утилита выдает только двухстраничную справку о параметрах запуска. Но только из этой справки понять, как использовать эту утилиту, трудно. Необходимо заглянуть и на страничку интерактивной подсказки man sfdisk. Из этой справки узнаем, что утилита sfdisk имеет 4 основных варианта использования.

Вариант 1. Будучи запущенной с опцией -s partition она выдает размер раздела в блоках. Параметр partition может указывать на конкретный раздел, например, /dev/hda2, либо на весь диск. В таком случае будет выведен объем диска в блоках. А если оставить только опцию -s и не указывать диск или раздел, то будет выведен объем всех разделов на каждом диске и общий объем диска (см. листинг 9).

Листинг 9.

# /sbin/sfdisk -s /dev/hdb 1251936 # /sbin/sfdisk -s /dev/hda: 39082680 /dev/hda1: 530113 /dev/hda2: 2048287 /dev/hda3: 104422 /dev/hda4: 1 /dev/hda5: 1534176 /dev/hda6: 2048256 /dev/hda7: 12289693 /dev/hda8: 20523006 /dev/hda9: 4536 /dev/hdb: 1251936 /dev/hdb1: 128992 /dev/hdb2: 1121904

Вариант 2. Второй вариант использования утилиты sfdisk служит для получения информации о таблице разделов диска. Для этого следует запустить ее с опцией -l или же с опцей -d . Будучи запущенной с опцией -l

# /sbin/sfdisk -l [опции] /dev/hdb

утилита sfdisk выдает таблицу разделов указанного диска примерно в таком же формате, как и утилита fdisk (примеры приведены в ). Но если запустить программу с дополнительной опцией -x , мы увидим всю цепочку логических разделов, вложенных в расширенный раздел, то есть получим более детальную информацию о разделах (см. листинг 3) .

Опция -d (листинг 10) позволяет получить информацию в другом формате, ориентированном на применение утилиты sfdisk для изменения таблицы разделов (смотри ниже описание четвертого варианта использования sfdisk ).

Листинг 10.

# /sbin/sfdisk -d /dev/hda Warning: extended partition does not start at a cylinder boundary. DOS and Linux will interpret the contents differently. # partition table of /dev/hda unit: sectors /dev/hda1: start= 63, size= 1060227, Id=82 /dev/hda2: start= 1060290, size= 4096575, Id= b, bootable /dev/hda3: start= 5156865, size= 208845, Id=83 /dev/hda4: start= 5365710, size= 72799650, Id= f /dev/hda5: start= 5365773, size= 3068352, Id=83 /dev/hda6: start= 8434188, size= 4096512, Id=83 /dev/hda7: start= 12530763, size= 24579387, Id=83 /dev/hda8: start= 37110213, size= 41046012, Id= c

Вариант 3. Третий вариант запуска sfdisk определяется использованием опции -V , и служит для тестирования таблицы разделов на конкретном устройстве. Эту опцию, вероятно, лучше использовать вместе с опцией -l , тогда вы увидите и таблицу разделов и информацию о некорректностях в этой таблице.

Вариант 4. И, наконец, четвертый способ запуска этой программы предназначен изменения таблицы разделов диска. Man-страница предупреждает, что использовать этот вариант надо очень осторожно, поскольку любая ошибка приведет к потере ваших данных. Поэтому предварительно нужно составить четкий и хорошо продуманный план разбиения диска на разделы, так как программа потребует у вас явным образом задать параметры каждого из запланированных разделов, причем никаких подсказок в ходе этого процесса не выдает. Она просто-напросто выводит последовательно запрос на ввод параметров очередного раздела (листинг 11)

Листинг 11.

# /sbin/sfdisk /dev/hdb /dev/hdb1:
и ожидает от вас ввода параметров раздела в следующем формате <номер начального сетора> <размер(в секторах)> <тип(id)> Обратите внимание на то, что это фактически тот самый формат, который используется программой для вывода таблицы разделов в том случае, когда она была запущена с опцией -d (см. листинг 10). Поэтому, если вы хотите что-то исправить в существующей таблице разделов, имеет смысл вначале воспользоваться опцией -d , чтобы на основе полученных данных составить план переразбиения диска.

Каждая строка ввода приведенного выше вида определяет один раздел. Поля разделяются пробелами. Можно использовать в качестве разделителей запятую или точку с запятой. Числа могут быть десятичными, восьмеричными или шестнадцатиричными. Поля , задающие раздел в формате "цилиндр, головка, сектор", могут отсутствовать (man-страница даже рекомендует не задавать эти значения), поскольку утилита умеет вычислять их самостоятельно. Загрузочный раздел помечается звездочкой в соответствующем поле. Впрочем, если у вас не установлено других систем, кроме Линукс, загрузочный раздел можно не указывать, поскольку Линукс не использует эту метку.

Тип раздела (поле Id) задается шестнадциричным кодом без добавления префикса 0x , или просто одним из следующих символов: S - Linux_Swap (82), L - Linux_Native (83), E - Extended (5) или X - Linux_Extended (85).

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

В четвертом варианте запуска утилита sfdisk требует явного указания устройства, с которым ей предстоит работать. Если же указать ей в качестве цели смонтированное устройство (как чаще всего и случается на работающей системе), получим следующее сообщение:

Листинг 12.

# /sbin/sfdisk /dev/hda Checking that no-one is using this disk right now ... BLKRRPART: Device or resource busy This disk is currently in use - repartitioning is probably a bad idea. Umount all file systems, and swapoff all swap partitions on this disk. Use the --no-reread flag to suppress this check. Use the --force flag to overrule all checks.

Так что лучше всего запускать sfdisk в системе вроде Knoppix, или применять ее ко второму жесткому диску, предварительно размонтировав его (отмечу, что fdisk в аналогичной ситуации запускается без возражений). Впрочем, если вы уверены в правильности своих решений, можно заставить утилиту работать, указав опцию -f ("Делай, что говорят, и без рассуждений!"), или просто отменить проверку того, что диск в данный момент используется, указав опцию --no-reread .

Как видите, утилита sfdisk требует заранее продумать структуру создаваемых на диске разделов. В качестве меры предосторожности можно сохранить на диск существующую таблицу разделов командой

# /sbin/sfdisk /dev/hda -O hda-part.save

В этом случае перед записью измененной таблицы на диск, старое содержимое секторов, определяющих разбиение диска, будет сохранено в файле hda-part.save. Если в процессе внесения изменений вы сделаете какую-то ошибку, можно будет восстановить исходное состояние с помощью команды

# /sbin/sfdisk /dev/hda -I hda-part.save

Заметьте, что использование опций -O и -I не эквивалентно простому сохранению таблицы разделов. Информация, сохраняемая при использовании опции -O , представляет собой двоичную версию вывода, получаемого с помощью опции -d .

С помощью утилиты sfdisk можно изменить только один раздел на диске, используя опцию -N .

Прочитав приведенные выше описания трех основных утилит для разбиения диска, существующих в Линукс, вы сами можете выбрать наиболее подходящую для себя. Отмечу только еще раз, что все эти утилиты не позволяют производить переазбиение диска с сохранением информации на уже существующих разделах. Так что если речь идет о переразбиении диска, вам придется позаботиться о том, чтобы сохранить ваши данные на каком-то резервном носителе. В последнее время появились и утилиты, которые позволяют производить переразбиение диска без потери информации (по крайней мере, так утверждается). И я расскажу о таких утилитах, но чуть позже, после того, как приведу краткую характеристику утилит для создания разделов, входящих в состав нескольких дистрибутивов Linux.

В.А. Костромин - 2. Утилита fdisk и ее ближайшие родственники

Writing /var/www/wiki.dieg/wikionline/darkfiredatawiki/cache/c/c897522fae1a58f8c112fddb1c80f754.xhtml failed

Команды fdisk

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

# 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 для Linux , которая запускается на одном из этапов установки. Кроме этого, в современных дистрибутивах, пользователь может столкнуться со специальными мастерами(wizard), являющимися надстройками fdisk, и позволяющими графически представлять разбиение диска на разделы. Программа fdisk имеет интерфейс командной строки.

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

Fdisk

где имя устройства в 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 вам следует снова загрузить средства инсталляции как и раньше - перед продолжением инсталляции.