Руководства, Инструкции, Бланки

Gnu Parted Инструкция img-1

Gnu Parted Инструкция

Рейтинг: 4.9/5.0 (1646 проголосовавших)

Категория: Инструкции

Описание

Gnu parted инструкция

Parted

GNU Parted (от слов PARTition (раздел ) и EDitor (редактор )) — это свободный редактор разделов, используемый для их создания и уничтожения. Он полезен для выделения места под новые операционные системы, перераспределения дискового пространства, копирования данных между жёсткими дисками и создания образов дисков. Он написан Эндрю Клаузеном и Леннертом Буйтенхеком и состоит из библиотеки, libparted. и консольной оболочки, parted. выполняющей также роль примера реализации.

  • Добавлена команда resizepart для изменения размера разделов. Работает даже для смонтированных разделов.
  • Добавлена поддержка разделов EAV DASD — ECKD с более чем 65520 цилиндров.
  • Добавлена поддержка неявных разделов FBA DASD с единым неизменным разделом.
  • Добавлена поддержка распознавания btrfs — теперь она отображается в колонке «file system» вывода parted.
  • Добавлен новый флаг типа раздела esp. который выставляет тип 0xEF для MS-DOS. Также отвечает за загрузку на GPT, выставляя UEFI ESP GUID.
  • Добавлен новый флаг типа раздела irst. использующийся для Intel Rapid Start Technology. На разделах MS-DOS он выставляет тип 0x84, а на GPT выставляет GUID D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593.
  • Теперь можно игнорировать ошибки о разделах, пересекающихся с другими или выходящих за пределы диска. Это позволяет использовать parted для исправления проблем.
  • Добавлена поддержка флага prep на GPT для выбора типа загрузочного раздела PowerPC Reference Platform.
  • libparted:
    • исправлены таблицы разделов MAC при размере секторов более 512 байт.
    • ped_partition_get_path() возвращал «/dev/foo1» вместо «/dev/foo» для петлевых разметок.
    • петлевая разметка представляет неразмеченный диск, однако создаёт раздел-пустышку для представления целого диска. Этот раздел загружался прямо в ядро. Не надо так делать.
    • петлевая разметка больше не очищается, если вы не создали раздел и не вернули ошибку синхронизации.
    • удаляются все старые разделы, даже если новая разметка столько не поддерживает.
    • загрузочные сектора fat и ntfs ошибочно определялись как таблицы разделов dos, вместо их обработки как петлевой разметки.
    • ранее, если вы игнорировали предупреждение о том, что gpt считает, что размер диска меньше, чем на нём содержимого, то последующие предупреждения для других дисков подавлялись. Теперь parted отображает предупреждения для каждого диска отдельно.
    • символическая ссылка /dev/md может изменяться после того, как libparted её разыменовал, вместо банального использования символической ссылки, указанной вызвавшим, как это делается с /dev/mapper
    • на multipath-системах новые разделы иногда не создавались с ошибкой «device-mapper: create ioctl failed: Device or resource busy» до перезагрузки системы. Добавлены вызовы dm_udev_wait для синхронизации parted c udev.
    • исправлена обработка окончания диска на GPT. Ранее, если резервная копия GPT была не в конце диска и эта ошибка игнорировалась, parted всё равно перемещал её в конец. Теперь при игнорировании этой ошибки резервная копия будет оставаться на месте.
    • обработка начала логических разделов непосредственно после EBR. Создание логического раздела со следующего после EBR сектора вынуждало parted жаловаться, что он не сможет уведомить ядро об изменениях, но после перезагрузки всё было в порядке. Теперь parted корректно уведомляет ядро об изменениях, только выставляет длину расширенного раздела в 1 сектор вместо двух, что вызывает его пересечение с логическим разделом.
    • исправлено падение при манипуляциях с разделами на dmraid-дисках, на которых используются другие разделы.
    • mac: таблица разделов MAC могла иметь размер блока больше, чем уведомляло ядро. При чтении такой таблицы разделов libparted спрашивает, использовать ли больший размер блока. При утвердительном ответе он читал в буфер количество байт больше его длины, вызывая переполнение.
    • gpt: исправлена работа gpt_get_max_supported_partition_count на little-endian системах
    • диски без pMBR обрабатывались как диски с ms-dos-разметкой, даже если у них были верные GPT-заголовки.
  • partprobe
    • при вызове для диска, ставшего петлевой разметкой, удаляются все разделы, оставшиеся от предыдущей разметки.
    • partprobe теперь сообщает ядру забыть обо всех разделах на устройстве, на котором нет распознаваемой таблицы разделов.
  • parted
    • исправлена обработка EOF и Ctrl+C. parted отклонял выход при нажатии Ctrl+C и уходил в бесконечный цикл, запрашивая продолжения ввода, когда получал EOF со stdin.
  • Исправлено определение файловых систем на секторах размером не 512 байт.
  • Исправлены коды синхронизации linux-разделов для сброса разделов > 16.
  • Загрузочный сектор FAT не отклоняется как битый, если у него строки system ID.
  • Исправлен текст справки для disk_, теперь показываются флаги диска вместо флагов раздела.
  • Исправлена обработка не-ASCII символов в названиях разделов на GTP
  • Если размер диска был стократно чётной степенью двойки, размеры, выраженные в процентах, вызывали точное правило размещения и не округлялись до ближайшей половины процента.
  • Избегается создание событий udev add/remove для всех неизменённых разделов при записи новой таблицы разделов.
  • Исправлена проблема когерентности кэшей путём сброса разделов — блочных устройств. Это было по ошибке отключено в parted 2.0 и приводило к тому, что parted иногда идентифицировал предыдущие типы ФС после вызова mkfs для форматирования раздела в новый тип.
  • dos: диапазон случайных сигнатур MBR искусственно ограничивался до 0..999999, и 0 в этот диапазон включён случайно. Теперь используется полный 32-разрядный диапазон, но без 0.

Изменения в поведении:

  • При попытках манипуляции со смонтированным разделом, parted вместо ошибки теперь выбрасывает предупреждение, которое можно проигнорировать.
  • При создании петлевой разметки автоматически создаётся раздел размером с весь диск.
  • parted -l больше не выводит устройства Device Mapper, кроме целых dmraid-дисков.
  • Добавлен Linux-специфичный код GUID типа раздела (0FC63DAF-8483-4772-8E79-3D69D8477DE4) для файловых систем Linux на GPT-дисках. Этот код типа теперь выставлен как код по умолчанию для новых разделов, содержащих файловые системы Linux.
  • Добавлен новый флаг msftdata. идентифицирующий разделы, содержащие ФС NTFS или FAT на GPT-дисках. Этот флаг соответствует коду типа GPT EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 («Microsoft Basic Data»). Поскольку разделы файловых систем Linux изначально использовали данный код типа, этот флаг можно опционально выставить для разделов Linux, чтобы обеспечить соответствие кода предыдущим конфигурациям на случай проблем с новым кодом в каких-либо утилитах. Имейте в виду, что этот флаг нельзя убрать с разделов NTFS и FAT из parted кроме как установив конкурирующий флаг, например, boot (который устанавливает код типа, используемый EFI System Partitions) или msftres (устанавливающий код «Microsoft Reserved»).

Если нет нужного публичного ключа — можете импортировать его: gpg --keyserver keys.gnupg.net --recv-keys 8E45A0223348AAF0 .

Релиз собран с Autoconf 2.69, Automake 1.14.1, Gettext 0.18.3, Gnulib v0.1-139-g98ca2c0 и Gperf 3.0.4.ttt

Другие статьи

Linux по-русски

Создание раздела диска размером более 2 Тб в Линуксе

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

Те, кто пользуется Линуксом на десктопах, обычно имеют относительно небольшие винчестеры и разделы, в то время как для сервера необходимы большие разделы. Однако вы не сможете создать 4-х терабайтный раздел на своем RAID массиве, используя штатные инструменты Линукс. Программа fdisk не позволит вам создать раздел размером более 2 Тб.

Разрешить проблему поможет команда GNU parted, использующая GPT (GUID [Globaly Unique Identifier] Partition Table - Глобально Уникальный Идентификатор Таблицы Разделов). Она поддерживает Intel EFI/GPT таблицы разделов. GPT является стандартом для размещения разделов на физическом жестком диске. Она является частью Расширяемого Микропрограммного Интерфейса (Extensible Firmware Interface) - EFI - стандарта, предложенного Intel на смену устаревшего PC BIOS, одного из немногих сохранившихся реликтов первозданной IBM PC. EFI использует GPT так же, как BIOS использует Master Boot Record (MBR).

На следующей диаграмме приведена схема размещения GUID Partition Table. Каждый логический блок (LBA) имеет размер в 512 байт. LBA-адреса с отрицательными значениями обозначают смещения от конца тома, так что -1 обозначает последний адресуемый блок. (Рисунок заимствован из статьи [2] в Wikipedia )

Поддержка GPT в ядре

Поддержка EFI GUID Partition работает как на 32-битных, так и на 64-битных платформах. Чтобы пользоваться GPT,необходимо включить ее поддержку в ядре; если этого не сделать, то при перезагрузке сервера либо файловая система окажется немонтируемой, либо GPT таблица окажется поврежденной. Redhat Enterprise Linux / CentOS содержит поддержку GPT в ядре по умолчанию. Если же вы используете Debian или Ubuntu Linux, вам придется перекомпилировать ядро.

Установите CONFIG_EFI_PARTITION в значение y. чтобы скомпилировать ядро с поддержкой GPT.
File Systems
Partition Types
[*] Advanced partition selection
[*] EFI GUID Partition support (NEW)
.

Как создать 3 Тб раздел

Один из моих клиентов имеет Raid 5 массив из 7 жестких дисков по 500 GB для хранения большого количества данных. Чтобы создать раздел, запустите в консоли GNU parted следующим образом:

# parted /dev/sdx
Вывод:
GNU Parted 1.8.1
Using /dev/sdx
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
Создаем новый GPT disklabel, то есть таблицу разделов (partition table):
mklabel gpt
Устанавливаем размер раздела ( в гигабайтах):
mkpart primary 0 3001G
Выходим с сохранением изменений:
quit
Форматируем файловую систему:
# mkfs.ext3 /dev/sdx1

Примечание: Замените /dev/sdx настоящими именами вашего диска или RAID или блочного Ethernet устройства, скажем /dev/etherd/e0.0. И не забудьте внести необходимые изменения в /etc/fstab.

Что еще почитать по теме:

1. How Basic Disks and Volumes Work (Немного устаревшие, но доходчиво изложенные основные концепции)

Эта статья еще не оценивалась

Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь .
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют

Монтирование больших жетских дисков

Монтирование больших жетских дисков

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

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

  1. Подключаете диск в винде, кипируете данные куда либо ещё. Отцепляете диск.
  2. Подключаете диск линуксу (любому ) и забиваете диск нулями

где /dev/sdb ваш диск в линуксе, определить букву можно по fdisk -l

  1. Тем же fdisk - ком создаёте раздел, который используете чаще всего (хоть ntfs, хоть ext)
  2. mkfs - создаёте на этом разделе файловую систему.
    И после этого этот диск у вас определится где угодно абсолютно одинаково.
    Не буду влезать объяснениями в дебри проблемы, но лечится именно так. Это самый простой вариант. И вообщем то самый првильный.
    Сам много раз так возвращал винты с того света.
Список тегов
© linuxforum, 2016 Время генерации 0.08381 сек.

Как разбить и отформатировать HDD с помощью GNU Parted

Как разбить и отформатировать HDD с помощью GNU Parted

Сначала нам нужен сам parted. если у нас его еще нет: apt-get install parted

Далее нам нужно знать с каким именно диском мы будем работать. Получить список дисков в системе можно командой parted -l. Результат ее выполнения будет похож примерно на это:

В примере мы видим 2 диска: /dev/sda и /dev/sdb. а также их разделы.

Допустим нам нужно переразбить и отформатировать диск /dev/sdb. Для этого мы делаем следующее:

  1. sudo parted /dev/sdb
  2. (parted) mklabel gpt или (parted) mklabel msdos
  3. (parted) mkpartfs primary ext4 0% 100%
  4. (parted) quit

Готово. Диск разбит и отформатирован.

Немного пояснений. mklabel gpt — тут мы задаем формат размещения таблиц разделов. Если не понимаете что это, то либо читайте документацию, либо используйте gpt или msdos. Дополнительно можете сориентироваться, посмотрев какого формата таблица разделов на уже существующих в вашей системе дисков. В моем примере вывода parted -l оба диска имеют формат gpt .

mkpartfs primary ext4 0% 100% — создаем раздел с файловой системой ext4. отводим ему 100% места и сразу форматируем его. Можно использовать команду mkpart вместо mkpartfs. тогда отформатировать раздел можно будет позже.

Для более подробной информации по командам и возможностям parted используйте официальную документацию или man parted .

Важно! Проводите все операции на отмонтированном диске! Если диск в системе новый, то не забудьте смотнировать его и добавить в /etc/fstab .

UUID всех разделов всех дисков можно найти командой blkid .

Разбиение жестких дисков

Исторически жесткие диски использовали 32-битные таблицы разбиения PC-BIOS с головной загрузочной записью (MBR), что ограничивало размер разделов до 2 Тбайт и позволяло создавать лишь четыре основных раздела на одном жестком диске. Использование расширенных разделов сняло последнее ограничение. Для преодоления границы в 2 Тбайт таблицы разбиения PC-BIOS были заменены GPT (таблицами разбиения GUID).

Стандартной командой, предназначенной для работы с разделами жесткого диска, является команда fdisk, но, поскольку она не может работать с разделами GPT, она постепенно уступает место другим командам. Более эффективным и поддерживаемым приложением является команда parted.

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

Разбиениежесткогодискаспомощьюкомандыfdisk

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

В данном примере выводится информация о жестком диске размером 80 Гбайт, который разбит на три раздела. Первый раздел (/dev/sdal) является небольшим загрузочным разделом /boot, настроенным в файловой системе ext3 (Id 83). Стоит отметить, что знак * обозначает, что первый раздел является загрузочным. Следующий раздел предназначен для корневой файловой системы и также относится к ext3. Последний раздел — раздел подкачки Linux.

Начиная с версии 2.6.20 ядра Linux, и IDE-, и SCSI-диски используют имена устройств в формате /dev/sd. где знак. заменяется буквой (а, Ь, с и т. д.). В более старых версиях Ubuntu только SCSI-диски и USB-накопители используют имена /dev/sd. Жесткие диски IDE используют формат имени /dev/hd?.

Если на вашем компьютере установлено несколько дисков, команда fdisk -1 отобразит информацию обо всех дисках, если вы не укажете конкретный: $ sudo fdisk -l/dev/sdb;;;; Выводит информацию о разделах выбранного диска

Чтобы с помощью команды fdisk работать с конкретным диском, укажите, с каким диском необходимо работать, не используя никаких параметров:

На основании выведенной на экран информации вы можете использовать любую указанную команду для работы с жестким диском. В частности, вы можете использовать параметр р (выполняющий ту же функцию, что и fdisk -l), n (для создания нового раздела), d (для удаления существующего раздела), 1 (для отображения известных типов файловых систем) или t (для изменения типа файловой системы раздела). В следующих примерах показаны некоторые операции с командой fdisk:

Если вы не укажете иного, команда fdisk задаст тип нового раздела как ext3 (83). Для отображения списка типов файловых систем, отображаемого с помощью параметра l, а также соответствующих им и шестнадцатеричных кодов вы можете воспользоваться параметром L. Как говорилось выше, число 82 соответствует разделу подкачки. Среди других типов разделов Linux, которые могут вас заинтересовать, можно назвать Linux-расширенный (85), Linux-LVM (8e), Linux-программный массив (fd) и EFI/GTP (ее).

Для разделов Windows вы можете назначать разделы HPFS/NTFS (7), Windows 95 FAT32 (b), FAT16 (6) или Windows 95 FAT32 LBA (с). Среди других подобных типов файловых систем UNIX можно назвать Minix (be или bf), BSD/OS (е4), FreeBSD (ее), OpenBSD (ef), NeXTSTEP (f0), Darwin UFS (fl) и NetBSD (f4). Вам может пригодиться любой из этих типов файловых систем, если у вас имеются старые резервные копии данных тех файловых систем, которые вы хотите восстановить.

До сих пор нами не производилось никаких изменений в таблице разбиения. Если вы абсолютно уверены в правильности вносимых изменений, то для применения изменений к таблице разбиения разделов введите w. Для отмены изменений (или выхода из fdisk после их применения) введите q.

Копированиетаблицразбиенияпосредствомкомандыsfdisk

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

Изменениеразделовдискаспомощьюкомандыparted

Как и fdisk, команда parted может быть использована для отображения или изменения разделов диска. Однако команда pa rted предоставляет еще некоторые полезные функции. С помощью следующей команды вы можете отобразить разделыдиска/dev/sda:

Из приведенной информации видно, что диск имеет классическую метку (или таблицу разбиения диска) msdos или gpt. В данном случае приведена таблица разбиения msdos.

Чтобы выполнить командуparted в интерактивном режиме, введите parted, а затем, если у вас несколько устройств, имя соответствующего устройства хранения информации, с которым хотите работать (например, /dev/sda):

При интерактивном использовании команды parted вы можете как целиком вводить команды, так и набирать только несколько первых букв команд и нажимать клавишу Tab для их дополнения (в консоли bash). Если же вы хорошо знакомы с используемыми командами, то можете просто вводить необходимое количество букв, чтобы команда parted определяла по ним необходимую для выполнения команду (в Cisco IOS): р для вывода, mkl для mklabel и т. д.

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

Для каждой команды parted предусмотрена возможность использования со всеми аргументами (например, mkpart logical ext3 10.76В 17.0GB), однако вы можете просто выполнить необходимую команду (mkpart), и parted переведет вас в интерактивный режим:

Старайтесь не использовать команду mkpartfs, поскольку она не может правильно создавать разделы ext3. Вместо нее для создания раздела ext3 воспользуйтесь командой mkpart (как показано выше), а затем отформатируйте его с помощью parted, испольуя команду mkfs.ext3. Вообще, поддержка файловых систем типа ext3 у parted отсутствует. Изменение размеров общих разделовLinux может понадобиться, если нужно освободить место для нового раздела, например:

Если вы не используете LVM, эта команда просто разрушит вашу систему.

Для изменения размера разделовNTFS предназначена команда ntfsresize. В Ubuntu эта команда поставляется с программным пакетом ntfsprogs, в котором также присутствуют команды для создания (mkfs.ntfs), настройки (ntfsfix) и получения информации о разделах NTFS (ntfsinfo).

Работа с метками файловых систем

Gnu parted инструкция

4. Программа parted и ее производные

Утилиты, рассмотренные в предыдущих частях статьи, имели своим основным назначением создание разделов на новых, девственно чистых дисках. И хотя в последних версиях таких утилит как DiskDrake или YaST предусмотрена возможность трансформации существующих разделов, для решения последней задачи были разработаны специализированные утилиты. Основной утилитой этого типа в Линукс является программа parted (или GNU/parted), название которой, очевидно, происходит от PART ition ED itor.

4.1. Программа parted Утилита parted представляет собой консольную программу, предназначенную для создания, удаления, копирования, изменения размера и размещения разделов диска, а также для проверки целостности данных на разделе. В документации к программе таблица разделов диска именуется "меткой диска" ("disk label"). Программа умеет работать со следующими типами таблицы разделов (или типами меток диска - label-type ):
  • raw access (я перевожу это как "прямой доступ") - используется для логических томов (LVM) и RAID-массивов,
  • bsd,
  • loop (raw disk access),
  • gpt - Intel GPT partition tables,
  • mac,
  • msdos,
  • pc98,
  • sun.

Я знакомился с версией 1.6.9 этой программы, включенной в состав Live CD Knoppix 3.6. При необходимости вы можете найти программу по следующей ссылке - http://qtparted.sourceforge.net/. а документацию к ней - на странице www.gnu.org/software/parted. В следующей табличке приведены данные о том, какие операции программа позволяет выполнять с разделами, на которых созданы файловые системы разных типов (еще раз напомню, что речь идет о версии 1.6.9 этой программы; вполне возможно, что последующие версии будут иметь больше возможностей).

Таблица 2. Файловые системы, поддерживаемые программой parted

Тип файловой системы

Примечания:
  1. Для ext2, ext3 и reiserfs: начало раздела не может изменяться.
  2. Для ext2, ext3: размер раздела, в который производится копирование, должен быть больше или точно равен размеру исходного раздела.
  3. Для ext2 и ext3: проверки осуществляются с единственой целью: убедиться, что операции изменения размера раздела и копирования могут быть выполнены корректно.
  4. Для fat: размер раздела после изменения его преобразования или копирования ограничен размером кластера. Parted может уменьшить размер кластера, так что вы всегда можете уменьшить размер раздела. Однако если вы по каким-то причинам не може использовать FAT32, вы не можете увеличить размер вашего раздела.
  5. Parted поддерживает как FAT16, так и FAT32, причем может преобразовать файловую систему FAT16 в FAT32 и наоборот, если это необходимо.
  6. Для работы с NTFS необходимо наличие пакета linux-ntfs.
  7. Поддержка Reiserfs возможна только в том случае, если у вас установлена библиотека libreiserfs, которую можно найти на http://reiserfs.osdn.org.ua. (возможно, ее можно получить также с http://www.namesys.com )

Формат запуска программы имеет следующий вид

[root]# parted [options] [device [command [options. ]. ]]

Опций у программы всего 4:
  • -h, --help - выдать краткую подсказку;
  • -i, --interactiv - режим интерактивного взаимодействия с пользователем;
  • -s, --script - режим автономной работы, без запросов к пользователю;
  • -v, --version - сообщить номер версии.

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

    Сама программа представляет собой оболочку, распознающую всего 16 команд, с помощью которых можно не только создавать новые разделы, но и изменять структуру существующих. Команды можно указывать непосредственно в командной строке, а можно и после входа в оболочку. Давайте рассмотрим работу с программой в интерактивном режиме (то есть через оболочку), после чего выполнение команд прямо из командной строки уже не должно представлять никаких затруднений.

    Запуск программы в интерактивном режиме осуществляется командой
    [root]# parted /dev/hdb

    После запуска первым делом следует посмотреть на существующую на диске структуру разделов. Это можно сделать с помощью команды print. Я на своем тестовом диске увидел следующую картину:

    MINOR здесь и далее означает номер Linux-раздела на текущем диске, а величины START и END задают смещение начала и конца раздела от начала диска (в мегабайтах), причем я в ходе работы с программой всегда использовал целые значения, а программа сама приводила их к каким-то дробным, по ей самой ведомым правилам. Заметим также, что можно использовать отрицательные значения для указания границ размеров разделов. Это будет означать, что смещение будет отсчитываться от конца диска, то есть соответствующая величина будет вычитаться от общего размера диска (следовательно, "-0" равно объему всего диска).

    Краткую справку по всем командам можно получить, введя знак вопроса или команду help в ответ на приглашение программы (рис.22).

    Рис.22. Запуск программы parted в консоли

    Теперь вы знаете с каким диском работаете (см. результат выполнения команды print ) и какие действия вам доступны (результат выполнения команды help ). Если вы хотите поменять диск, то самое время время воспользоваться командой select DEVICE.

    Теперь давайте перейдем непосредственно к манипуляциям с разделами. Однако имейте в виду, что команды выполняются сразу, как только вы нажмете клавишу <Enter>, то есть все изменения сразу же будут записаны на диск. Правда, программа parted будет выдавать предупреждения всякий раз, когда вы попытаетесь выполнить какое-то потенциально опасное действие, например, выполнить команды rm, mklabel или mkfs. Тем не менее, перед вводом каждой команды имеет смысл посмотреть подсказку по ее использованию, для чего выполнить команду help command (то есть с указанием в виде параметра имени нужной команды), а перед нажатием клавиши <Enter> еще раз подумать, что вы намереваетесь сделать.

    Поскольку на моем диске свобдного места не было, я начал освоение программы parted с уменьшения размера существующего раздела. Эта операция выполняется с помощью команды resize. Мне удалось с помощью этой команды уменьшить размер второго раздела вдвое, обеспечив тем самым наличие свободного пространства, необходимого для последующих операций.

    Прежде чем создавать новый раздел, я решил испытать команду move. Моя попытка выполнить ее в следующем варианте
    (parted) move 2 326 926
    привела к появлению сообщения о том, что "невозможно переместить раздел самого в себя, попытайтесь изменить размер раздела". В принципе понятно, перемещать можно только в полностью незанятые области. После задания границ нового раздела следующим образом:
    (parted) move 2 626 1026
    команда была успешно выполнена (хотя заняла довольно много времени). Перед перещением раздела я специально записал на него несколько каталогов с файлами и после выполнения команды и монтирования раздела имел возможность убедиться, что вся информация при перемещении сохранилась. Между прочим, перед выполнением этой команды следует размонтировать перемещаемый раздел, иначе программа выдаст сообщение об ошибке: Пытаться игнорировать это сообщение я не стал, можете испытать это на своем диске.

    Создание раздела на свободном пространстве осуществляется с помощью команды
    (parted) mkpart тип-раздела [тип_FS] START END
    где тип_раздела может принимать одно из трех значений: primary, logocal или extended. Параметр тип_FS не обязателен, файловую систему на созданном разделе можно сформировать и позже, с помощью отдельной команды
    (parted) mkfs MINOR тип_FS.
    Создание раздела без создания файловой системы (то есть без задания параметра тип_FS ) используется в тех случаях, когда раздел предназначен для файловых систем, не поддерживаемых программой parted. а также при создании логических томов (LVM).
    Мне без проблем удалось создать разделы типа ext2 и fat32, а вот разделы типов ext3, ntfs и xfs программа создавать отказалась (как оно и следует из приведенной выше таблицы 2 ).

    Создание нового раздела и одной из возможных файловых систем можно выполнить за один раз, если воспользоваться командой
    (parted) mkpartfs тип-раздела тип_FS START END
    Как видите, она аналогична команде mkpart. только здесь параметр тип_FS обязателен.

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

    Команды копирования и перемещения разделов работают только в пределах одного жесткого диска. Зато они доступны для любых файловых систем, поскольку данные операции выполняются посекторно. Например, команда
    (parted) cp 2 3
    скопирует все данные из второго раздела в третий, при этом не имеет значения, что третий раздел больше по размеру, и что на нем до выполнения этой команды была файловая система fat16, а на втором разделе была файловая система ext2. Естественно, все ранее записанные на 3-ий раздел данные будут этой командой уничтожены.

    Команда rescue поможет восстановить структуру накопителя, если таблица разделов по какой-то причине оказалась разрушена. Достаточно лишь указать дисковое пространство (лучше с запасом), на котором находился раздел, и утилита попытается отыскать его сигнатуру. Я удалил со своего диска все разделы, кроме одного swap-раздела и запустил команду rescue. Результат вы видите на следующем рисунке!

    Рис.23. Восстановление разделов

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

    Следущая команда, mklabel label-type . служит для создания новой (пустой) таблицы разбиения диска (метки диска) в MBR. Например, команда создает пустую таблицу разделов типа msdos. Выполнение этой команды не приводит к разрушению данных на диске, однако эти данные становятся недоступными, поскольку фактически уничтожается их адресация. Можно попытаться исправить эту ситуацию с помощью команды rescue.

    В некоторых случаях разделам на диске можно присвоить имена (мне кажется, что здесь термин "метка" был бы более подходящим). Не знаю точно, какие именно типы разделов допускают имена, но при попытке присвоить имя одному из разделов на моем диске я получил в ответ сообщение о том, что для разделов типа msdos имена не поддерживаются.

    Еще одна команда, set minor flag state . служит для установки некоторых флагов на раздел MINOR. Параметр state может принимать значение "on" или "off" (то есть "включено" или "выключено"). Набор допустимых флагов зависит от типа раздела:

    Этот флаг проставляется в том случае, если нужно известить Линукс о том, что раздел используется как физический том в LVM.

    Пример: командой вы включаете флаг boot для раздела 1. С помощью команды print можно посмотреть, какие флаги на какой раздел установлены.

    Вот мы и рассмотрели все команды утилиты parted. разве что еще раз напомнить, что выход из оболочки (и завершение работы с программой) осуществляется командой quit или просто q. Осталось сделать еще несколько замечаний.
    • Во-первых. при вводе команд разрешены однозначно раскрываемые сокращения. Например, вы можете ввести только "p" вместо "print" или "re" вместо "resize".
    • Во-вторых. если вы не задали необходимый команде параметр, его значение будет запрошено:
    • В третьих. пользоваться оболочкой вовсе не обязательно. Любую команду или даже группу команд можно указать непосредственно в командной строке вызова программы parted. причем за один раз можно выполнить несколько команд. Пример: Только не забудьте указать имя диска, а то последсвия могут быть плачевными. Напомню, что в интерактивном режиме (то есть при работе через оболочку) вы можете задавать за один раз выполнение только одной команды.
    • В четвертых. как уже говорилось выше, утилита parted производит запись измененной таблицы разделов на диск сразу же после того, как вы выполните какую-то команду, но эти изменения не заносятся автоматически в файл /etc/fstab. Поэтому после перезапуска системы могут возникнуть проблемы из-за несоответствия фактической структуры разделов тому, что записано в fstab. Следовательно, никогда не следует пытаться смонтировать раздел, который был изменен или создан программой parted. Программа напомнит вам об этом при выходе из программы (по команде q ), выдав сообщение "Don't forget to update /etc/fstab, if necessery."

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

    Корневой раздел и раздел /boot в смонтированном состоянии изменять вообще не рекомендуется, а если такая необходимость возникла, рекомендуется воспользоваться загрузочным диском, iso-образ которого можно найти на сайте GNU Parted.

  • Надо сказать, что интерфейс программы parted не назовешь интуитивно понятным, а поэтому работа с ней не является приятным занятием. Поэтому я закончу на этом ее расмотрение и перейду к рассмотрению графической облочки к утилите parted - программе QTParted.

    4.2. Утилита QTParted Внешний вид окна этой программы имеет некоторое сходство с известной Windows-программой Partition Magic фирмы PowerQuest (смотри следующий раздел ). Сходство это не случайно, ибо сами создатели программы пишут следующее:
      "QTParted является попыткой создать клон Partition Magic, работающий в Линукс-системах. В действительности такой клон уже сущестует и называется parted. Но parted имеет интерфейс, основанный на командной строке, что затрудняет использование программы неопытными пользователями.
      Программа parted фактически является основанным на командной строке интерфейсом пользователя к библиотеке libparted. Эта библиотека является тем ядром, которое выполняет операции по редактированию разделов. QTParted является графическим пользовательским интерфейсом к той же библиотеке libparted, написанным с использованием QT (отсюда и название: QT + Parted = QTParted )."

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

    Рис. 24. Запуск программы QTParted

    Чтобы увидеть разделы диска, необходимо вначале выбрать устройство из списка доступных, приведенного в левой части окна. Только после этого программа считывает таблицу разделов (рис. 25)

    Рис. 25. Считывание информации о структуре разделов

    и отображает структуру диска в графическом виде, и в виде таблицы в правой части окна. В левой части появляется краткая справка о выбранном диске:

    Рис. 26. Отображение существующей структуры разделов

    Поскольку QTParted является оболочкой к той же библиотеке libparted, что программа parted. она имеет примерно те же возможности, что и parted (смотри таблицу 2 ). Конечно, для работы с NTFS необходимо наличие пакета linux-ntfs. Впрочем, NTFS-разделы все же лучше изменять с помощью программ типа Partition Magic, поскольку более или менее сложные манипуляции с разделами NFTS в среде Linux все еще связаны с риском потери данных.

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

    Если вы видите, что меню операций не активно (все пункты или большинство отображаются серым цветом и щелчок мыши по ним не приводит к видимым результатам), то скорее всего на текущем диске имеются используемые системой разделы. У меня, например, использовался только один swap-раздел, тем не менее программа отказывалась выполнять какие-то действия с диском до тех пор, пока я не отключил его командой swapoff /dev/hdb1. Так что предварительно необходимо размонтировать все обычные разделы и отключить swap-разделы диска.

    Хочу отметить одну особенность отображения разбиения диска утилитой QTParted. На рисунке 27 вы видите картину разбиения моего диска /dev/hda, как его показала эта утилита:

    Рис. 27. Отображение неиспользуемых областей диска

    Обратите внимание на то, что в первом первичном разделе и в каждом из расширенных разделов показаны неиспользуемые "пробелы" объемом 0,3 МБ каждый. Я вначале не мог объяснить причину появления этих "пробелов" и даже "грешил" на утилиту Disk Druid. с помощью которой разбивал диск на разделы в процессе инсталляции. И только когда стал разбираться с командой Maximize в утилите cfdisk. понял, откуда берутся эти "пустоты". Как уже было рассказано при описании утилиты cfdisk. первый раздел диска, а также все логические разделы начинаются со второй дорожки цилиндра, оставляя первую дорожку пустой. Эти пустые дорожки и отображаются утилитой QTParted.

    4.3. Утилита Partition Morpher

    Утилита QTParted. как уже было сказано, является просто графической оболочкой для библиотеки libparted. построенной на основе графической библиотеки QT. Другая аналогичная утилита - Partition Morpher. построена на основе библиотеки GTK2 и той же библиотеку libparted из проекта parted, а поэтому обладает примерно теми же возможностями, что и QTParted .

    Debian-пакет с программой можно найти на сайте http://www.morphix.org/debian

    Я не работал с утилитой Partition Morpher. поэтому не могу подробно охарактеризовать работу с этой программой. Приведу только заимствованный с того же сайта рисунок окна программы Partition Morpher. по которому вы можете составить себе представление о программе и ее возможностях.

    Рис. 28. Основное окно утилиты Partition Morpher

    4.4. Программа gparted

    Для создания разделов с файловыми системами разных типов утилита использует стандартные утилиты работы с файловыми системами. Например, для разделов с ext2/3 используется пакет e2fstools, а для работы с разделами reiserfs необходимы соответствующие утилиты от Namesys.

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