|
|||||||
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@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 С помощью 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 Дальнейшие шаги:
Начинаем с /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 Готово: |
|||||||
|
|||||||
|