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

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

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

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

GParted скриншот

9 ответов

Похоже, что в 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? за помощь в этой ситуации.

Вы можете очень легко сжать / расширить логический том с помощью инструмента с графическим интерфейсом: 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 для программы.

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

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

ПРИМЕЧАНИЕ: вместо использования 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

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

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

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

Только последняя версия 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 до размера, меньшего, чем позволяет нераспределенное пространство.

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

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 который уменьшает файловую систему одновременно и является безопасным.

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

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

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

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

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

Другие вопросы по тегам