Глава 12. Управление дисковым хранилищем

Введение в различные методы........

12.1. Стандартные разделы в parted

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

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

Чтобы использовать утилиту parted, вы должны установить пакет parted. Чтобы запустить parted, введите в приглашении оболочки от имени root команду parted /dev/sda, где /dev/sda — имя устройства, которое вы хотите настроить. На экране появляется приглашение (parted). Введите help, чтобы получить список доступных команд.

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

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

В таблице 12-1 приведён список часто используемых команд parted. В следующем далее разделе некоторые из них рассматривают подробнее.

КомандаОписание
check minor-numВыполняет простую проверку файловой системы
cp from toКопирует файловую систему из одного раздела в другой, вмето from и to указываются младшие номера разделов
helpВыводит список доступных команд
mklabel labelНазначает метку диска для раздела
mkfs minor-num file-system-typeСоздаёт файловую систему типа file-system-type
mkpart part-type fs-type start-mb end-mbДелает раздел, не создавая новую файловую систему
mkpartfs part-type fs-type start-mb end-mbДелает раздел и создаёт указанную файловую систему
move minor-num start-mb end-mbПеремещает раздел
name minor-num nameНазначает имя раздела (только для меток диска Mac и PC98)
printВыводит таблицу разделов
quitЗавершает работу parted
rescue start-mb end-mbВосстанавливает потерянный раздел с start-mb на end-mb
resize minor-num start-mb end-mbИзменяет размер раздела с start-mb на end-mb
rm minor-numУдаляет раздел
select deviceВыбирает другое устройство для настройки
set minor-num flag stateУстанавливает флаг для раздела; state может иметь значение «on» или «off»

Таблица 12-1. Команды parted

12.1.1. Просмотр таблицы разделов

Запустив parted, введите следующую команду, чтобы просмотреть таблицу разбиения разделов:

print

Вы увидите подобную таблицу:

Disk geometry for /dev/sda: 0.000-8678.789 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031    101.975  primary   ext3        boot
2        101.975   5098.754  primary   ext3
3       5098.755   6361.677  primary   linux-swap
4       6361.677   8675.727  extended
5       6361.708   7357.895  logical   ext3


Disk geometry for /dev/hda: 0.000-9765.492 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031    101.975  primary   ext3        boot
2        101.975    611.850  primary   linux-swap  
3        611.851    760.891  primary   ext3        
4        760.891   9758.232  extended              lba
5        760.922   9758.232  logical   ext3        

В первой строке показывается размер диска, во второй — тип метки диска, а за ними выводится таблица разделов.

В столбце Minor этой таблицы показан номер раздела. Например, разделу с младшим номером 1 соответствует /dev/sda1. Значения Start (Начало) и End (Конец) задаются в мегабайтах. В столбце Type(Тип) может быть указано primary(основной), extended (расширенный) или logical(логический). В столбце Filesystem указывается тип файловой системы, это может быть ext2, ext3, fat16, fat32, hfs, jfs, linux-swap, ntfs, reiserfs, hp-ufs, sun-ufs или xfs. В столбце Flags показываются флаги, установленные для этого раздела. Это может быть boot (загрузочный), root (загрузочный), swap (подкачка), hidden (скрытый), raid, lvm или lba.

В данном примере младший номер 1 указывает на файловую систему /boot/, младший номер 2 — на корневую файловую систему (/), номер 3 — на раздел подкачки, а номер 5 — на файловую систему /home/.

ПодсказкаПодсказка
 

Чтобы выбрать другое устройство, не запуская parted ещё раз, воспользуйтесь командой select, в параметрах которой укажите имя устройства, например, /dev/sda. Сделав это, вы сможете просмотреть или изменить таблицу разделов другого устройства.

12.1.2. Создание раздела

ПредупреждениеПредупреждение
 

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

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

Запустите parted как показано ниже, где /dev/sda — устройство, на котором вы хотите создать раздел:

parted /dev/sda

Просмотрите текущую таблицу разделов, чтобы определить достаточно ли свободного места:

print

Если свободного места не хватает, вы можете изменить размер существующего раздела. Подробнее об этом рассказывается в разделе разделе 12.1.4 Изменение размера раздела.

12.1.2.1. Создание раздела

Просмотрите таблицу разделов и определите точки начала и конца нового раздела, а также его тип. На одном устройстве можно создать только четыре основных раздела (без расширенных). Если вам нужно больше четырёх разделов, вы можете создать три основных раздела, один расширенный, и в нём множество логических разделов. За общей информацией о разделах диска обратитесь к приложению Знакомство с дисковыми разделами в Руководстве по установке Red Hat Enterprise Linux.

Например, чтобы создать основной раздел с файловой системой ext3, расположенный на жёстком диске в пределах от 1024 до 2048 Мбайт, введите следующую команду:

mkpart primary ext3 1024 2048

ПодсказкаПодсказка
 

Если вы примените вместо неё команду mkpartfs, после создания раздела в нём будет создана файловая система. Однако parted не поддерживает создание файловой системы ext3. Таким образом, если вы хотите создать файловую систему ext3, воспользуйтесь mkpart и создайте файловую систему с помощью mkfs, как было описано ранее. Утилита mkpartfs работает для файловых систем, имеющих тип linux-swap.

Изменения вступают в силу сразу после нажатия клавиши [Enter], поэтому проверьте команду, прежде чем её выполнять.

Создав раздел, воспользуйтесь командой print, чтобы убедиться в том, что он появился в таблице разбиения с правильным типом раздела, типом файловой системы и размером. Также запомните младший номер нового размера, чтобы вы могли пометить его. Кроме этого, следует просмотреть результат команды

cat /proc/partitions

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

12.1.2.2. Форматирование раздела

В созданном разделе всё ещё нет файловой системы. Создайте её:

/sbin/mkfs -t ext3 /dev/sda6

ПредупреждениеПредупреждение
 

Форматирование раздела навсегда удаляет данные, существовавшие в этом разделе.

12.1.2.3. Назначение метки раздела

Затем назначьте разделу метку. Например, если новый раздел называется /dev/sda6 и вы хотите пометить его как /work, выполните:

e2label /dev/sda6 /work

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

12.1.2.4. Создание точки монтирования

Создайте точку монтирования, выполнив от имени root:

mkdir /work

12.1.2.5. Добавление в /etc/fstab

Внесите новый раздел в файл /etc/fstab, отредактировав этот файл от имени root. Новая строка должна выглядеть примерно так:

LABEL=/work           /work                 ext3    defaults        1 2

Первый столбец должен содержать указание LABEL=, за которым вы указываете метку, назначенную разделу. Второй столбец должен содержать точку монтирования нового раздела, а в следующем столбце должен указываться тип файловоуй системы (например, ext3 или swap). Если вам нужна дополнительная информация о синтаксисе, обратитесь к странице руководства, выполнив man fstab.

Если в четвёртом столбце указано слово defaults («по умолчанию»), раздел будет монтироваться при загрузке. Чтобы смонтировать раздел без перезагрузки, введите от имени root следующую команду:

mount /work

12.1.3. Удаление раздела

ПредупреждениеПредупреждение
 

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

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

Запустите parted как показано ниже, где /dev/sda — устройство, на котором вы хотите удалить раздел:

parted /dev/sda

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

print

Удалите раздел с помощью команды rm. Например, удалить раздел номер 3 можно так:

rm 3    

Изменения вступают в силу сразу после нажатия клавиши [Enter], поэтому проверьте команду, прежде чем её выполнять.

Удалив раздел, выполните команду print и убедитесь в том, что он удалён из таблицы разделов. Кроме этого, следует просмотреть результат команды

cat /proc/interrupts

, чтобы убедиться в том, что ядро увидело, что раздел удалён.

Последнее, что нужно сделать — удалить запись о нём из файла /etc/fstab. Найдите строку, в которой описывается удалённый раздел и удалите её из файла.

12.1.4. Изменение размера раздела

ПредупреждениеПредупреждение
 

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

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

Запустите parted как показано ниже, где /dev/sda — устройство, на котором вы хотите изменить размер раздела:

parted /dev/sda

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

print

ПредупреждениеПредупреждение
 

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

Чтобы изменить размер раздела, воспользуйтесь командой resize, в аргументах которой укажите младший номер раздела, а также точки начала и конца раздела (в мегабайтах). Например:

resize 3 1024 2048

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

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