Имеется машина с одним диском, который разбит на два LVM-раздела —
root
и swap
:
root@ubuntu:/# lvdisplay -c /dev/ubuntu-vg/root:ubuntu-vg:3:1:-1:1:59809792:7301:-1:0:-1:252:0 /dev/ubuntu-vg/swap_1:ubuntu-vg:3:1:-1:2:2097152:256:-1:0:-1:252:1
Задача: уменьшить root
, создать home
в отдельном разделе.
Загружаемся с любого LiveCD (тут Arch), логинимся, проверяем разделы:
[simterm]
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 28.5G 0 lvm └─ubuntu--vg-swap_1 254:1 0 1G 0 lvm sr0 11:0 1 476M 0 rom /run/archiso/bootmnt
[/simterm]
Далее:
- уменьшим файловую систему на
/root
- уменьшим раздел
ubuntu--vg-root
до 10 гиг - создадим раздел
ubuntu--vg-home
на всё свободное место - отформатируем его и перенесём данные из старого
/home
на разделе vg-root в новый хомик - обновим fstab
Устанавливаем lvm2
:
[simterm]
# pacman -S lvm2
[/simterm]
Проверяем:
[simterm]
# lvscan ACTIVE '/dev/ubuntu-vg/root' [28.52 GiB] inherit ACTIVE '/dev/ubuntu-vg/swap_1' [1.00 GiB] inherit
# ls -l /dev/mapper/ total 0 crw------- 1 root root 10, 236 Feb 27 09:30 control lrwxrwxrwx 1 root root 7 Feb 27 09:30 ubuntu--vg-root -> ../dm-0 lrwxrwxrwx 1 root root 7 Feb 27 09:30 ubuntu--vg-swap_1 -> ../dm-1
[/simterm]
Если разделы не активны — дёргаем vgchange
:
[simterm]
# vgchange -a y
[/simterm]
vg-root
находится на устройстве /dev/dm-0
:
[simterm]
[root@archiso ~]# file /dev/dm-0 /dev/dm-0: block special (254/0)
[/simterm]
Выполняем проверку целостности файловой системы (без этого resize2fs
не даст выполнить изменения):
[simterm]
[root@archiso ~]# e2fsck -f /dev/dm-0 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/dm-0: 130010/1872304 files (0.3% non-contiguous), 670621/7476224 blocks
[/simterm]
Уменьшаем ФС:
[simterm]
[root@archiso ~]# resize2fs /dev/mapper/ubuntu--vg-root 10G
[/simterm]
(resize2fs
по памяти сюда записал, но вроде верно)
С помощью lvreduce — уменьшаем root
:
[simterm]
[root@archiso ~]# lvreduce -L 10G /dev/mapper/ubuntu--vg-root WARNING: Reducing active logical volume to 10.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 28.52 GiB (7301 extents) to 10.00 GiB (2560 extents). Logical volume ubuntu-vg/root successfully resized.
[/simterm]
Собственно — тут можно смонтировать раздел, и убедиться что всё на месте:
[simterm]
[root@archiso ~]# mount /dev/mapper/ubuntu--vg-root /mnt/ [root@archiso ~]# ls -l /mnt/ total 104 drwxr-xr-x 2 root root 4096 Feb 27 10:25 bin drwxr-xr-x 2 root root 4096 Feb 27 10:25 boot drwxr-xr-x 4 root root 4096 Feb 27 10:25 dev drwxr-xr-x 89 root root 4096 Feb 27 10:25 etc drwxr-xr-x 3 root root 4096 Feb 27 10:25 home lrwxrwxrwx 1 root root 32 Mar 8 2017 initrd.img -> boot/initrd.img-4.4.0-66-generic lrwxrwxrwx 1 root root 32 Feb 25 02:01 initrd.img.old -> boot/initrd.img-4.4.0-64-generic drwxr-xr-x 22 root root 4096 Feb 27 10:25 lib drwxr-xr-x 2 root root 4096 Feb 27 10:25 lib64 drwx------ 2 root root 16384 Feb 24 14:27 lost+found ...
[/simterm]
Размер раздела:
[simterm]
[root@archiso ~]# df -h Filesystem Size Used Avail Use% Mounted on dev 479M 0 479M 0% /dev run 499M 89M 411M 18% /run /dev/sr0 476M 476M 0 100% /run/archiso/bootmnt cowspace 256M 101M 156M 40% /run/archiso/cowspace /dev/loop0 366M 366M 0 100% /run/archiso/sfs/airootfs airootfs 256M 101M 156M 40% / tmpfs 499M 0 499M 0% /dev/shm tmpfs 499M 0 499M 0% /sys/fs/cgroup tmpfs 499M 0 499M 0% /tmp tmpfs 499M 1.3M 498M 1% /etc/pacman.d/gnupg tmpfs 100M 0 100M 0% /run/user/0 /dev/mapper/ubuntu--vg-root 9.8G 2.0G 7.3G 22% /mnt
[/simterm]
Проверяем разделы:
[simterm]
[root@archiso ~]# pvdisplay --- Physical volume --- PV Name /dev/sda5 VG Name ubuntu-vg PV Size 29.52 GiB / not usable 2.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 7557 Free PE 4741 Allocated PE 2816 PV UUID lznlIM-pUlN-l0Hc-rERJ-TT8p-uxV2-F19F8H
[root@archiso ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x05bb6332 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 999423 997376 487M 83 Linux /dev/sda2 1001470 62912511 61911042 29.5G 5 Extended /dev/sda5 1001472 62912511 61911040 29.5G 8e Linux LVM
[/simterm]
Тут /dev/sda5
— наш physical volume, который содержит volume group ubuntu-vg
:
[simterm]
[root@archiso ~]# lvdisplay ubuntu-vg --- Logical volume --- LV Path /dev/ubuntu-vg/root LV Name root VG Name ubuntu-vg LV UUID 05GNA5-V6Wk-kywP-IrZX-Ek7v-8CvV-1ZqOwR LV Write Access read/write LV Creation host, time ubuntu, 2017-02-24 14:27:07 +0000 LV Status available # open 1 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Path /dev/ubuntu-vg/swap_1 LV Name swap_1 VG Name ubuntu-vg LV UUID KHyywu-k8UI-MVFf-Z6Wq-h2Ra-fWdo-RCRqSC LV Write Access read/write LV Creation host, time ubuntu, 2017-02-24 14:27:07 +0000 LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1
[/simterm]
В группе ubuntu-vg
создаём logical volume для будущего home
:
[simterm]
[root@archiso ~]# lvcreate -l 100%FREE -n home ubuntu-vg Logical volume "home" created.
[/simterm]
Проверяем:
[simterm]
[root@archiso ~]# lvdisplay -c /dev/ubuntu-vg/root:ubuntu-vg:3:1:-1:1:20971520:2560:-1:0:-1:254:0 /dev/ubuntu-vg/swap_1:ubuntu-vg:3:1:-1:0:2097152:256:-1:0:-1:254:1 /dev/ubuntu-vg/home:ubuntu-vg:3:1:-1:0:38838272:4741:-1:0:-1:254:2
[/simterm]
Создаём ФС:
[simterm]
[root@archiso ~]# mkfs.ext4 /dev/ubuntu-vg/home mke2fs 1.43.4 (31-Jan-2017) Creating filesystem with 4854784 4k blocks and 1215840 inodes Filesystem UUID: 62b8a624-9b90-4c68-aaa6-15f274c25eff Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
[/simterm]
Отмонтируем root
, и монтируем два раздела обратно:
[simterm]
# umount /dev/mapper/ubuntu--vg-root
[root@archiso ~]# mkdir /mnt/home [root@archiso ~]# mount /dev/ubuntu-vg/root /mnt/ [root@archiso ~]# mount /dev/ubuntu-vg/home /mnt/home/
[/simterm]
Упс… А данные переносить?
Монтируем home
в другой каталог:
[simterm]
[root@archiso ~]# umount /dev/ubuntu-vg/home [root@archiso ~]# ls -l /mnt/home/ total 4 drwxr-xr-x 3 1000 1000 4096 Feb 27 10:25 jageradmin [root@archiso ~]# mkdir /homenew [root@archiso ~]# mount /dev/ubuntu-vg/home /homenew/
[/simterm]
Копируем данные:
[simterm]
[root@archiso ~]# cp -r /mnt/home/* /homenew/ [root@archiso ~]# ls -l /homenew/ total 20 drwxr-xr-x 3 root root 4096 Feb 27 10:47 jageradmin drwx------ 2 root root 16384 Feb 27 10:42 lost+found
[/simterm]
Перемонтируем заново:
[simterm]
[root@archiso ~]# umount /dev/ubuntu-vg/home [root@archiso ~]# mount /dev/ubuntu-vg/home /mnt/home/ [root@archiso ~]# ls -l /mnt/home/ total 20 drwxr-xr-x 3 root root 4096 Feb 27 10:47 jageradmin drwx------ 2 root root 16384 Feb 27 10:42 lost+found
[/simterm]
Последний шаг — обновить /etc/fstab
на старом разделе, что бы он примонтировал home
с другого раздела.
Сейчас он выглядит так:
[simterm]
[root@archiso ~]# cat /mnt/etc/fstab | grep -v \# /dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1 UUID=802aaac0-73a7-48e5-9e56-0debc61e0ca6 /boot ext2 defaults 0 2 /dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0
[/simterm]
В конец файла добавляем:
... # new home /dev/mapper/ubuntu--vg-home /home ext4 errors=remount-ro 0 2
Перезагружаемся, проверяем:
[simterm]
setevoy@ubuntu:/$ ls -l /home/ total 20 drwxr-xr-x 3 root root 4096 Feb 27 12:47 jageradmin drwx------ 2 root root 16384 Feb 27 12:42 lost+found setevoy@ubuntu:/$ ls -l /home/jageradmin/ total 0
setevoy@ubuntu:/$ mount | grep vg /dev/mapper/ubuntu--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered) /dev/mapper/ubuntu--vg-home on /home type ext4 (rw,relatime,errors=remount-ro,data=ordered)
[/simterm]
Готово.