Вы здесь

Изменение размера тома в LVM2

Так вышло, что на одном из файловых серверов, у меня есть 3 логических раздела, созданные с помощью LVM2.
На разделе с системными файлам root стало заканчиваться свободное место, и я задумался об увеличении данного раздела. Используемая файловая система Ext4.

Для начала смотрим список логических разделов в системе:

lvdisplay

Сокращенный вывод примерно такой:

  --- Logical volume ---
  LV Path                /dev/debian7/root
  LV Name                root
  VG Name                debian7
  LV UUID                jhHPG1-36ZH-azBd-a3Nr-WTDu-W1Cu-MuSF04
  LV Write Access        read/write
  LV Creation host, time debian7, 2013-07-11 20:31:51 +0600
  LV Status              available
  # open                 1
  LV Size                10.04 GiB
 
 --- Logical volume ---
  LV Path                /dev/debian7/swap_1
  LV Name                swap_1
  VG Name                debian7
  LV UUID                RR7LZQ-QjAK-Ri1a-XQeT-AHvS-aVXC-6D0Hsd
  LV Write Access        read/write
  LV Creation host, time debian7, 2013-07-11 20:31:51 +0600
  LV Status              available
  # open                 0
  LV Size                15.00 GiB
 
--- Logical volume ---
  LV Path                /dev/debian7/home
  LV Name                home
  VG Name                debian7
  LV UUID                Ud0k3v-EEaB-i2W5-dJWx-Nzr6-16py-vACXO5
  LV Write Access        read/write
  LV Creation host, time debian7, 2013-07-11 20:31:52 +0600
  LV Status              available
  # open                 1
  LV Size                350.00 GiB

Отключим своп, чтобы впоследствии не получить ошибку:

swapoff /dev/debian7/swap_1

Уменьшим раздел со свопом с 15 до 10 гигабайт:

lvresize -L 10G /dev/debian7/swap_1

параметр -L задает размер раздела, в нашем случае это 10 гигабайт. Вместо lvresize можно использовать команду lvreduce:

lvreduce -L 10G /dev/debian7/swap_1

Теперь увеличим размер раздела /dev/debian7/root на 5 освободившихся гигов:

e2fsck -f /dev/debian7/root  - проверяем раздел root на ошибки
lvextend -L +5G /dev/debian7/root   - увеличиваем размер логического тома
resize2fs /dev/debian7/root  - увеличиваем размер файловой системы

Вместо lvextend можно использовать lvresize

lvresize -L +5G /dev/debian7/root

После этого проверяем изменения размеров логических томов:

lvdisplay
  --- Logical volume ---
  LV Path                /dev/debian7/root
  LV Name                root
  VG Name                debian7
  LV UUID                jhHPG1-36ZH-azBd-a3Nr-WTDu-W1Cu-MuSF04
  LV Write Access        read/write
  LV Creation host, time debian7, 2013-07-11 20:31:51 +0600
  LV Status              available
  # open                 1
  LV Size                15.04 GiB
 
 --- Logical volume ---
  LV Path                /dev/debian7/swap_1
  LV Name                swap_1
  VG Name                debian7
  LV UUID                RR7LZQ-QjAK-Ri1a-XQeT-AHvS-aVXC-6D0Hsd
  LV Write Access        read/write
  LV Creation host, time debian7, 2013-07-11 20:31:51 +0600
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
 
--- Logical volume ---
  LV Path                /dev/debian7/home
  LV Name                home
  VG Name                debian7
  LV UUID                Ud0k3v-EEaB-i2W5-dJWx-Nzr6-16py-vACXO5
  LV Write Access        read/write
  LV Creation host, time debian7, 2013-07-11 20:31:52 +0600
  LV Status              available
  # open                 1
  LV Size                350.00 GiB

Как видим, все получилось "на лету", без остановки системы и без перезагрузки.

Комментарии

Я по вашей инструкции отрезал от /home и добавил к /tmp. Но после перезагрузки /home не монтируется...Что делать?

Посмотрите в /etc/fstab прописаны параметры монтирования каталога /home?

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

В общем - пришлось отформатировать (

В целом странно, не должно быть такого. А какая файловая система использовалась?

Я просто первый раз вообще делал. Тут дело наверно вот в чем. Нужно было с начало сузить фс /home, потом том. А расширять, как тут написано. Теперь у меня голый /home и не могу войти под старым юзером. Что делать?

ПО идее как сузить в статье тоже расписано. У вас /home и /tmp в одной VG (VolumeGroup)? Если да, то по данной инструкции все должно получиться. Но т.к у вас уже не получилось, и вы сейчас под юзером не можете зайти в раздел /home, попробуйбе залогиниться из под root, и сменить пароль у простого пользователя - команда passwd username

Надеюсь, вы не забыли предварительно уменьшить файловую систему тома /home.
корректная последовательность:
1. завершаем логин пользователем, логинимся администратором, убеждаемся, что на /home нет открытых файлов. Либо загружаемся с liveUSB
2. отмонтируем /home
3. уменьшаем размер файловой системы тома home
4. уменьшаем размер тома home

Crazy Script, вы забыли написать, что предварительно нужно исключить том из свопинга:
swapoff /dev/debian7/swap_1
Иначе при уменьшении тома можно получить kernel panic

Спасибо, поправил в статье.