MyTetra Share
Делитесь знаниями!
Linux: LVM — уменьшить home, увеличить root
Время создания: 30.11.2020 09:28
Раздел: INFO - System - Linux - LVM
Запись: wwwlir/Tetra/master/base/1606699736vgr85el15u/text.html на raw.githubusercontent.com

Сначала — выполню на виртуалке (всегда советую так делать), но наоборот — тут надо уменьшить root, а потом увеличить home.

Имеется машина с тремя разделами LVM:

root@archiso ~ # lsblk 
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0                   7:0    0 365.4M  1 loop /run/archiso/sfs/airootfs
sda                     8:0    0    30G  0 disk 
├─sda1                  8:1    0   487M  0 part 
├─sda2                  8:2    0     1K  0 part 
└─sda5                  8:5    0  29.5G  0 part 
  ├─ubuntu--vg-root   254:0    0    10G  0 lvm  
  ├─ubuntu--vg-swap_1 254:1    0     1G  0 lvm  
  └─ubuntu--vg-home   254:2    0  18.5G  0 lvm  
sr0                    11:0    1   476M  0 rom  /run/archiso/bootmnt

Задача — уменьшить ubuntu--vg-root, а на освободившееся место — увеличить ubuntu--vg-home.

Система Ubuntu, машина сейчас запущена под Arch.

Проверяем разделы, все должны быть ACTIVE:

[root@archiso ~]# lvscan

ACTIVE            '/dev/ubuntu-vg/root' [10.00 GiB] inherit

ACTIVE            '/dev/ubuntu-vg/swap_1' [1.00 GiB] inherit

ACTIVE            '/dev/ubuntu-vg/home' [18.52 GiB] inherit

Содержание

/root

Начнём с root.

Порядок действий:

  1. уменьшить размер файловой системы
  2. уменьшить раздел logical volume

Важно не перепутать порядок действий. Один раз сонный делал такие изменения — убил раздел, к счастью — тоже на витуалке.

Проверяем целостность ФС:

[root@archiso ~]# e2fsck -f /dev/ubuntu-vg/root

e2fsck 1.43.4 (31-Jan-2017)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/ubuntu-vg/root: 97684/654080 files (0.2% non-contiguous), 506679/2621440 blocks

Уменьшаем размер файловой системы до 5 GB:

[root@archiso ~]# resize2fs /dev/ubuntu-vg/root 5G

resize2fs 1.43.4 (31-Jan-2017)

Resizing the filesystem on /dev/ubuntu-vg/root to 1310720 (4k) blocks.

The filesystem on /dev/ubuntu-vg/root is now 1310720 (4k) blocks long.

Уменьшаем размер тома до 5gb:

[root@archiso ~]# lvreduce -L 5G /dev/ubuntu-vg/root

WARNING: Reducing active logical volume to 5.00 GiB.

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce ubuntu-vg/root? [y/n]: y

Size of logical volume ubuntu-vg/root changed from 10.00 GiB (2560 extents) to 5.00 GiB (1280 extents).

Logical volume ubuntu-vg/root successfully resized.

Проверяем:

[root@archiso ~]# lsblk /dev/sda5

NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda5                  8:5    0 29.5G  0 part

├─ubuntu--vg-root   254:0    0    5G  0 lvm

├─ubuntu--vg-swap_1 254:1    0    1G  0 lvm

└─ubuntu--vg-home   254:2    0 18.5G  0 lvm

/home

С помощью lvextend — увеличиваем размер ubuntu--vg-home на 5G:

[root@archiso ~]# lvextend -L +5G /dev/ubuntu-vg/home

Size of logical volume ubuntu-vg/home changed from 18.52 GiB (4741 extents) to 23.52 GiB (6021 extents).

Logical volume ubuntu-vg/home successfully resized.

Проверяем ФС:

[root@archiso ~]# e2fsck -f /dev/ubuntu-vg/home

e2fsck 1.43.4 (31-Jan-2017)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/ubuntu-vg/home: 11/1215840 files (0.0% non-contiguous), 120370/4854784 blocks

И выполняем resize. Не укзываем размер, что бы занять 100% свободного места:

[root@archiso ~]# resize2fs -p /dev/ubuntu-vg/home

resize2fs 1.43.4 (31-Jan-2017)

Resizing the filesystem on /dev/ubuntu-vg/home to 6165504 (4k) blocks.

Begin pass 1 (max = 40)

Extending the inode table     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-

The filesystem on /dev/ubuntu-vg/home is now 6165504 (4k) blocks long.

Проверяем:

[root@archiso ~]#  /dev/sda5

NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda5                  8:5    0 29.5G  0 part

├─ubuntu--vg-root   254:0    0    5G  0 lvm

├─ubuntu--vg-swap_1 254:1    0    1G  0 lvm

└─ubuntu--vg-home   254:2    0 23.5G  0 lvm

Бутаемся в Ubuntu и проверяем:

jmadmin@ubuntu:/$ lsblk  /dev/sda5

NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda5                  8:5    0 29.5G  0 part

├─ubuntu--vg-root   252:0    0    5G  0 lvm  /

├─ubuntu--vg-swap_1 252:1    0    1G  0 lvm  [SWAP]

└─ubuntu--vg-home   252:2    0 23.5G  0 lvm  /home

Готово.

А теперь — повторяем это на рабочей машине с Arch Linux, без бекапа 🙂

Нет, основное всё бекапится в AWS S3 скриптом, но будет неприятно убить домашний раздел. Или корневой.

Загружаемся с флешки с Arch-ISO, проверяем разделы:

[root@archiso ~]# lvscan

ACTIVE            '/dev/vg_arch/root' [10.00 GiB] inherit

ACTIVE            '/dev/vg_arch/home' [437.76 GiB] inherit

Дальнейшие шаги:

  1. уменьшить файловую систему home до 400 гб
  2. уменьшить home logical volume до 400 гб
  3. увеличить logical volume root на 100% освободившегося места
  4. увеличить файловую систему root на 100% освободившегося места

Начинаем с /dev/vg_arch/home:

[root@archiso ~]# e2fsck -f /dev/vg_arch/home

e2fsck 1.43.4 (31-Jan-2017)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/vg_arch/home: 869974/28696576 files (0.3% non-contiguous), 49206901/114755584 blocks

Уменьшаем размер до 400 гб:

[root@archiso ~]# resize2fs /dev/vg_arch/home 400G

resize2fs 1.43.4 (31-Jan-2017)

Resizing the filesystem on /dev/vg_arch/home to 104857600 (4k) blocks.

The filesystem on /dev/vg_arch/home is now 104857600 (4k) blocks long.

Уменьшаем размер LV до 400 гб:

[root@archiso ~]# lvreduce -L 400G /dev/vg_arch/home

WARNING: Reducing active logical volume to 400.00 GiB.

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vg_arch/home? [y/n]: y

Size of logical volume vg_arch/home changed from 437.76 GiB (112066 extents) to 400.00 GiB (102400 extents).

Logical volume vg_arch/home successfully resized.

Монтируем, проверяем:

[root@archiso ~]# mount /dev/vg_arch/home /mnt/

[root@archiso ~]# ls -l /mnt/setevoy/

total 88

-rw-r--r--  1 1000 1000  3288 Mar 18 09:39  1

drwxrwxr-x 11 1000 1000  4096 Mar 17 10:01  Backups

drwxr-xr-x  2 1000 1000  4096 Feb 27 12:19  bin

drwxrwxr-x  3 1000 1000  4096 Dec 21 11:06  Books

drwxr-xr-x  2 1000 1000  4096 Dec 27 16:10  Desktop

drwxr-xr-x  4 1000 1000  4096 Dec 21 10:56  Documents

drwxr-xr-x  4 1000 1000  4096 Mar 17 12:35  Downloads

drwx------ 38 1000 1000  4096 Mar 18 09:14  Dropbox

drwxr-xr-x  3 1000 1000  4096 Feb  8 09:21  KeyPass

drwxr-xr-x  3 1000 1000  4096 Feb 28 12:36  lib

drwxr-xr-x 56 1000 1000  4096 Dec 21 10:56  Music

drwxr-xr-x  3 1000 1000  4096 Mar  8 11:52  OS

drwxr-xr-x 18 1000 1000 20480 Mar 18 08:12  Pictures

drwxr-xr-x  3 1000 1000  4096 Dec 23 12:21  PycharmProjects

drwxr-xr-x  3 1000 1000  4096 Mar  6 11:49  Scripts

drwxr-xr-x  8 1000 1000  4096 Feb 23 14:40  Temp

drwxr-xr-x  6 1000 1000  4096 Mar 18 12:16 'VirtualBox VMs'

drwxr-xr-x  4 1000 1000  4096 Dec 26 15:59  Work

Всё на месте.

Переходим к root:

[root@archiso ~]# e2fsck -f /dev/vg_arch/root

e2fsck 1.43.4 (31-Jan-2017)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

/lost+found not found.  Create<y>? yes

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/vg_arch/root: ***** FILE SYSTEM WAS MODIFIED *****

Увеличиваем LV на 100%:

[root@archiso ~]# lvextend -l +100%FREE /dev/vg_arch/root

Size of logical volume vg_arch/root changed from 10.00 GiB (2560 extents) to 47.76 GiB (12226 extents).

Logical volume vg_arch/root successfully resized.

Проверяем:

[root@archiso ~]# lvdisplay /dev/vg_arch/root

--- Logical volume ---

LV Path                /dev/vg_arch/root

LV Name                root

VG Name                vg_arch

LV UUID                hOB0M9-dFy4-C0wI-Brwe-faqp-5wZr-tzkQFk

LV Write Access        read/write

LV Creation host, time archiso, 2016-12-21 09:29:33 +0000

LV Status              available

open                 0

LV Size                47.76 GiB

Увеличиваем ФС root на 100% (просто не указываем resize2fs размер):

[root@archiso ~]# resize2fs -p /dev/vg_arch/root

resize2fs 1.43.4 (31-Jan-2017)

Resizing the filesystem on /dev/vg_arch/root to 12519424 (4k) blocks.

Begin pass 1 (max = 303)

Extending the inode table     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

The filesystem on /dev/vg_arch/root is now 12519424 (4k) blocks long.

Отмонтируем home, монтируем root, проверяем:

[root@archiso ~]# umount /dev/vg_arch/home

[root@archiso ~]# mount /dev/vg_arch/root /mnt/

[root@archiso ~]# ls -l /mnt/

total 60

lrwxrwxrwx  1 root root    7 Dec  5 23:43 bin -> usr/bin

drwxr-xr-x  2 root root 4096 Dec 21 09:33 boot

drwxr-xr-x  2 root root 4096 Dec 22 12:27 dev

drwxr-xr-x 75 root root 4096 Mar 18 09:13 etc

drwxr-xr-x  2 root root 4096 Dec 22 12:25 home

lrwxrwxrwx  1 root root    7 Dec  5 23:43 lib -> usr/lib

lrwxrwxrwx  1 root root    7 Dec  5 23:43 lib64 -> usr/lib

drwx------  2 root root 4096 Mar 18 13:13 lost+found

drwxr-xr-x  2 root root 4096 Dec  5 23:43 mnt

drwxr-xr-x  7 root root 4096 Mar 15 08:27 opt

dr-xr-xr-x  2 root root 4096 Dec 22 12:27 proc

drwxr-x--- 10 root root 4096 Mar  1 10:15 root

drwxr-xr-x  2 root root 4096 Dec 22 12:27 run

lrwxrwxrwx  1 root root    7 Dec  5 23:43 sbin -> usr/bin

drwxr-xr-x  4 root root 4096 Dec  5 23:43 srv

dr-xr-xr-x  2 root root 4096 Dec 22 12:27 sys

drwxrwxrwt  2 root root 4096 Dec 22 12:27 tmp

drwxr-xr-x 10 root root 4096 Mar 17 12:41 usr

drwxr-xr-x 12 root root 4096 Dec 22 12:36 var

И тут всё ОК.

Перезагружаемся, проверяем:

[root@archiso ~]# umount /dev/vg_arch/root

[root@archiso ~]# reboot

Готово:

 
MyTetra Share v.0.65
Яндекс индекс цитирования