Parted (Русский)
GNU Parted - это программа для создания и редактирования таблиц разделов. GParted это GUI для неё.
Установка
Установите пакет parted. Для графического интерфейса установите пакет gparted, графический интерфейс для parted.
Использование
Parted имеет два режима: коммандная строка и интерактивный. Parted всегда должен начинаться с:
# parted device
где device
это жёсткий диск, который нужно отредактировать (например /dev/sda
). Если не указать device
аргумент, parted может предположить какое устройство вы хотите.
Режим командной строки
В режиме командной строки, он принимает одну или более команд. Например:
# parted /dev/sda mklabel gpt mkpart P1 ext3 1MiB 8MiB
--help
) можно указать только в командной строке.Интерактивный режим
Интерактивный режим упрощает процесс разбиения и уменьшает ненужное повторение с помощью автоматического применения всех команд разбиения на указанное устройство.
Чтобы начать работу с устройством, выполните:
# parted /dev/sdx
Вы заметите что префикс командной строки (#
) отличается от (parted)
: это также означает, что новая строка не является командой, которую нужно вводить вручную при запуске команд в примерах.
Чтобы увидеть список доступных команд, введите:
(parted) help
Когда закончите, или если хотите сделать таблицу разделов или схему для другого устройства, выйдите из parted с помощью:
(parted) quit
После выхода, префикс командной строки измениться обратно на #
.
Если вы не указываете параметр команде, Parted подскажет вам его. Например:
(parted) mklabel New disk label type? gpt
Округление
Поскольку многие системы разделов имеют сложные ограничения, Parted обычно будет делать что-то немного другое, чем вы просили. (Например, создание раздела начиная с 10.352Mb, не с 10.4Mb) Если рассчитанные значения слишком сильно отличаются, Parted попросит у вас подтверждения. Если вы точно знаете, что хотите, или точно видите, что делает Parted, это может помочь указать конечные точки разделов в секторах. (с помощью "s" суффикса) и указать "unit s" команду, чтобы конечные точки раздела отображались в секторах.
В parted-2.4, когда вы указываете начало и/или конец значения с использованием двоичных единиц IEC, например “MiB”, “GiB”, “TiB”, и т.д., parted обрабатывает эти значения как точные и равны тому же числу, указанному в байтах (то есть с суффиксом "B"), в том, что он не дает “полезный” диапазон. Сравните это с запросом на запуск раздела “4GB”, который может фактически разрешиться в некотором секторе до 500MB до или после этого момента. Таким образом, при создании раздела лучше указывать единицы байтов (“B”), сектора (“s”), или двоичные блоки IEC, такие как “MiB”, но не “MB”, “GB”, и т.д.
Разбиение
Создание новой таблицы разделов
Вам нужно (пере)создать таблицу разделов устройства, если она никогда ранее не разбивалась, или когда вы хотите изменить тип этих таблиц разделов. Пересоздание таблицы разделов устройства также будет полезно когда схема разделов требует реконструкции с нуля.
Откройте каждое устройство, таблица разделов которого должна быть (пере)создана с помощью:
# parted /dev/sdx
Затем, чтобы создать новую GUID Partition Table, используйте следующую команду:
(parted) mklabel gpt
Чтобы создать новую Master Boot Record/MS-DOS таблицу разделов, используйте:
(parted) mklabel msdos
Схемы разделов
Вы можете выбрать количество и размер разделов, на которые должны быть разделены устройства, и какие каталоги будут использоваться для монтирования разделов в установленной системе (также известной как mount points). Смотрите Разбиение#Схема разметки для необходимых разделов.
Следующая команда будет использоваться для создания разделов:
(parted) mkpart part-type-or-part-label fs-type start end
part-type-or-part-label
интерпретируется по-разному в зависимости от таблицы разделов:- MBR: параметр интерпретируется как
part-type
, который может бытьprimary
,extended
илиlogical
. - GPT: параметр интерпретируется как
part-label
, который устанавливает PARTLABEL атрибут раздела. Метка раздела должна быть установлена всегда, так как mkpart не разрешает создавать разделы без метки.Примечание: Во многих туториалах в интернете используются команды которые начинаются сmkpart primary
даже для GPT. Они не правильные, это установило бы "primary" как метку раздела.
- MBR: параметр интерпретируется как
fs-type
- идентификатор, выбранный из числа перечисленных путем вводаhelp mkpart
как наиболее близкое соответствие к файловой системе, которую вы будете использовать. Команда mkpart фактически не создает файловую систему:fs-type
параметр будет просто использоваться parted чтобы установить 1-байтовый код, который используется загрузчиками для "предварительного просмотра" какие данные находятся в разделе, и при необходимости действовать соответствующим образом. Смотрите также Wikipedia:Раздел_диска#Виды_разделов.
- Совет: Большинство Linux native file systems сопоставимы с тем же кодом типа раздела MBR (0x83), так что совершенно безопасно, например, использовать
ext2
для ext4- форматирования разделов.
start
это начало раздела от начала устройства. Он состоит из числа, за которым следует unit, например1MiB
означает начало с 1 MiB.end
конец раздела от начала устройства (not изstart
значения). Он имеет тот же синтаксис, что иstart
, например100%
означает конец в конце устройства (использовать все оставшееся пространство).
Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel?В этом случае прочтите Partitioning (Русский)#Выравнивание разделов и следуйте #Выравнивание чтобы исправить это.
Следующая команда будет использоваться для отметки раздела, содержащего /boot
директорию как загрузочную:
(parted) set partition boot on
partition
- номер раздела, который должен быть отмечен (смотрите вывод командыprint
).esp
это назначения дляboot
на GPT. [1]
UEFI/GPT примеры
В каждом случае специальный загрузочный EFI system partition (Русский) is required.
При создании нового системного раздела EFI используйте следующие команды (рекомендуемый размер - не менее 260 MiB):
(parted) mkpart "EFI system partition" fat32 1MiB 261MiB (parted) set 1 esp on
Оставшаяся схема разделов полностью зависит от вас. Для другого раздела, использующего 100% оставшегося пространства
(parted) mkpart "my partition label" ext4 261MiB 100%
Для /
(20 GiB) и /home
(все оставшееся пространство) разделов:
(parted) mkpart "root partition" ext4 261MiB 20.5GiB (parted) mkpart "home partition" ext4 20.5GiB 100%
Для /
(20 GiB), swap (4 GiB), и /home
(все оставшееся пространство) разделов:
(parted) mkpart "root partition" ext4 261MiB 20.5GiB (parted) mkpart "swap partition" linux-swap 20.5GiB 24.5GiB (parted) mkpart "home partition" ext4 24.5GiB 100%
BIOS/MBR примеры
Для минимального одного основного раздела, использующего все доступное дисковое пространство, будет использоваться следующая команда:
(parted) mkpart primary ext4 1MiB 100% (parted) set 1 boot on
В следующем случае, 20 GiB /
будет создан раздел, за которым последует /home
раздел, используя все оставшееся пространство:
(parted) mkpart primary ext4 1MiB 20GiB (parted) set 1 boot on (parted) mkpart primary ext4 20GiB 100%
В последнем примере, /boot
(100 MiB), /
(20 GiB), swap (4 GiB), and /home
(все оставшееся пространство) разделы будут созданы:
(parted) mkpart primary ext3 1MiB 100MiB (parted) set 1 boot on (parted) mkpart primary ext3 100MiB 20GiB (parted) mkpart primary linux-swap 20GiB 24GiB (parted) mkpart primary ext3 24GiB 100%
Изменения размера разделов
- Вы можете переместить конец раздела только с помощью
parted
. - В parted v4.2 resizepart может потребоваться использование #Интерактивный режим.[2]
- Эти инструкции применимы к разделам, имеющим ext2, ext3, ext4, или btrfs файловые системы.
Если вы увеличиваете раздел, вы должны сначала изменить размер раздела, а затем изменить размер файловой системы на нем, в то время как для сжатия файловая система должна быть изменена перед разделом, чтобы избежать потери данных.
Увеличение размера разделов
Чтобы увеличить размер (в интерактивном режиме parted):
(parted) resizepart number end
Где number
- номер раздела, который вы увеличиваете, и end
- новый конец раздела (который должен быть больше старого).
Затем чтобы увеличить (ext2/3/4) файловую систему на разделах:
# resize2fs /dev/sdaX [size]
Или увеличить Btrfs файловую систему:
# btrfs filesystem resize /dev/sdaX [size]
Где sdaX
обозначает раздел, который вы увеличиваете, и [size]
- новый размер раздела. Примечание; [size]
опциональный, по умолчанию: заполнить оставшееся место на разделе.
Сжатие разделов
Чтобы сжать ext2/3/4 файловую систему на разделе:
# resize2fs /dev/sdaX size
Чтобы сжать Btrfs файловую систему:
# btrfs filesystem resize /dev/sdaX size
Где sdaX
обозначает раздел, который вы сжимаете, и size
- новый размер раздела.
Затем сожмите раздел (в интерактивном режиме parted):
(parted) resizepart number end
Где number
- номер раздела, который вы сжимаете, и end
- новый конец раздела (который должен быть меньше старого конца).
Когда закончите, используйте resizepart команду из util-linux сообщающая ядру о новом размере:
# resizepart device number size
Где device
- устройство, на котором находиться раздел, number
- номер раздела и size
- новый размер раздела, в 512-байт секторах.
Предупреждения
Parted will always warn you before doing something that is potentially dangerous, unless the command is one of those that is inherently dangerous (e.g. rm, mklabel and mkpart).
Выравнивание
При создании раздела, parted может предупредить о неправильном выравнивании раздела, но не поможет с правильным выравнивание. Например:
(parted) mkpart primary fat16 0 32M Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel?
Предупреждение означает, что начало раздела не выровнено. Введите "Ignore" что проигнорировать, вывести таблицу разделов по секторам, чтобы увидеть, где она начинается, и удалить/пересоздать раздел с начала сектора округляя до увеличения степени до 2, пока предупреждение не прекратится. В качестве одного из примеров, на флешке с секторами 512B, Parted найдёт разделы начинающиеся на секторах которые кратны 2048, что соответствует выравниванию в 1 MiB.
Если вы хотите parted может попытаться рассчитать для вас правильное выравнивание, укажите начальную позицию как 0% вместо некоторого конкретного значения. Чтобы сделать один большой ext4 раздел, ваша команда должна выглядить так:
(parted) mkpart primary ext4 0% 100%
Советы и приемы
Dual boot с Windows XP
Если вы имеете Windows XP разделы которые вы хотите переместить с диска на диск, а также ваш загрузочный раздел, вы можете легко сделать это с помощью GParted и оставаться на Windows счастливым, просто удалив следующий ключ реестра ДО перемещения раздела:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Ссылка на источник здесь.
Проверка выравнивания
На существующем размеченном диске, вы можите использовать parted чтобы проверить выравнивание разделов на диске. Например, проверить выравнивание раздела 1 на /dev/sda
:
# parted /dev/sda (parted) align-check optimal 1 1 aligned
Устранение проблем
Раздел FAT32 после изменения размера, не распознается в Windows
По состоянию на декабрь 2018 г, в parted была ошибка, patched in git 2016-04-15, но всё ещё присутствовала в Arch Linux (и ряду других дистрибутивов) из-за того, что не было официального релиза parted с 2014-07-28.[3] Эта проблема была решена в upstream после выпуска новой разделенной версии в 2019-08-12, и решена в Arch с 3.3-1 выпуска parted в 2019-10-11.[4]
Для старых сборок, однострочный обходной путь был упомянут в отчете об ошибке, но в отчете также указывалось, что он не работал должным образом для всех. [5][6]
Следует отметить, что этот вопрос во многом не коснулся gparted, поскольку проект включил патч в свою сборку от gparted версии 0.26.0-1 (выпущенной в 2016-04-29).[7]
gparted на Wayland вызывает ошибку "cannot open display: :0"
Установить xorg-xhost.
Данная проблема возникает потому, что xwayland
получает отказ в доступе от gparted запущенном от имени root
. разработчики gparted реализовали [8] небольшой обходной путь, который временно добавляет root
в список пользователей, которым разрешёно подключаться xwayland
пока приложение запущено.