Parted увеличить размер диска linux

Обновлено: 08.07.2024

При переустановке системы, установке нового дистрибутива или просто реорганизации файловых систем мы часто имеем дело с жесткими дисками. Часто нужно добавлять, удалять или изменять размер разделов, управлять их флагами или конвертировать файловые системы. Для этого в Linux есть достаточно различных инструментов как с графическим интерфейсом, так и консольных. Разобраться в графическом интерфейсе Gparted, я думаю вам не составит труда, но в некоторых случаях бывает нужна разбивка жесткого диска на разделы linux в терминале, без доступа к Х серверу, а это может стать серьезной проблемой.

В этой статье мы разберем как выполнять основные операции, которые мы привыкли делать в Gparted, такие как разметка диска, удаление и создание раздела, в терминале, а поможет в этом команда parted Linux. Сначала рассмотрим саму команду parted.

Синтаксис parted

Синтаксис parted выглядит следующим образом:

$ parted [опции] устройство [команда]

В квадратных скобках указанны необязательные аргументы.

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

Опции и команды parted

У parted всего несколько опций и огромное количество команд.

  • -h - вывести справку о программе
  • -v - вывести версию программы
  • -s - скриптовый режим, программа работает без запросов к пользователю
  • -i - интерактивный режим, пользователь вводит команды в интерактивном режиме. По умолчанию программа работает в этом режиме.

Команд не очень много, но даже помнить их все вовсе не обязательно. Рассмотрим только те, которые нам пригодятся в сегодняшних примерах:

  • help команда - помощь по выбранной команде;
  • mkpart тип раздела файловая система начало конец - создание раздела linux с файловой системой начиная с позиции начало заканчивая конец, два последних параметра задаются в мегабайтах по умолчанию;
  • mktable тип - создать таблицу разделов;
  • print - отобразить таблицу разделов;
  • quit - выйти;
  • resizepart раздел конец - изменить размер раздела;
  • rm раздел - удалить раздел;
  • select раздел - установить раздел как текущий;
  • set раздел флаг состояние - установить флаг для раздела. Состояние может быть on (включен) или off(выключен).

Раньше поддерживались также опции работы с файловой системой mkfs, check, mkpartfs но начиная с версии 2.4 они были удаленны. Но программа не стала хуже.

Я понимаю что сейчас разметка дисков в linux для вас непонятна и расплывчата, но с примерами станет намного яснее. Больше не будем о теории, перейдем к примерам.

Разметка диска в Linux

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

Создадим себе тестовый полигон командой:

sudo dd if=/dev/zero of=/disk.img count=2000 bs=1M

Таким образом, мы получим файл размером 2000 мегабайт, заполненный нулями, с которым можно спокойно работать. Запустим parted, передав ему вместо устройства наш файл:

sudo parted /disk.img

Когда надо будет работать с реальным диском, просто передайте путь к файлу его устройства утилите:

sudo parted /dev/sda

Программа запустится в интерактивном режиме и вы сможете выполнять нужные команды. Сначала попытаемся посмотреть список разделов на устройстве:

Он пуст потому что даже нет таблицы разделов. Пока её нет, разметка дисков в Linux не может быть выполнена, нам предстоит ее создать. Для этого воспользуйтесь командой mktable:

(parted) mktable gpt

Будем мы создали таблицу разделов типа gpt, но можно выбрать одну из этих: aix, amiga, bsd, dvh, gpt_sync_mbr, gpt, mac, msdos, pc98, sun, loop

Теперь давайте создадим новый раздел с файловой системой ext2 размером 100 мегабайт. Для этого есть команда mkpart, как вы помните ей нужно передать три параметра: тип раздела, файловую систему и координаты. Тип раздела может быть: primary, logical, extended (первичный, логический и расширенный).

В gpt можно создавать нужное количество первичных разделов и не задумываться об их типе. Это все было создано для MBR, в этой таблице есть ограничение на количество первичных разделов - только четыре. Поэтому приходилось создавать три первичных и один расширенный, в который вкладывались уже сколько нужно логических.

Ну так вот, создаем первичный:

(parted) mkpart primary ext2 0 400М

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

Смотрим список разделов еще раз:

Создадим еще несколько разделов, например для корня системы и для домашней папки:

(parted) mkpart primary ext4 400 1000M

(parted) mkpart primary ext4 1000M -0M

Параметр -0 означает вести отсчет от конца раздела, таким образом будет занято все доступное пространство под третий раздел. Смотрим что получилось:

Работа с диском в Linux осуществляется по их номерам. Давайте уменьшим последний раздел и создадим после него ещё один:

(parted) resizepart 3 1600M

Также можно указать нужный размер в процентах:

(parted) resizepart 3 60%

А теперь создание раздела parted:

mkpart primary ext4 1600M -0M

Удалим только что созданный четвертый раздел:

Зададим метки для существующих разделов с помощью команды name:

(parted) name 1 boot

(parted) name 2 root

(parted) name 3 home

Сделаем первый раздел загрузочным командой set:

Можно устанавливать следующие флаги: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, type, irst.

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

Выводы

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

date

20.02.2021

directory

CentOS, Linux, Ubuntu

comments

Один комментарий

Установка parted в Linux

Обновите набор по на сервере и установите пакет parted с помощью менеджера пакетов вашего дистрибутива Linux. Для CentOS 8 с менеджером пакетов dnf (который заменил yum), можете установить parted из базового репозитория командой:

установка parted в linux

Или в Debian/Ubuntu:

Чтобы проверить версию утилиты, выполните команду:

версия parted

Чтобы попасть в саму оболочку, введите:

Управление таблицей разделов в parted, разметка диска

Выведем список доступных дисков:

parted unrecognized disk label

Доступен диск /dev/vdb размером 21 Гб, диску не присвоена метка (error /dev/vdb: unrecognized disk label), какая таблица разделов – не понятно.

Можно создать на диске разметку msdos (MBR)

Или таблицу разделов gpt ( GUIE partition table поддерживает размер раздела более 2 Тб) :

Обратите внимаени, что в parted в отличии от fdisk нет команды для записи изменений. Все изменения применяются немедленно.

Теперь parted показывает тип таблицы разделов (разметки) на диске:

Как вы видите, на диске уже есть таблица разделов MBR, но сами разделы еще не созданы.
Если у вас на сервере имеется несколько свободных дисков, то можно переключаться между ними с помощью команды:

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

Для создания раздела в parted, используется утилита mkpart . При вводе команды в интерактивном режиме будут появляться вопросы о параметрах нового раздела:

parted список разделов на диске

  • Partition type — указываем тип раздела (primary / extended)
  • File system type — файловая система, по умолчанию предлагается ext2 (в дальнейшем мы ее изменим);
  • Start — начальный сектор раздела
  • End — конечный сектор раздела (в мегабайтах). В нашем примере мы указали 5000, это значит, что будет создан раздел размером 5Гб.

(parted) print free

Можно сразу создать раздел на весь диск:

или указать произвольный размер раздела так:

Также можно указывать размер диска в % и задать метку:

Чтобы выйти из оболочки parted, выполните команду:

Отформатируем раздел в файловой системе ext4:

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

parted отформатировать раздел в файловой системе ext4

Можно создать раздел и отформатировать его, не входя в оболочку parted, например:

Данной командой мы создадим раздел на диске vdb, под который отдадим всё пространство.

Таким образом вы можете упрощать себе работу или же добавлять подобные команды в какие-то скрипты или файлы кикстарта.

Как расширить или уменьшить размер раздела диска с помощью parted

Чтобы расширить или уменьшить размер раздела в partedиспользуется субкоманда resizepart Можно изменить размер раздела в интерактивном режиме. В оболочке parted введите команду:

Разделы с файловыми системами ext2/3/4 нужно отмонтировать перед изменением размера.

Система запросит номер раздела (берется из вывода команды print) и конечный размер раздела. В этом примере размер разделе будет увеличен с 5 до 10 Гб:

resizepart изменить размер раздела в linux

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

Для уменьшения размер файловой системы используются следующие команды. Для файловых систем ext2/3/4 :

resize2fs /dev/sdab size

btrfs filesystem resize /dev/sdab size

Изменять флаг раздела в parted тоже возможно, вы можете установить один из нужных вам:

Например сделаем раздел загрузочным:

parted назначение флага раздела

Удаление раздела с помощью parted

Если вам требуется удалить раздел на диске, вы можете использовать команду rm в оболочке parted:

Эта команду удалит раздел с номером 1:

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

Восстановление случайно удаленных разделов с помощью rescue

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

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

parted resuce восстановление раздела

Как видите, утилита parted проста в использовании и очень удобна для создания/изменения разделов вашего диска. Надеемся, что данная статья поможет вам разобраться во многих вопросах.

GNU Parted - это программа для создания и редактирования таблиц разделов. GParted это GUI для неё.

Contents

Установка

Установите parted пакет. Для графического интерфейса, установить gparted пакет, графический интерфейс для parted.

Использование

Parted имеет два режима: коммандная строка и интерактивный. Parted всегда должен начинаться с:

где device это жёсткий диск, который нужно отредактировать (например /dev/sda ). Если не указать device аргумент, parted может предположить какое устройство вы хотите.

Режим командной строки

В режиме командной строки, он принимает одну или более команд. Например:

Примечание: Параметры (такие как --help ) можно указать только в командной строке.

Интерактивный режим

Интерактивный режим упрощает процесс разбиения и уменьшает ненужное повторение с помощью автоматического применения всех команд разбиения на указанное устройство.

Чтобы начать работу с устройством, выполните:

Чтобы увидеть список доступных команд, введите:

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

Если вы не указываете параметр команде, Parted подскажет вам его. Например:

Округление

Поскольку многие системы разделов имеют сложные ограничения, 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”, и т.д.

Разбиение

Создание новой таблицы разделов

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

Откройте каждое устройство, таблица разделов которого должна быть (пере)создана с помощью:

Затем создайте новую GUID Partition Table, используйте следующую команду:

Чтобы создать новую Главную Загрузочную Запись/MS-DOS таблицу разделов, используйте:

Схемы разделов

Следующая команда будет использоваться для создания разделов:

  • part-type-or-part-label интерпретируется по-разному в зависимости от таблицы разделов:
    • MBR: параметр интерпретируется как part-type , который может быть primary , extended или logical .
    • GPT: параметр интерпретируется как part-label , который устанавливает PARTLABEL атрибут раздела. Метка раздела должна быть установлена всегда, так как mkpart не разрешает создавать разделы без метки.

    Примечание: Во многих туториалах в интернете используются команды которые начинаются с mkpart primary даже для GPT. Они не правильные, это установило бы "primary" как метку раздела. Совет: Большинство Linux native file systems сопоставимы с тем же кодом типа раздела MBR (0x83), так что совершенно безопасно, например, использовать ext2 для ext4- форматирования разделов.
    • start это начало раздела от начала устройства. Он состоит из числа, за которым следует unit, например 1MiB означает начало с 1 MiB.
    • end конец раздела от начала устройства (not из start значения). Он имеет тот же синтаксис, что и start , например 100% означает конец в конце устройства (использовать все оставшееся пространство).
    Совет: На диске с MBR таблицей разделов оставьте не менее 33 512-байт секторов (16.5 KiB) свободного нераспределенного пространства в конце диска, чтобы конвертировать между MBR и GPT. Важно: Важно, чтобы разделы не перекрывали друг друга: если вы не хотите оставлять неиспользуемое место в устройстве, убедитесь, что каждый раздел начинается там, где заканчивается предыдущий.

    Следующая команда будет использоваться для отметки раздела, содержащего /boot директорию как загрузочную:

    • partition - номер раздела, который должен быть отмечен (смотрите вывод команды print ).
    • esp это назначения для boot на GPT. [1]

    This article or section needs expansion.

    Reason: Explain the boot , legacy_boot и esp флаги и их различное использование в MBR и GPT. (Discuss in Talk:Parted (Русский))

    UEFI/GPT примеры

    В каждом случае специальный загрузочный EFI system partition (Русский) is required.

    При создании нового системного раздела EFI используйте следующие команды (рекомендуемый размер - не менее 260 MiB):

    Оставшаяся схема разделов полностью зависит от вас. Для другого раздела, использующего 100% оставшегося пространства

    Для / (20 GiB) и /home (все оставшееся пространство) разделов:

    Для / (20 GiB), swap (4 GiB), и /home (все оставшееся пространство) разделов:

    BIOS/MBR примеры

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

    В следующем случае, 20 GiB / будет создан раздел, за которым последует /home раздел, используя все оставшееся пространство:

    В последнем примере, /boot (100 MiB), / (20 GiB), swap (4 GiB), and /home (все оставшееся пространство) разделы будут созданы:

    Изменения размера разделов

    Важно: ext2/3/4 разделы, размер которых изменяется, должны быть размонтированы и не использоваться. Трудно и опасно пытаться редактировать корневую файловую систему в работающей ОС; вместо этого используйте live media/rescue систему.

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

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

    Чтобы увеличить размер (в интерактивном режиме parted):

    Где number - номер раздела, который вы увеличиваете, и end - новый конец раздела (который должен быть больше старого).

    Затем чтобы увеличить (ext2/3/4) файловую систему на разделах:

    Или увеличить Btrfs файловую систему:

    Где sdaX обозначает раздел, который вы увеличиваете, и [size] - новый размер раздела. Примечание; [size] опциональный, по умолчанию: заполнить оставшееся место на разделе.

    Сжатие разделов

    Чтобы сжать ext2/3/4 файловую систему на разделе:

    Примечание: В отличие от parted, resize2fs(8) использует K, M, G и T что обозначает KiB, MiB, GiB и TiB. Документация e2fsprogs неверно ссылается на кибибайты, мебибайты, гибибайты и тебибайт как "степень двойки килобайты, мегабайты, гигабайты, терабайты".

    Чтобы сжать Btrfs файловую систему:

    Где sdaX обозначает раздел, который вы сжимаете, и size - новый размер раздела.

    Затем сожмите раздел (в интерактивном режиме parted):

    Где number - номер раздела, который вы сжимаете, и end - новый конец раздела (который должен быть меньше старого конца).

    Когда закончите, используйте resizepart команду из util-linux сообщающая ядру о новом размере:

    Где 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 может предупредить о неправильном выравнивании раздела, но не поможет с правильным выравнивание. Например:

    Предупреждение означает, что начало раздела не выровнено. Введите "Ignore" что проигнорировать, вывести таблицу разделов по секторам, чтобы увидеть, где она начинается, и удалить/пересоздать раздел с начала сектора округляя до увеличения степени до 2, пока предупреждение не прекратится. В качестве одного из примеров, на флешке с секторами 512B, Parted найдёт разделы начинающиеся на секторах которые кратны 2048, что соответствует выравниванию в 1 MiB.

    Если вы хотите parted может попытаться рассчитать для вас правильное выравнивание, укажите начальную позицию как 0% вместо некоторого конкретного значения. Чтобы сделать один большой ext4 раздел, ваша команда должна выглядить так:

    Советы и приемы

    Dual boot с Windows XP

    Если вы имеете Windows XP разделы которые вы хотите переместить с диска на диск, а также ваш загрузочный раздел, вы можете легко сделать это с помощью GParted и оставаться на Windows счастливым, просто удалив следующий ключ реестра ДО перемещения раздела:

    Ссылка на источник здесь.

    Проверка выравнивания

    На существующем размеченном диске, вы можите использовать parted чтобы проверить выравнивание разделов на диске. Например, проверить выравнивание раздела 1 на /dev/sda :

    Устранение проблем

    Раздел FAT32 после изменения размера, не распознается в Windows

    Для старых сборок, однострочный обходной путь был упомянут в отчете об ошибке, но в отчете также указывалось, что он не работал должным образом для всех. [5][6]

    Следует отметить, что этот вопрос во многом не коснулся gparted, поскольку проект включил патч в свою сборку от gparted версии 0.26.0-1 (выпущенной в 2016-04-29).[7]

    gparted на Wayland вызывает ошибку "cannot open display: :0"

    Данная проблема возникает потому, что xwayland получает отказ в доступе от gparted запущенном от имени root . разработчики gparted реализовали [8] небольшой обходной путь, который временно добавляет root в список пользователей, которым разрешёно подключаться xwayland пока приложение запущено.


    В данной статье будет рассмотрены 2 случая замены дисков и переноса информации на новые диски большего объёма с дальнейшим расширением массива и файловой системы. Первый случай будет касаться замены дисков c одноименной разметкой MBR/MBR либо GPT/GPT, второй случай касается замены дисков с разметкой MBR на диски объёмом более 2 TB, на которые потребуется ставить разметку GPT с разделом biosboot. В обоих случаях диски, на которые переносим данным, уже установлены в сервер. Файловая система, используемая для корневого раздела — ext4.

    Случай 1: Замена дисков меньшего объёма на диски большего объёма (до 2TB)

    Задача: Заменить текущие диски на диски большего объёма (до 2 TB) с переносом информации. В данном случае имеем диски 2 x 240 GB SSD (RAID-1) с установленной системой и диски 2 x 1 TB SATA, на которые необходимо перенести систему.

    Рассмотрим текущую разметку дисков.


    Проверим используемое пространство файловой системы на данный момент.


    Размер файловой системы до замены дисков составляет 204 GB, используются 2 программных массива md126, который смонтирован в /boot и md127 , который используется как physical volume для VG группы vg0.

    1. Удаление разделов диска из массивов

    Проверям состояние массива


    В системе используется 2 массива: md126 (точка монтирования /boot ) — состоит из раздела /dev/sda1 и /dev/sdb1 , md127 (LVM для swap и корня файловой системы) — состоит из /dev/sda2 и /dev/sdb2 .

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


    Удаляем разделы блочного устройства /dev/sda из массивов.


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


    Состояние массивов после удаления дисков.

    2. Копирование таблицы разделов на новый диск

    Проверить используемую таблицу разделов на диске можно следующей командой.


    Выводом для MBR будет:


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

    В данной команде первым указывается диск с которого копируется разметка, вторым — куда копировать.

    ВНИМАНИЕ: Для GPT первым указывается диск на который копировать разметку, вторым диском указывается диск с которого копировать разметку. Если перепутать диски, то изначально исправная разметка будет перезаписана и уничтожена.

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

    Далее назначаем диску случайный UUID (для GPT).


    После выполненной команды разделы должны появится на диске /dev/sdc .


    Если после выполненного действия разделы в системе на диске /dev/sdc не определились, то выполняем команду, чтобы перечитать таблицу разделов.


    Если на текущих дисках используется таблица MBR и информацию необходимо перенести на диски объёмом более 2 TB, то на новых дисках потребуется вручную создавать разметку GPT с использованием раздела biosboot. Данный случай будет рассмотрен во 2 части данной статьи.

    3. Добавление разделов нового диска в массив

    Добавим разделы диска в соответствующие массивы.


    Проверяем, что разделы добавлены.


    После этого дожидаемся синхронизации массивов.


    Непрерывно наблюдать за процессом синхронизации можно с помощью утилиты watch .


    Параметр -n указывает с каким интервалов в секундах необходимо выполнять команду для проверки прогресса.

    Повторяем пункты 1 — 3 для следующего заменяемого диска.

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


    Удаляем разделы блочного устройства /dev/sdb из массивов.


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


    Состояние массивов после удаления дисков.


    Копируем таблицу разметки MBR с диска /dev/sdс на диск /dev/sdd .


    После выполненной команды разделы должны появится на диске /dev/sdd .


    Добавляем разделы диска в массивы.


    Проверяем, что разделы добавлены.


    После этого дожидаемся синхронизации массивов.

    5. Установка GRUB на новые диски


    где X — буква блочного устройства. В данном случае установить GRUB необходимо на /dev/sdc и /dev/sdd .

    6. Расширение файловой системы (ext4) корневого раздела

    На новых дисках /dev/sdc и /dev/sdd доступны 931.5 GB. Из-за того, что таблица разделов скопирована с дисков меньшего объёма, на разделах /dev/sdc2 и /dev/sdd2 доступны 222.5 GB.

    1. Расширить раздел 2 на каждом из дисков,
    2. Расширить массив md127,
    3. Расширить PV (physical volume),
    4. Расширить LV (logical-volume) vg0-root,
    5. Расширить файловую систему.


    Как видно, конец раздела 2 заканчивается на 240 GB. Выполним расширение раздела командой resizepart 2 , где 2 — номер раздела (3). Указываем значение в цифровом формате, например 1000 GB, или используем указание доли диска — 100%. Снова проверяем, что раздел имеет новый размер (4).

    Повторяем указанные выше действия для диска /dev/sdd . После расширения разделов /dev/sdc2 и /dev/sdd2 стали равными 930.5 GB.


    После этого выполняем расширение массива md127 до максимума.


    Проверяем, что массив расширился. Теперь его размер стал 930.4 GB.


    Выполняем расширение physical volume. Перед расширением проверим текущее состояние PV.


    Как видно, PV /dev/md127 использует 222.4 GB пространства.

    Расширяем PV следующей командой.


    Проверяем результат расширения PV.

    [
    Расширяем logical volume. Перед расширением проверим текущее состояние LV (1).


    LV /dev/vg0/root использует 206.41 GB.

    Расширяем LV следующей командой (2).

    Проверяем выполненное действие (3).


    Как видим, после расширения LV объём занимаемого дискового пространства стал 914.39 GB.


    Объём LV увеличился (4), но файловая система по прежнему занимает 204 GB (5).

    1. Выполним расширение файловой системы.


    Проверяем после выполненной команды размер файловой системы.


    Размер корневой файловой системы увеличится до 900 GB. После выполненных действий можно извлекать старые диски.

    Случай 2: Замена дисков меньшего объёма на диски большего объёма (более 2TB)

    Задание: Заменить текущие диски на диски большего объёма (2 x 3TB) с сохранением информации. В данном случае имеем диски 2 x 240 GB SSD (RAID-1) с установленной системой и диски 2 x 3 TB SATA, на которые необходимо перенести систему. На текущих дисках используется таблица разделов MBR. Так как новые диски имеют объём больше 2 TB, то на них потребуется использовать таблицу GPT, так как MBR не может работать с дисками более 2TB.

    Просмотрим текущую разметку дисков.


    Проверим используемую таблицу разделов на диске /dev/sda .


    На диске /dev/sdb используется аналогичная таблица разделов. Проверим используемое дисковое пространство в системе.


    Как видно, корень файловой системы занимает 204 GB. Проверим текущее состояние программного RAID-массива.

    1. Установка GPT таблицы разделов и разметка диска

    Проверим разметку дисков по секторам.


    На новом диске 3TB нам необходимо будет создать 3 раздела:

    1. Раздел bios_grub размером 2MiB для совместимости GPT с BIOS,
    2. Раздел для RAID массива, который будет смонтирован в /boot .
    3. Раздел для RAID-массива, на котором будет LV root и LV swap.

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

    Выполняем команду parted /dev/sdc и переходим в режим редактирования разметки диска.

    Создаём таблицу разделов GPT.


    Создаём 1 раздел bios_grub раздел и устанавливаем флаг для него.


    Создаём 2 раздел и устанавливаем флаг для него. Раздел будет использовать в качестве блока для RAID-массива и монтирования его в /boot .


    Создаём 3 раздел, который также будет использоваться в качестве блока массива, в котором будет LVM.


    В данном случае устанавливать флаг не обязательно, но если необходимо, то возможно его установить следующей командой.


    Проверяем созданную таблицу.


    Назначаем диску новый случайный GUID.

    2. Удаление разделов первого диска из массивов

    Проверям состояние массива


    В системе используется 2 массива: md126 (точка монтирования /boot) — состоит из /dev/sda1 и /dev/sdb1 , md127 (LVM для swap и корня файловой системы) — состоит из /dev/sda2 и /dev/sdb2 .

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


    Удаляем разделы блочного устройства /dev/sda из массивов.


    Проверяем состояние массива после удаления диска.

    3. Добавление разделов нового диска в массив

    Следующим шагом необходимо добавить разделы нового диска в массивы для синхронизации. Смотрим текущее состояние разметки дисков.


    Раздел /dev/sdc1 является bios_grub разделом и не участвует с создании массивов. В массивах будут задействованы только /dev/sdc2 и /dev/sdc3 . Добавляем данные разделы в соответствующие массивы.


    После чего дожидаемся синхронизации массива.


    Разметка дисков после добавления разделов в массив.

    4. Удаление разделов второго диска из массивов

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


    Удаляем разделы блочного устройства /dev/sda из массивов.

    5. Копируем таблицу разметки GPT и синхронизируем массив

    Для копирования таблицы разметки GPT воспользуемся утилитой sgdisk , которая входит в пакет для работы с разделами дисков и таблицей GPT — gdisk .

    Установка gdisk для CentOS:


    Установка gdisk для Debian/Ubuntu:

    ВНИМАНИЕ: Для GPT первым указывается диск на который копируем разметку, вторым диском указывается диск с которого копируют разметку. Если перепутать диски, то изначально исправная разметка будет перезаписана и уничтожена.

    Копируем таблицу разметки GPT.


    Разметка дисков после переноса таблицы на диск /dev/sdd .


    Далее добавляем каждый из разделов, участвующих в программных RAID-массивах.


    Дожидаемся синхронизации массива.


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


    Далее устанавливаем GRUB на новые диски.

    Установка для CentOS:


    Установка для Debian/Ubuntu:


    где X — буква диска, в нашем случае диски /dev/sdc и /dev/sdd .

    Обновляем информацию о массиве.


    Обновляем образ initrd :
    Для CentOS:


    Обновляем конфигурацию GRUB.


    После выполненных действий старые диски можно извлекать.

    6. Расширение файловой системы (ext4) корневого раздела

    Разметка дисков до расширения файловой системы после переноса системы на диски 2 x 3TB (RAID-1).


    Сейчас разделы /dev/sdc3 и /dev/sdd3 занимают 2.7 TB. Так как мы создавали новую разметку дисков с таблицей GPT, то размер 3 раздела был сразу задан на максимально возможное дисковое пространство, расширять раздел в данном случае не требуется.

    1. Расширить массив md126,
    2. Расширить PV (physical volume),
    3. Расширить LV (logical-volume) vg0-root,
    4. Расширить файловую систему.


    После расширения массива md126 размер занимаемого пространства увеличился до 2.7 TB.


    Расширяем physical volume.

    Перед расширением проверяем текущее значение занимаемого пространства PV / dev/md126 .

    Читайте также: