Ай Лайн
Связаться
Отдел продаж +7 (812) 385-74-84
Время работы пн-пт с 9:00 до 18:00

Уменьшение LVM, раздела, PV и диска qcow2

Приведены команды для нового раздела размером 10ГБ и имя раздела sda1

Если действия производятся с root разделом, работы выполняются в live cd (как в примере)

Уменьшение LVM

Загружаемся с Live CD, можно использовать установочный диск системы

Активируем vg LVM

vgchange -ay

Проверяем файловую систему на наличие ошибок

e2fsck -f /dev/ubuntu-vg/ubuntu-lv

Изменяем размер fs, берем на 100М меньше 10G чтобы не было проблем, потом расширим до доступного места.

resize2fs /dev/ubuntu-vg/ubuntu-lv 9700M

Изменяем размер lv, берем на 100М больше размера fs чтобы не было проблем, потом расширим до доступного места.

lvreduce -L 9.8G /dev/ubuntu-vg/ubuntu-lv

WARNING: Reducing active logical volume to 10.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce root [y/n]: y

Reducing logical volume root to 10.00GiB Logical volume root sucessfully resized

Продолжение работ с LVM в разделе - «Продолжение работ с LVM»

Уменьшение PV и раздела

Есть 2 варианта - использовать live cd GPARTED или проводить работы через терминал (что описано ниже)

Порядок здесь важен: PV сжимаем с запасом — чуть сильнее, чем планируем ужать сам раздел. Тогда после изменения раздела PV можно будет расширить обратно на весь его объём, и эта операция сработает как проверка: если расширение не проходит, значит раздел получился меньше ожидаемого и ошибку видно сразу, а не через полгода при первом же сбое.

Сжимаем physical volume

pvresize --setphysicalvolumesize 9.9G /dev/sda1

Делаем копию существующей таблицы разделов (если есть куда)

sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump

Запускаем fdisk в интерактивном режиме

fdisk /dev/sda

Нужно посмотреть текущую таблицу разделов и убедиться, что значения «начало» и «конец» отображаются в виде секторов. Запишите «начальное» значение.

p

Удаляем текущую запись раздела для sda1

d

Воссоздаём запись первичного раздела 1 для sda1 желаемого размера.

n
  • Местоположение первого сектора точно в том виде, в котором он был (т.е. тот же номер, который был показан в «начальном» значении команды)
First sector:
  • Конец раздела указывается в Гб:
Last sector: +10G

На вопрос Do you want to remove the signature? [Y]es/[N]o: отвечаем нет — сигнатуру LVM нужно сохранить.

Устанавливаем тип раздела «Linux LVM»:

t
30

Код 30 соответствует Linux LVM в GPT-разметке. Для MBR тот же тип задаётся кодом 8e — fdisk показывает подходящий список по команде L.

Записываем обновленную таблицу разделов и выходим

w

Если изменение размера раздела прошло успешно, расширяем physical volume на всё оставшееся место

pvresize /dev/sda1

Если PV изначально ужали с запасом, команда просто дотянет его до фактической границы раздела. Ошибка на этом шаге означает, что раздел создан меньше нужного размера — верните исходную таблицу разделов из сделанной копии и повторите разметку:

sfdisk /dev/sda < /safe/location/partition_table_backup.dump

Продолжение работ с LVM

После всех манипуляция увеличиваем lv до максимального размера

lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

И увеличиваем fs до максимально размера

resize2fs /dev/ubuntu-vg/ubuntu-lv

Выполняем проверку файловой системы

e2fsck -f /dev/ubuntu-vg/ubuntu-lv

Изменение размера диска qcow2

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

Нужно провести работы со стороны системы proxmox

  • Создать новый диск требуемого объема (на нем должно быть достаточно место под все существующие разделы исходного диска) и подключить его к виртуальной машине.

Далее проводим работы с гостевой системой

  • Запустить live cd (в случае root prtition) или саму систему виртуальной машины
  • Используя fdisk посмотреть все разделы на исходном диске (записать текущие начала и конца разделов в секторах) и создать на новом диске такую же разметку диска (gpt, mbr) и такие же разделы с точно таким же расположение разделов по секторам.
    • Собираем информацию по исходному диску:
fdisk /dev/sda -l

Для зачистки информации на новом диске используем wipefs

sudo wipefs --all --force /dev/sdb

Для изменения таблиц разделом используем parted

sudo parted /dev/sdb

mklabel msdos - для перевода в mbr

mklabel gpt - для перевода в gpt

q - выход

  • Настраиваем целевой диск:
fdisk /dev/sdb - открыть новый диск
p - убедится что таблица разделов соответствует исходному диску
n - создать новые разделы, важно указать начало и конец в секторах по аналогии с исходным
t - установить метки раздела по аналогии с исходным
w - записать изменения и выйти

Перед клонированием разделов обязательно деактивируем vg - vgchange -an

  • Копируем разделы между дисками:
sudo dd if=/dev/sda1 of=/dev/sdb1
sudo dd if=/dev/sda2 of=/dev/sdb2
sudo dd if=/dev/sda3 of=/dev/sdb3
и т.д.

Далее выключаем vm и возвращаемся к системе Proxmox

  • Переходим в папку с дисками
cd /var/lib/vz/images/<vm_number>
  • Переименовываем исходный диск в «имяисходногодиска_bak»
mv <имяисходногодиска> <имяисходногодиска_bak>
  • Переименовываем новый в исходный диск
mv <имяновогодиска> <имяисходногодиска>
  • Обновляем информацию по виртуальной машине
qm rescan --vmid <vm_number>
  • Запускаем виртуальную машину, проверяем проделанную работу.
  • Если всё успешно, удаляем старый диск
rm <имяисходногодиска_bak>

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

Повисает на статусе - Booting from hard disk

В таком случае требуется выполнить восстановление загрузчика

Оставить заявку