Сначала — выполню на виртуалке (всегда советую так делать), но наоборот — тут надо уменьшить
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:
[simterm]
[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
[/simterm]
Содержание
/root
Начнём с root
.
Порядок действий:
- уменьшить размер файловой системы
- уменьшить раздел logical volume
Важно не перепутать порядок действий. Один раз сонный делал такие изменения — убил раздел, к счастью — тоже на витуалке.
Проверяем целостность ФС:
[simterm]
[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
[/simterm]
Уменьшаем размер файловой системы до 5 GB:
[simterm]
[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.
[/simterm]
Уменьшаем размер тома до 5gb:
[simterm]
[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.
[/simterm]
Проверяем:
[simterm]
[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
[/simterm]
/home
С помощью lvextend
— увеличиваем размер ubuntu--vg-home
на 5G:
[simterm]
[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.
[/simterm]
Проверяем ФС:
[simterm]
[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
[/simterm]
И выполняем resize. Не укзываем размер, что бы занять 100% свободного места:
[simterm]
[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.
[/simterm]
Проверяем:
[simterm]
[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
[/simterm]
Бутаемся в Ubuntu и проверяем:
[simterm]
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
[/simterm]
Готово.
А теперь — повторяем это на рабочей машине с Arch Linux, без бекапа 🙂
Нет, основное всё бекапится в AWS S3 скриптом, но будет неприятно убить домашний раздел. Или корневой.
Загружаемся с флешки с Arch-ISO, проверяем разделы:
[simterm]
[root@archiso ~]# lvscan ACTIVE '/dev/vg_arch/root' [10.00 GiB] inherit ACTIVE '/dev/vg_arch/home' [437.76 GiB] inherit
[/simterm]
Дальнейшие шаги:
- уменьшить файловую систему
home
до 400 гб - уменьшить
home
logical volume до 400 гб - увеличить logical volume
root
на 100% освободившегося места - увеличить файловую систему
root
на 100% освободившегося места
Начинаем с /dev/vg_arch/home
:
[simterm]
[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
[/simterm]
Уменьшаем размер до 400 гб:
[simterm]
[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.
[/simterm]
Уменьшаем размер LV до 400 гб:
[simterm]
[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.
[/simterm]
Монтируем, проверяем:
[simterm]
[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
[/simterm]
Всё на месте.
Переходим к root
:
[simterm]
[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 *****
[/simterm]
Увеличиваем LV на 100%:
[simterm]
[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.
[/simterm]
Проверяем:
[simterm]
[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
[/simterm]
Увеличиваем ФС root
на 100% (просто не указываем resize2fs
размер):
[simterm]
[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.
[/simterm]
Отмонтируем home
, монтируем root
, проверяем:
[simterm]
[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
[/simterm]
И тут всё ОК.
Перезагружаемся, проверяем:
[simterm]
[root@archiso ~]# umount /dev/vg_arch/root [root@archiso ~]# reboot
[/simterm]
Готово: