Как я могу изменить размер раздела LVM? (то есть: физический объем)

89

Я хочу сжать свой второй (LVM) раздел, чтобы создать новый раздел в только что освобожденном пространстве. Я использую Live CD для этого, потому что я знаю, что не могу изменить размер / переместить этот раздел, пока он используется. Когда я открыл GParted на Live CD, я понял, что не могу изменить размер раздела, потому что когда я щелкаю по нему правой кнопкой мыши, опция «изменить размер / переместить» отключается.

Я пытался размонтировать его, «ленивый» размонтировать ( umount -l /dev/sda2), но это не сработало.

Скриншот от GParted:

GParted скриншот

Идан Ядгар
источник

Ответы:

49

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

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

Сжатие LVM без потери данных

Эта ветка форума предлагает следующую процедуру, в этом примере мы сокращаем раздел с 10G до 9G:

Во-первых, мы размонтируем.

sudo umount /dev/vg_blah/lv_blah

Проверьте файловую систему.

sudo e2fsck -f /dev/vg_blah/lv_blah

Измените размер файловой системы и логического тома. Делая это за один шаг, можно избежать ошибок, которые могут привести к потерям данных. (Обратите внимание, что параметр lvreduce -Lинтерпретируется Gкак 2 ^ 30 байт и gкак 10 ^ 9 байт.)

sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah

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

sudo vgreduce vg_blah /dev/sdxy

Весь кредит идет на brianmcgee .

Примечание: vgreduceпроизойдет сбой, cannot resize to xxxxx extents as later ones are allocatedесли у вас есть другой lv в конце диска - у меня был своп lv, который я удалил. См. Как сжать логические и физические тома Ubuntu LVM? за помощь в этой ситуации.

pzkpfw
источник
1
e2fsck -f /dev/vg_blah/lv_blahвозвращает: «e2fsck: устройство или ресурс заняты при попытке открыть / dev / sda2 файловую систему, смонтированную или открытую исключительно другой программой?», то же самое с resize2fs ...
Идан Ядгар
12
Ответ отсутствует, как изменить размер физического тома. Кроме того, я настоятельно рекомендую объединить два шага изменения размера в один с lvreduce -r.
Flimm
4
Кроме того , вы должны понимать , что 1Gв lvreduceэто 1000000000 байт, тогда как resize2fsэто gibibyte. Если вы хотите передать 1 гибибайт lvreduce, используйте 1gвместо этого.
Flimm
1
Вы не используете vgreduce; это для удаления PV из группы томов.
psusi
2
Я сильно подозреваю, что lvreduceиспользует G = gibibyte в дифференциальном режиме. Это, безусловно, в абсолютном режиме. Его справочные страницы плохо написаны и не объясняют, что означают их единицы, что я считаю граничащим с преступной халатностью.
Urhixidur
45

Вы можете сжать / расширить логический том очень легко с помощью инструмента графического интерфейса пользователя: system-config-lvm. Поскольку system-config-lvmне поставляется предварительно установленным, после загрузки с live-cd, вы должны установить его:

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install system-config-lvm

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

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

Теперь измените параметры, как вы хотите!

Окно «Изменить логический том»

Хорошая вещь в system-config-lvmтом, что она не позволит вам двигаться вперед, если размер нового раздела будет меньше, чем все ваши существующие данные вместе взятые (я только что попробовал это и видел сам).

Рекомендации:

  1. How-To Geek учебник (это происхождение изображений).
  2. Полное руководство Red Hat для программы.
Цао Минь Ту
источник
2
Графический интерфейс определенно является подходящим вариантом, однако вам, вероятно, потребуется запустить его с живого CD.
Майк
10
почему system-config-lvmрискованнее чем lvresizeили lvresize -r?
Thufir
1
Вы также можете попробовать blivet-gui ( github , Ubuntu PPA ), менеджер разделов следующего поколения, который обрабатывает диски LVM.
Bain
5
Имейте в виду, что system-config-lvm использует единицы измерения Power-of-1024, несмотря на использование (неправильной) формулировки «гигабайт». Это действительно должно делать как palimpsest(иначе Дисковая Утилита) и определять его значение в однозначных байтах.
Urhixidur
4
@Suncatcher 17.10 и 18.04 вы должны добавить репозиторий Xenial. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
M93A
24

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

Это все шаги, необходимые для изменения размера раздела LVM или LVM2:

sudo lvresize --verbose --resizefs -L -150G /dev/mapper/ubuntu

sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5

Если вторая команда выдает что-то вроде этого:

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

Затем вы должны переставить нераспределенное пространство в конце LVM. Это означает, что после раздела root и swap_1. Итак, сначала вам нужно проверить информацию о физических томах, используя следующую команду:

sudo pvs -v --segments /dev/sda5

Это покажет вывод как:

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www

Обратите внимание на yyy-www . Используйте следующую команду для удаления внешней фрагментации:

sudo pvmove --alloc anywhere /dev/sda5:yyy-www

Теперь давайте посмотрим, как это происходит:

sudo pvs -v --segments /dev/sda5

Это покажет вывод как (обратите внимание на изменения):

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free

После этого используйте GParted и измените размер LVM до максимально используемой площади, а остальное будет в нераспределенном пространстве. Наслаждаться...

UJJAL
источник
16

Я бы порекомендовал другой инструмент с графическим интерфейсом - KVPM . Он сочетает в себе функциональность GParted и system-config-lvm. Более того, он допускает некоторые операции с живыми (монтируемыми) разделами, которые не разрешает system-config-lvm. Однако для уменьшения объема том должен быть размонтирован.

введите описание изображения здесь введите описание изображения здесь

Начиная с Ubuntu 12.04, он находится в хранилище вселенных, поэтому просто sudo apt-get install kvpm

Примечание: запустите его с правами root sudo kvpm

Кос
источник
его нет в репозитории вселенной:E: Unable to locate package kvpm
Джефф Пакетт
Это сработало для меня, когда «system-config-lvm» не загружал никакие подключенные устройства / диски / файловые системы. С дополнительным бонусом: не нужно загружать и дополнительный репозиторий и быть предварительно настроенным на моей машине с Ubuntu. Кроме того, работал над Gparted, так как это было связано с тем, что файловая система слишком сильно уменьшалась. (Я изменяю размер карты RetroOrangepi SD с 32 ГБ до 8 ГБ для целей резервного копирования)
BiTinerary
Выглядит хорошо, подумал, что может
потребоваться
12

Только последняя версия Gparted (0.14) поддерживает изменение размера физических томов LVM. Версия, которая поставляется с Ubuntu 12.10 или 13.04, не поддерживает ее.

Вот как изменить размер физического тома LVM:

  1. Если группа томов, связанная с физическим томом LVM, не имеет достаточно нераспределенного пространства, вам потребуется создать ее, уменьшив логический том. Посмотрите на ответ bigbadonk420, чтобы узнать, как это сделать. Вы также можете использовать диски GNOME (включены в Ubuntu) для некоторых шагов, если вы предпочитаете графический интерфейс.

  2. Запишите последний образ .iso с веб-сайта GParted и запишите его на компакт-диск или вставьте его на USB-накопитель. Загрузитесь с компакт-диска или USB-накопителя. Кроме того, вы можете скомпилировать последнюю версию GParted из исходного кода.

  3. Используйте GParted для изменения размера физического тома LVM. GParted не позволит вам уменьшить физический том LVM до размера, меньшего, чем позволяет нераспределенное пространство.

Флимм
источник
Спасибо, Флимм. Я ожидал, что 12.10 получит достаточно свежую версию gparted. Ваш ответ указал мне в правильном направлении.
Мартейн Химельс
1
Я получил последнюю версию gparted, но она не позволяет мне изменять размеры разделов ... У меня есть / dev / sda2 типа ext2 и, соответственно, / dev / sda5 типа lvm2. Но gparted говорит, что минимальный и максимальный размеры одинаковы, и поэтому не позволяет мне их менять ... :-(
Пол
Или использовать pvresizeнабор LVM2, верно?
203967
@ Пол, ты решил это? У меня точно такая же проблема: S
Кастибланко
@Castiblanco Я не решил эту проблему, в итоге я вытер все вещи и переустановил без LVM. Для меня один урок: не используйте LVM для стандартных настольных установок.
Пол
9

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

ПРИМЕЧАНИЕ: вместо использования gpartedвам, вероятно, лучше использовать system-config-lvm. В следующий раз я бы использовал это вместо ... Моя версия gparted была 0.18.

  1. Сначала я как можно gpartedбольше расширял корневой раздел. К моему удивлению, он расширил только физические размеры и ничего не сделал для логической части. Так что df -kкоманда сказала, что диск был полон еще.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootрасширяет логический раздел, насколько это возможно. Не нужно проверять и вычислять ГБ или блоки различными способами.
  3. resize2fs /dev/ubuntu-vg/root затем третий шаг, который я сделал: он расширяет файловую систему до размера логического раздела.

Последний шаг можно объединить со вторым:

lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root

Тимо Рийконен
источник
Это позволяет уменьшить логический том, но вопрос ОП заключается в том, чтобы уменьшить физический том.
Стефан
ты спас мне жизнь
Quang Hà
1

В дополнение к @ bigbadonk420 «S ответ , вместо того , чтобы делать следующее:

resize2fs -p /dev/vg_blah/lv_blah 9G
lvreduce -L -1G /dev/vg_blah/lv_blah

Делать:

lvreduce -r -L 9G /dev/vg_blah/lv_blah

Обратите внимание, -rчто сокращает файловую систему одновременно и является безопасным.

eyeinsky
источник
Но это не уменьшает физический объем.
Стефан
0

Предупреждение о наиболее проголосовавшем ответе : НЕ уничтожать новую установку по умолчанию с опцией LVM (14.04 Trusty Tahr), 1) прочитать всю страницу, 2) удалить swap 3) и, вероятно, изменить команду для «Уменьшить размер логической части». громкость "вот так:

lvreduce -L -1g /dev/vg_blah/lv_blah

Я настоятельно рекомендую system-config-lvm.

оборота user293759
источник
Опять же, ОП хочет уменьшить физический объем.
Стефан
0

Чтобы сделать это с помощью GParted, щелкните правой кнопкой мыши на dev / sda2 (который вы хотите уменьшить). Выберите «Деактивировать». Теперь вы сможете изменить размер раздела lvm.

Обновление: @Cao Min Tu решение намного лучше. У меня было несколько проблем с GParted после изменения размера

Junaid
источник