Работа с программой Fdisk

Чтобы определить, в каком состоянии находится жесткий диск приобретенного ПК, следует:

1) попытаться загрузиться с жесткого диска, для чего включить компьютер при отсутствии дискеты в приводе А. Если какая-нибудь операционная система загрузилась, то жесткий диск к работе уже подготовлен и можно не прибегать к помощи утилиты FDISK. Если загрузка не прошла, то нужно перейти к п. 2.

2) проверить, сконфигурирован ли жесткий диск, т.е. имеются ли на нем разделы DOS. Для этого нужно загрузиться с загрузочной дискеты, ввести команду FDISK (на дискете должна быть утилита FDISK) и выбрать опцию «Вывод сведений об имеющихся разделах» в главном меню. Если в результате будет сообщено, что разделы отсутствуют, то конфигурирование жесткого диска обязательно. В противном случае имеется возможность реконфигурирования (изменения количества и/или размеров разделов и логических дисков) этой же утилитой. В любом из описанных случаев можно завершить подготовку жесткого диска к работе путем высокоуровневого форматирования всех логических дисков с использованием команды FORMAT (очень часто форматирование дисков осуществляется в дальнейшем в процессе установки операционной системы). Если хотите произвести форматирование перед установкой ОС, то на одной из дискет должна иметься утилита FORMAT. Если же утилита FDISK не запускается, нужно перейти к п. 3.

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

Таким образом, подготовка жесткого диска к работе «с нуля» реализуется тремя этапами: 1) низкоуровневым форматированием жесткого диска; 2) конфигурированием жесткого диска; 3) высокоуровневым форматированием всех созданных на нем логических дисков (этот пункт необязателен). Низкоуровневое форматирование современных жестких дисков производится еще на заводе-изготовителе. Повторное низкоуровневое форматирование таких дисков не требуется, да и является весьма опасной операцией, поскольку может привести к потере служебной информации. Низкоуровневое переформатирование жестких дисков устаревших моделей можно выполнить утилитой CALIBRATE из комплекта NORTON UTILITIES. Эту процедуру полезно производить примерно раз в год, чтобы восстановить секторные метки и одновременно протестировать качество поверхности диска. Необходимость разнесения низкоуровневого и высокоуровневого форматирования жесткого диска во времени объясняется тем, что после низкоуровневого форматирования требуется осуществить его конфигурирование. Алгоритм конфигурирования жесткого диска для работы в среде Windows состоит в следующем:


1) создание основного раздела DOS с логическим диском в нем;

2) создание дополнительного раздела DOS (если необходимо, например, есть потребность установить на компьютере 2 ОС: Windows 98 и Windows NT и работать с различными файловыми системами);

3) формирование логических дисков в дополнительном разделе DOS (если он создан в п.2);

4) установка признака активности основного раздела DOS.

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

Алексей Федорчук

Начнёем с fdisk: именно им больше всего пугали в старые времена начинающих пользователей Linux, предлагая дружественные альтернативы типа Disk Druid. Однако при ближайшем рассмотрении выясняется, что ничего устрашающего в ней нет.

Происхождение fdisk теряется во мраке веков, уходя во времена первых UNIX для PC-архитектуры — насколько я понимаю, раньше необходимости в ней не было, а главными инструментами дисковой разметки были утилиты типа disklabel или bsdlabel . Мне не удалось также выяснить, когда эта утилита появилась в Linux. Могу только предполагать, что на самых ранних стадиях создания утилит обрамления для его ядра — т.н. linux-utils. Ныне fdisk входит в состав пакета linux-utils-ng .

Для начала следует запомнить, что запуск команды fdisk в любом качестве, даже просто для получения информации о диске, возможно только с правами суперпользователя, каковые и надо обеспечить себе любым образом, например, через su или sudo .

Если команду fdisk дать без опций и аргументов, она выведет краткую справку об её использовании:

# fdisk Usage: fdisk [-l] [-b SSZ] [-u] device E.g.: fdisk /dev/hda (for the first IDE disk) or: fdisk /dev/sdc (for the third SCSI disk) or: fdisk /dev/eda (for the first PS/2 ESDI drive) or: fdisk /dev/rd/c0d0 or: fdisk /dev/ida/c0d0 (for RAID devices)

В качестве аргумента команды фигурирует имя файла устройства — физического диска целиком. Поскольку в современных версиях ядра Linux все диски, вне зависимости от их интерфейсов (PATA, SATA, SCSI, SAS, USB) определяются единой подсистемой ATA-SCSI, на самом деле имена эти будут иметь вид /dev/sda , /dev/sdb и так далее.

Смысл опций команды fdisk следующий:

  • l не предписывает выполнения каких-либо действий, а лишь выводит информацию о диске и его разделах, если таковые имеются;
  • b задаёт размер блока — единицы измерения дискового пространства; по умолчанию, без указание этой опции, он равен физическому блоку (512 байт), прочие возможные значения кратны его размеру — 1024, 2048 или 4096 байт;
  • u запускает fdisk , являясь опцией по умолчанию.

Перво-наперво посмотрим на информационную функцию fdisk , для чего запустим её следующим образом:

# fdisk -l /dev/sd?

Ответом будет вывод примерно такого вида:

Диск /dev/sda: 160.0 ГБ, 160041885696 байт 255 heads, 63 sectors/track, 19457 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Disk identifier: 0x0008e008 Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 1 14 112423+ 83 Linux /dev/sda2 15 15680 125837145 5 Расширенный /dev/sda5 15 2626 20980858+ 83 Linux /dev/sda6 2627 4585 15735636 83 Linux

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

Для каких-либо манипуляций с дисковыми разделами команду fdisk следует запустить в интерактивном режиме:

# fdisk /dev/sdb

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

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

Так, команда p выведет текущий список дисковых разделов с указанием их типа и размера. Далее, разделы можно создавать (командой n ) или удалять (командой d ), однако до команды записи изменений (w ) никаких необратимых действий, могущих разрушить ранее существовавшую разметку (и, соответственно, файловые системы и данные, к ней привязанные), не последует: неудачно созданные разделы можно удалить и на их месте создать новые. И в любой момент командой q можно без всяких последствий выйти из программы.

При создании раздела средствами fdisk сначала определяется, будет он первичным (primary) или расширенным (extended). Рассмотрим сначала первый случай. При нем далее просто указывается номер раздела (от 1 до 4). В этих пределах номер может быть любым — можно сначала создать раздел 2, а потом 1, или даже весь диск отвести под раздел 4. Номер раздела останется на века: именно он будет идентифицировать файл устройства, соответствующий созданному разделу (например, /dev/sda2 , или /dev/sdb1).

Далее задается начальный цилиндр создаваемого раздела (по умолчанию — первый свободный, для пустого диска — просто первый). Однако никто не мешает указать любой другой цилиндр в качестве стартового (на неразбитом пространстве, разумеется). А потом — конечный цилиндр (по умолчанию — последний физический на неразбитом дисковом пространстве), или просто размер раздела в мегабайтах, например, +300M (и +, и M — обязательны, иначе объем диска окажется весьма странным). При задании размера в единицах, отличных от цилиндров, он всегда будет округляться (по обычным правилам округления) до ближайшего числа, кратного целому количеству последних. Так что не следует удивляться, если вместо искомого раздела в 20 Мбайт возникнет 16-мегабайтный, а вместо 22-мегабайтного — раздел в 24 Мбайт.

При создании расширенного раздела сначала все происходит точно также — задание номера (очевидно, что в том же диапазоне 1-4), указание начального цилиндра и конечного (или — объема в мегабайтах). Однако это еще полдела, нужно поделить расширенный раздел на разделы логические. И потому при следующей команде на создание раздела нам будет предложен уже выбор между первичным (если число последних еще не исчерпано) и логическим (ведь второй extended-раздел средствами fdisk создать нельзя):

Command (m for help): n Command action l logical (5 or over) p primary partition (1-4)

Для каждого вновь создаваемого средствами fdisk раздела (первичного или логического) по умолчанию устанавливается идентификатор типа файловой системы Linux native (83 в шестнадцатеричном исчислении). Расширенный же раздел также автоматически получает правильный идентификатор своего типа — 5. Однако типы эти не есть нечто неизменное. Более того, по крайней мере в одном случае, при создании раздела подкачки, изменение типа раздела — необходимость. Это потребуется также и для использования таких технологий, как Software RAID или LVM, о которых будет говориться позднее.

Делается это командой t , после чего запрашивается номер раздела, тип которого должен быть изменен, а затем — идентификатор желаемого типа. Полный список поддерживаемых типов файловых систем (и их идентификаторов) можно вывести командой l . Напомню, что идентификатор типа файловой системы раздела — отнюдь не файловая система, которая на нем размещается. И на разделе Linux native, как это подчеркивает название, можно создать любую файловую систему из числа тех, которые поддерживаются Linux в качестве родных (ext2/ext3, ext4, XFS, ReiserFS, JFS, btrfs, NILFS2).

Теоретически fdisk позволяет присвоить созданному разделу идентификатор типа почти любой из мыслимых файловых систем — от FAT12 до Free-, Open- и NetBSD. Однако сами по себе файловые системы средствами fdisk не создаются, и потому для разделов чуждого типа в дальнейшем потребуется их форматирование (в терминах DOS): либо в родной среде (например, DOS-командой FORMAT для FAT-раздела), либо специальными командами типа mkfs, о которых будет говориться в следующей главе.

Сказанного, надеюсь, достаточно, чтобы осознать великое достоинство fdisk — исключительную гибкость: можно определить раздел строго определённого размера и точно позиционировать его на диске. Или зарезервировать в любом месте накопителя неразбитое пространство, с двух сторон окружённое созданными разделами.

За перевод этой части благодарим . Продолжение следует...

Об авторах

Daniel Robbins

Дэниэль Роббинс - основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo , написал множество технических статей для IBM developerWorks , Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure

  • блочные устройства
  • Добавить метки

    
    Top