Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Секционирование жесткого диска

12 февр. 2014

При установке почти во всех дистрибутивах Linux предоставляются простые в обслуживании инструменты для секционирования жесткого диска. Но лишь в немногих дистрибутивах эти инструменты можно использовать не только при установке, но и при текущей работе — например, в SUSE таким инструментом является модуль YaST Система ► Разметка диска. Кроме того, если вы хотите внести изменения в схему разделов после установки, вам на выбор предлагается целый спектр инструментов для секционирования: к важнейшим из них относятся текстовые команды fdisk и parted, а также графическая программа gparted.

ВНИМАНИЕ



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

Для запуска Windows Vista или более новых версий Windows требуется, чтобы раздел начинался с сектора 2048, таким образом, первый мегабайт жесткого диска должен быть свободен для использования основной загрузочной записи (MBR) и загрузчика операционной системы (раньше стартовым пунктом и для Windows, и для Linux был сектор 64).

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

Основные правила



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

Во время работы нельзя вносить изменения в системный раздел. Если вы, к примеру, хотите увеличить его, лучше всего запустить компьютер с помощью «живого диска». Для этой цели особенно хороши мини-дистрибутивы, оптимизированные под секционирование жестких дисков, например GParted-Live-CD, Parted Magic и SystemRescueCd.

В принципе можно изменить размер только последнего раздела жесткого диска. Разделы нельзя «менять местами».

Если вы изменяете размер последнего раздела на диске, то размер содержащейся в нем файловой системы не изменяется автоматически! Для этого нужны дополнительные команды, которые отличаются в зависимости от типа файловой системы.

На одном жестком диске может быть не более 15 разделов. Один из них является расширенным и может принимать в себя другие разделы, но не данные или файловую систему напрямую. Таким образом, максимальное количество разделов уменьшается до 3 основных и11 логических.

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

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

Сектора, дорожки, цилиндры и блоки



Исторически сложилось так, что для измерения жестких дисков применяются единицы со следующими названиями.
Сектор (512 байт) — мельчайшей единицей жесткого диска является сектор, состоящий из 512 байт (предполагается, что в будущем эта единица может быть увеличена до 4096 байт, то есть до 4 Кбайт).

Дорожка (32 256 байт) — на всех современных жестких дисках «дорожка» состоит из 63 секторов, то есть из 63* 512 =32 256 байт. Первоначально по количеству секторов можно было узнать, сколько их на одной окружности жесткого диска. Сегодня это число является условным. Максимально допустимое значение — 63, так как уже в течение многих лет на хранение количества секторов отводится всего 6 бит.

Цилиндр (8 225 280 байт, около 7,8 Мбайт) — размер цилиндра равен произведению размера дорожки на количество читающих головок. При этом самым большим жестким дискам, используемым в Linux, присваивается условное количество головок, равное 255, таким образом, размер цилиндра оказывается равен 255 * 32 256 = 8 225 280 байт. Опять же, число 255 является максимально возможным, так как для поля предусмотрено всего 8 бит.

Чтобы узнать количество цилиндров, необходимо разделить мощность жесткого диска на размер цилиндра. Как правило, на жестком диске размером 1 Тбайт имеется 1 ООО ООО ООО ООО = 212 байт места, что составляет около 121 600 цилиндров. Производители жестких дисков охотнее считают в десятичной системе, а не в двоичной, так как мощности кажутся «больше». На самом деле, если считать в двоичной системе, то в одном терабайте будет 240 = 1 099 511 627 776 байт, то есть примерно на10% «больше», чем в десятичном терабайте!

Раньше эти термины отражали физическую архитектуру жесткого диска. Нынешняя архитектура уже давно не такая — даже у традиционных жестких дисков, не говоря уже о SSD. Так или иначе в некоторых программах для секционирования, в частности в fdisk, расчеты по-прежнему проводятся в этих единицах. Разумеется, при работе с Linux границы цилиндров не имеют никакого значения; раздел может начинаться прямо в центре цилиндра (даже условного)!

Что такое блок? Будьте внимательны, когда речь заходит о блоках. Обычно при этом имеется в виду размер блока, предусмотренный в ядре Linux, — 1024 байт (в частности, при работе с командами df, du и fdisk). В файловых системах для внутренней организации данных предусматриваются значительно более крупные блоки: обычно используется величина в 4096 байт = 4 Кбайта либо кратная ей величина.

Настройка производительности SSD. По причинам, связанным с производительностью, соответствие границ разделов и цилиндров не всегда оптимально, как минимум в тех случаях, когда условные цилиндры состоят из 63 * 255 секторов, как в Linux. Windows Vista и более новые версии системы Windows работают с цилиндрами, имеющими размер 63 * 240 секторов, то есть размер цилиндра кратен 4 Кбайтам. Если в будущем появятся жесткие диски с секторами размером 4 Кбайта, то при использовании такого расчета можно будет гарантировать, что каждый блок файловой системы будет соответствовать сектору жесткого диска. Для SSD, вероятно, было бы еще удобнее работать с единицами по 56 * 226 секторов, чтобы размер цилиндра был кратен 128 Кбайт.

В любом случае сомнительно, что код ядра будет откорректирован таким образом и достигнутое в результате увеличение производительности оправдает затраченные усилия. Базовая информация по таким расчетам, напоминающим современную магию чисел, дается на сайте tinyurl.com/c74an4=http://thunk.org/ tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/.

Корректировка размера расширенного раздела



Инструменты для секционирования, описанные в предыдущем разделе, а также вспомогательные инструменты, применяемые при установке Linux, отличаются в одном принципиальном отношении. Некоторые инструменты оставляют раздел таким же по размеру, каким он был при создании. Эти программы мы отнесем к типу 1. Таковы, например, fdisk, parted, программы установки Fedora, Red Hat и SUSE, а также программы секционирования для Windows.

Другие программы, напротив, автоматически корректируют размер увеличенного раздела таким образом, чтобы все логические разделы могли разместиться именно в этом физическом разделе. Таковы программы установки Debian, Mandriva и Ubuntu.

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

Что делать: еще раз запустите программу типа 2 и измените существующее разбиение на разделы. Кроме того, с помощью инструмента секционирования второго типа можно создать достаточно большой логический раздел-заполнитель. Таким образом, расширенный раздел автоматически увеличится. Затем вы удалите раздел-заполнитель программой секционирования первого типа и сможете воспользоваться свободным местом в расширенном разделе.

Программа fdisk



Это одна из самых старых программ Linux, предназначенных для секционирования. Ее пользовательский интерфейс несколько старомоден, однако программа отличается высоким качеством и по достоинству оценена теми, кто не первый год работает с Linux.

Запуск



Программа fdisk всегда может обрабатывать только один жесткий диск — тот, чье название устройства было задано при запуске программы (например, /dev/sdc для третьего жесткого диска SATA/SCSI). Если вместо этого сообщить программе параметр -l, то fdisk выдаст список всех разделов всех жестких дисков. После запуска нажатие клавиши М (menu) дает краткий обзор команд, которыми можно воспользоваться. Нажатие Р (print) выдает список разделов, которые в настоящий момент имеются на выбранном жестком диске.

Если жесткий диск состоит более чем из 1024 цилиндров (а таковы все современные жесткие диски), то fdisk выдает предупреждение. Оно касается только загрузочного раздела Linux и имеет значение лишь в том случае, если вы пользуетесь древнейшей материнской платой (дата BIOS до 1998 года) или применяете версию LILO из каменного века. Иными словами, такое предупреждение можно игнорировать практически в100% случаев.

Если вы хотите, чтобы fdisk считала не в цилиндрах, а в секторах, откорректируйте единицу измерения нажатием клавиши U.

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



С помощью клавиши N (new) создаются новые разделы жесткого диска. При этом можно создать максимум четыре основных раздела. Если требуется управлять более чем четырьмя основными разделами, то один из них должен быть «расширенным». Тогда в области, занимаемой расширенным разделом, можно создать до 11 логических разделов. Если создаваемые разделы жесткого диска должны относиться к различным типам (основные, расширенные или логические), команда fdisk выдает дополнительный запрос о типе раздела.

Когда будет определено, какого типа должен быть новый раздел, программа спросит, с какого места он должен начинаться (как правило, с первого свободного цилиндра) и какого размера должен быть (то есть в каком цилиндре он заканчивается). Можно указывать размер и более удобным способом — в виде +nM или +nG (то есть +50G означает, что размер раздела должен составлять 50 Гбайт).

Определив новый раздел, можно отобразить всю таблицу разбиения на разделы с помощью команды P. Кроме того, можно определять новые разделы и удалять разделы, определенные ранее, и т. д.

Идентификационные номера разделов



Новые разделы, создаваемые fdisk, всегда относятся к типу Linux native (идентификационный номер 83). Если вам требуется раздел другого типа, нужно изменить номер нового раздела, нажав Т (type). Чаще всего используются разделы следующих типов (идентификационные номера указаны в шестнадцатеричной системе): О 82— раздел подкачки Linux;

83 — файловая система Linux (любая файловая система Linux — ext, reiser, xfs и т. д.);

8е — раздел Linux LVM;

Fd — раздел Linux RAID.

Чтобы получить список всех доступных ID-номеров, выполните команду L. В полученном списке также будут указаны коды для разнообразных других операционных систем (MS DOS, Windows, UNIX и т. д.).

Сохранение сделанных изменений



Программа fdisk выполняет все изменения только при нажатии клавиши W (write). Перед этим можно проверить нажатием V (verify), верна ли вся внутрисистемная информация о диске. Это делается в качестве перестраховки. Обычно в ответ на такую команду система просто выдает количество секторов по 512 байт, которые не относятся ни к основным, ни к логическим разделам диска (то есть являются неиспользованными).

Если вы начинаете запутываться, то в любой момент можете завершить работу fdisk нажатием клавиши Q (quit) или сочетания Ctrl+C — тогда ваш жесткий диск останется без изменений.

Увеличение раздела



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

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

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

Программа parted



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

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

Запуск



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

root# parted /dev/sdb

(parted) p

Диск /dev/sdb: 500GB

Размер сектора (логический/физический): 512B/512B Таблица разделов диска: msdos

Number Start End Size Type File system Flags

1 32,3kB 1003MB 1003MB primary ext3 boot, raid

2 1003MB 3002MB 1999MB primary linux-swap raid

3 3002MB 500GB 497GB primary raid

Обслуживание


С помощью команд mkpart и rm можно соответственно создавать и удалять разделы. Первая команда создает новый раздел и помещает в нем желаемую файловую систему, если parted найдет нужные для этого программы и библиотеки (выбор зависит от конкретной файловой системы).

Вам потребуется сообщить командам, создающим разделы дисков, координаты начала и конца этих разделов. При этом используется сокращение GB — гигабайт. Программа parted обеспечивает следование разделов точно «друг за другом», без зазоров. Если вы создаете логический раздел, то перед этим необходимо соответствующим образом увеличить расширенный раздел. Команды, изменяющие размеры разделов, ожидают в качестве параметра так называемый младший номер устройства, то есть, например, 7 для /dev/sda7.

Если вы собираетесь использовать новый раздел в качестве раздела подкачки либо части системы RAID или LVM, то нужно соответствующим образом настроить тип раздела. Необходимая команда выглядит так: set номер^аздела атрибут. В том числе могут применяться boot, swap, lvm и raid.

Пример



С помощью следующих команд на жестком диске размером 500 Гбайт создаются три раздела RAID. Загрузочный раздел имеет размер 1 Гбайт, раздел подкачки — 2 Гбайта. Третий раздел занимает все оставшееся место. Поскольку в качестве конечной позиции указано -50МВ, последние 50 Мбайт на диске остаются свободными (такой резерв нужен на тот случай, если придется выполнить точно такое же секционирование на другом диске, номинальный размер которого также составляет 500 Гбайт. Даже конструктивно идентичные жесткие диски обычно содержат неодинаковое количество блоков данных, что это связано с внутренним управлением ошибками).

root# parted /dev/sdb (parted) print Диск /dev/sdb: 500GB


Размер сектора (логический/физический): 512B/512B

Таблица разделов диска: msdos

Number Start End Size Type File system Flags

(parted) mkpart primary ext3 0 1GB

(parted) mkpart primary ext3 1GB 3GB

(parted) mkpart primary ext3 3GB -50MB

(parted) set 1 raid on

(parted) set 2 raid on

(parted) set 3 raid on

(parted) print

Диск /dev/sdb: 500GB

Размер сектора (логический/физический): 512B/512B Таблица разделов диска: msdos

Number Start End Size Type File system Flags

1 32,3kB 1003MB 1003MB primary ext3 raid

2 1003MB 3002MB 1999MB primary ext3 raid

3 3002MB 500GB 497GB primary ext3 raid (parted) quit

Программа sfdisk



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

Пример


В следующем примере команда sfdisk-d /dev/sda узнает список разбиения первого диска, который может прочитать программа sfdisk. Символ | передает этот список второй команде sfdisk, которая соответствующим образом форматирует второй жесткий диск:

root# sfdisk -d /dev/sda | sfdisk /dev/sdb


Когда я испытывал эту команду, sfdisk иногда жаловалась, что второй жесткий диск уже используется. Убедившись, что это не так (в том числе выполнив dmesg | grep sdb), я применил со второй командой sfdisk параметр — -force. Потребовалось дополнительно перезапустить компьютер, чтобы ядро восприняло новое секционирование второго диска:

root# sfdisk -d /dev/sda | sfdisk --force /dev/sdb root# reboot


Параметр — force следует применять и в тех случаях, когда sfdisk сообщает, что раздел заканчивается не точно на границе цилиндра. В Linux и в большинстве других операционных систем границы цилиндров на жестком диске определяются произвольно и не влияют на работу системы.

Программа gparted



Для parted существует графический пользовательский интерфейс gparted. Эта программа может изменять только те разделы диска, которые в данный момент не используются, то есть не подключены к дереву каталогов. Все используемые разделы помечаются в программе символом замка, и кнопки для их обработки отключены. Расширенный раздел остается закрыт как минимум до тех пор, пока активен как минимум один логический раздел, расположенный внутри него. На практике это означает, что зачастую приходится использовать gparted вместе с «живым диском» Linux, иначе почти все важные операции будут заблокированы.

В отличие от parted, программа gparted запоминает все заданные действия, но сначала не выполняет их. Команда меню Правка ► Отменить отменяет выбранные операции, а Правка ► Принять наконец выполняет их.

К сожалению, gparted не может создавать разделы LVM или RAID. Соответствующие флажки отображаются, но с ними нельзя ничего сделать.


В SUSE в качестве альтернативы gparted можно использовать модуль YaST Система ► Разметка диска. В большинстве других дистрибутивов подобные инструменты отсутствуют, что тем более удивительно, так как в установочной программе предусмотрены соответствующие функции.
Читайте так же:
Типы файловых систем Linux

Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать