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

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск
Страница находится в работе
Ответственный: не указан
Внимание
При всех действиях с файловой системой рекомендуется создать резервную копию данных
При установке RFRemix выбирая разметку диска отличную от "<уточнить>" инсталятор создаёт примерно следующую разбивку
/boot 200M ext4
VolGroup 100Gb 
 -lvm_root 98Gb / ext4
 -lvm_swap 2Gb swap

что в некоторых случаях бывает крайне неудобно. ---

Например, на каждом созданном разделе linux(в частности имеется ввиду фс ext2|3|4) "бронируется" под нужды пользователя root 5% от размера раздела. В нашем случае если корневой раздел будет полностью заполнен, любой пользователь отличный от root не сможет ввойти в систему. Или например, Вы выполняете обновление дистрибутива с 14 до 15 версии в процессе чего происходят какие-либо сбои, которые Вы не в силах исправить. Некоторым пользователям в данном случае легче установить ОС заново, но при этом не потерять свою информацию. В любом случае не зависимо от приведённых примеров рассмотрим случай когда необходимо уменьшить размер любого раздела входящего в состав группы LVM.

Перед изменением размера раздела его необходимо отмонтировать, но учитывая что редактировать нам надо корневой раздел, лучше загрузится с LiveCD/LiveDVD или с установочного диска в режиме rescue (для этого выбрать соответствующий пункт меню загрузки с диска).

При работе с rescue-диска, к командам LVM надо впереди добавять lvm, либо выполнять их из встроенного интерпретатора lvm:

# lvm pvs
либо
# lvm
lvm> pvs

Проверяем, определился или нет, системой наша LVM группа.

# pvs
  PV         VG         Fmt  Attr PSize   PFree  
  /dev/sda1  VolGroup   lvm2 a-   100,00g      0
# vgs
  VG         #PV #LV #SN Attr   VSize   VFree  
  VolGroup   1   2   0   wz--n- 100,00g      0
# lvs
  LV         VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv_root    VolGroup   -wi-a-  98,00g
  lv_swap    VolGroup   -wi-a-   2,00g

lvreduce урезает размер LVM раздела. Работает она следующим образом, параметр -L указывает на изменение размера раздела, здесь же есть 2 варианта: указание размера и относительное значение, со знаком + или -. Например, -L 83G урежет размер до 83G(то бишь lvm_root станет 83Gb вместо 98Gb), соответственно -L -15G или -L +15G уменьшит или увеличит размер на указанный (lvm_root станет 98G минус 15G или 98G плюс 15G).

Итак, нам надо уменьшить размер раздела следующей командой:

# lvreduce -r -L -15G /dev/Volgroup/lv_root
Наличие опции -r указывает, что надо также изменить размер файловой системы, без неё данные будут утеряны.

Успешность выполнения команды lvreduce проверяется просмотром свободного места в VolGroup.

# vgs

Свободного места должно быть 83G.


Создаём новый раздел для директории home

 lvcreate -L 83GB -n lv_home VolGroup 

и файловую систему на нём.

 mkfs.ext4 -L home /dev/VolGroup/lvm_home

Добавляем запись о разделе в файл /etc/fstab

 /dev/VolGroup/lvm_home  /home   etx4 defaults 1 2 
Перенести всю информацию из директории /home относительно раздела / (корневого раздела) в /home вновь созданого раздела (он будет пустой, если не считать системной директории lost+found)

Для этого:

mkdir /mnt/{root,home}
mount -t ext4 /dev/VolGroup/lv_root /mnt/root
mount -t ext4 /dev/VolGroup/lv_home /mnt/home
mv -v /mnt/root/home /mnt/home

загружаем нашу ОС и проверяем логические разделы LVM

lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_root
  VG Name                VolGroup
       .....
  LV Size                15,00 GiB
       .....
   
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_home
  VG Name                VolGroup
       .....
  LV Size                83,00 GiB
       .....
   
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_swap
  VG Name                VolGroup
       .....
  LV Size                2,00 GiB
       .....