Гугль располагает сотнями отличных статей, содержащих теорию о Linux LVM (Linux Volume Manager) — встроенной системе управления логическими дисками. В этой статье собран «карманный» набор команд для решения типовых задач.
На приведенной схеме наглядно изображена структура LVM
Посмотреть информацию о существующих физических разделах (PV), группах разделов (VG) и логических разделов (LV) можно с помощью команд
$ pvscan $ vgscan $ lvscan
Находим физический диск (в моем случае это будет sdc — свежедобавленный диск без разделов)
$ ls -1 /dev | grep sd sda sda1 sda2 sdb sdb1 sdc
Посмотреть информацию о разделе можно с помощью команды
$ fdisk -l /dev/sdc
Создаем раздел
$ pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created. $ dd if=/dev/zero of=/dev/sdc bs=1k count=1 1+0 записей получено 1+0 записей отправлено скопировано 1024 байта (1,0 kB), 0,00115763 c, 885 kB/c $ blockdev --rereadpt /dev/sdc $ fdisk /dev/sdc
В fdisk`е жмем n для создания нового раздела, затем p, чтобы сделать его primary. Номер раздела — 1, первый и последний сектор оставляем по умолчанию (если хотим использовать все пространство диска). Для выхода с записью изменений нажимаем w. Создастся раздел sdc1, который займет все свободное пространство sdc. Проверить можно с помощью команды:
$ ls -1 /dev | grep sdc sdc sdc1
Создаем группу томов (если добавляем несколько разделов — пишем их через пробел)
$ vgcreate vg1 /dev/sdc1
или добавляем к существующей группе томов
$ vgextend vg0 /dev/sdc1
и проверяем
$ vgscan Reading volume groups from cache. Found volume group "vg1" using metadata type lvm2
Добавим новый раздел swap
$ lvcreate -L500M -n new_swap vg1 Logical volume "new_swap" created. $ mkswap /dev/vg1/new_swap Setting up swapspace version 1, size = 511996 KiB без метки, UUID=b64aae09-ec70-4b5a-b4e2-ba0fe39ec1df $ swapon /dev/vg1/new_swap
Теперь проверим, подцепился ли новый swap раздел
$ swapon -s
И добавим его в /etc/fstab
/dev/vg1/new_swap swap swap defaults 0 0
Создадим новый раздел и смонтируем его в папку /share
$ cd / $ mkdir /share $ lvcreate -L1G -n lv_share vg1 Logical volume "lv_share" created. $ mke2fs /dev/vg1/lv_share ... Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done $ mount /dev/vg1/lv_share /share
Проверим, что новый раздел смонтировался
$ df -h | grep lv_share /dev/mapper/vg1-lv_share 1008M 1,3M 956M 1% /share
Теперь выясним UUID раздела и добавим его в fstab
$ blkid | grep lv_share /dev/mapper/vg1-lv_share: UUID="4295775f-672f-4fd4-a1ff-ef3103d82fa8" TYPE="ext2" $ vi /etc/fstab
... UUID=4295775f-672f-4fd4-a1ff-ef3103d82fa8 /share ext2 defaults 0 0
Изменить размер логического диска можно с помощью команд (предварительно отмонтировать). После внесения изменений необходимо использовать команду resize2fs!
$ lvextend -L+500M /dev/vg1/lv_share Size of logical volume vg1/lv_share changed from 1,00 GiB (256 extents) to 1,49 GiB (381 extents). Logical volume vg1/lv_share successfully resized.
$ lvreduce -L700M /dev/vg1/lv_share WARNING: Reducing active and open logical volume to 700,00 MiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce vg1/lv_share? [y/n]: y Size of logical volume vg1/lv_share changed from 1,49 GiB (381 extents) to 700,00 MiB (175 extents). Logical volume vg1/lv_share successfully resized.
$ lvresize -r -L2G /dev/vg1/lv_share ... Resizing the filesystem on /dev/mapper/vg1-lv_share to 524288 (4k) blocks. The filesystem on /dev/mapper/vg1-lv_share is now 524288 blocks long.
Удаление логических томов (предварительно удалить их из fstab)
$ lvremove /dev/vg1/new_swap Do you really want to remove active logical volume vg1/new_swap? [y/n]: y Logical volume "new_swap" successfully removed
Сменить тип раздела на Linux LVM можно с помощью fdisk
$ fdisk /dev/sdc Command: t Selected partition: 1 Hex code (type L to list codes): 8e Command: w The partition table has been altered!