- Уменьшение / Увеличение логических томов LVM на Linux + очистка системы — памяти (cache) Kali Linux / Debian / Ubuntu / CentOS
- Уменьшение / Увеличение логических томов LVM на Linux
- Resizing a Partition + Filesystem on Linux from the CLI
- Looking to buy a Virtual or Dedicated server? Do you like privacy and low prices? Try Privex!
- Order a server TODAY! Privacy is affordable™
- 1. Installing GNU parted
- 2. Check fdisk to find the right disk / partition + disk/partition info
- 3. Resize the disk partition («physical» partition) on your partition table using parted
- 4. Resize the actual filesystem to fit the grown partition
- Looking to buy a Virtual or Dedicated server? Do you like privacy and low prices? Try Privex!
Уменьшение / Увеличение логических томов LVM на Linux + очистка системы — памяти (cache) Kali Linux / Debian / Ubuntu / CentOS
В одном из моих предыдущих постов «Установка Kali Linux…» на этапе «Разбиение на разделы» мы выбрали метод распределения пространства жёсткого диска по логическим томам — LVM . Сегодня разберём уменьшение и/или увеличение логических томов LVM на Linux.
LVM — это метод распределения пространства жёсткого диска по логическим томам, размер которых можно легко менять, в отличие от разделов.
Программа установки автоматически распределила весь объём выбранного жесткого диска по логическим томам, как считает нужным, согласно своей логике )))
Мы сегодня изменим размеры, на своё усмотрение и помогут нам в этом команды:
lvextend — увеличивает размер логического тома.
lvreduce — уменьшает размер логического тома.
Все инструменты для управления томом LVM доступны в пакете lvm2 . У нас Kali на базе последней версии Debian, пакет устанавливать не требуется.
Если хотите проделать все манипуляции с настройкой логических томов в графическом интерфейсе Linux, то установите утилиту system-config-lvm, но здесь про работу с ней ничего написано не будет.
Перед началом любых манипуляций с уменьшением размеров логических томов, настоятельно рекомендуется сохранить важные данные с них, ибо есть высокий риск их проеб..ть потерять!
Делать я этого конечно не буду )))
Уменьшение / Увеличение логических томов LVM на Linux
Водим в терминале ( на моей тестовой системе ) команду
и наблюдаем такую картину:
/var у нас забит под 100% (на этапе установки я его вынес в отдельный раздел, что лично мне позволяет всегда быстро контролировать заполнение его «хламом» командой выше).
Можно конечно увеличить размер этого тома ( что я и сделаю позже ), а можно просто почистить кэш и удалить временные файлы ))) По этой ссылке вполне доступно рассказано как это сделать.
Пример (смотрим на /var на фото выше и ниже, после команды # sudo rm -rf /var/cache/apt/ ):
Иногда полезные ещё эти две команды APT-GET для очистки системы:
# sudo apt-get autoclean
— очищает локальный репозиторий от извлеченных файлов пакетов, но удаляет только те файлы, которые больше не могут быть загружены и практически бесполезны (в отличии от apt-get clean ). Это помогает сохранить ваш кэш /var/cache от переполнения.
# sudo apt-get autoremove
— удаляет пакеты (неиспользуемые зависимости), которые были установлены автоматически, поскольку они требовались для некоторых других пакетов, но после удаления этих пакетов они больше не нужны.
Для примера, я хочу увеличить логический том root на 9GiB , но если мы сейчас введём (на не совсем правильно установленной системе) такую команду:
# sudo lvextend -L +9G /dev/mapper/kali—vg-root
то получим ошибку, которая говорит, что у нас нет свободного не распределённого пространства.
Думать об этом нужно было РАНЬШЕ.
На этапе «Разбиение на разделы» :-)))
Т.е. при выборе LVM метода распределения пространства жёсткого диска по логическим томам при установке Linux, не нужно сразу «занимать всё свободное пространство» (использовать всю группу томов).
Это позволит в дальнейшем без проблем ( без танцев с бубном и live cd ) увеличить нужные нам тома до необходимого объема одной командой lvextend . Ну и в случае с установкой в VirtualBox можно не сильно жадничать, а выделить чуть больший объём виртуального жёсткого диска)))
Итак, если у нас есть свободное не распределённое пространство на физическом диске (или мы подключили ещё один для этого), то достаточно будет ввести две команды «и дело в шляпе» ))) Ничего «отмонтировать» не нужно — делаем это на работающей системе:
1) Увеличиваем размер тома /root:
$ sudo lvextend -L +2G /dev/mapper/kali—vg-root
2) Перезапишет метаданные файловой системы:
$ sudo resize2fs /dev/mapper/kali—vg-root
+2G — объём в гигабайтах, который мы добавляем нужному тому (2Гб);
/dev/mapper/kali—vg-root — собственно ваш том/root, который вы увеличиваете;
(посмотреть как он значится у вас в системе — df -h )
Вот пример с моим томом /var:
Или обе команды можно объединить в одну, добавив в конце первой (lvextend) — «-r» )))
Но, если у вас НЕТ свободного не распределённого пространство на физическом диске , то картина обрисовывается совсем другая…
Рассмотрим вариант увеличения логического тома /ROOT за счёт уменьшения логического тома /HOME.
Если мы попытаемся сделать это на запущенной системе с графической оболочкой, то при попытке уменьшить том /home для высвобождения места для /root :
$ sudo lvreduce -L -2G /dev/mapper/kali—vg-home
мы получим злостное предупреждение:
Не пытайтесь это (что выше) повторить, особенно на реальной машине. )))
Размонтировать том /home, чтобы его уменьшить, в этом случае тоже не получится.
Можно конечно «заморочиться», как написано здесь : «Вы можете войти в однопользовательский режим для таких операций, добавив ‘s’ к концу редактирования или запуска строки загрузки grub sudo init 1. там вы можете размонтировать / home, если снова получите ошибки, запустите sudo umount -fl /home. -f сила и -l отключить в ленивый!»
Рассмотрим наиболее простой (оптимальный, по моему мнению) вариант — проделаем операцию по увеличению логического тома /root за счёт уменьшения логического тома /home с применением загрузочной флешки с любой Linux («гуглить по ключу» — «Live CD»).
В рамках этого поста я не буду описывать — «Как создать загрузочный диск LiveCD/DVD/USB» и загрузить систему с неё, ибо даже кратко не получится уложится в лимит «букОв» и «скринОв» )))
Итак, система загружена с LiveCD и что-то размонтировать нам нет необходимости.
Сначала уменьшим логический том /home
1) уменьшаем размер файловой системы (resize2fs);
2) уменьшаем логический том (lvreduce);
НЕ ПЕРЕПУТАЙТЕ ПОРЯДОК ДЕЙСТВИЙ.
ПРИМЕР ( скринов/фотографий не будет, ибо забыл сделать во время теста ):
— предположим, что объем логического тома /home у нас 35 Гб (посмотреть можно — # df -h )
1) Уменьшаем размер файловой системы до 30 Гб:
$ sudo resize2fs /dev/mapper/Kali—VM—vg-home 30G
2) Уменьшаем размер тома до 30 Гб:
$ sudo lvreduce -L 30G /dev/mapper/Kali—VM—vg-home
$ sudo lvreduce -L -5G /dev/mapper/Kali—VM—vg-home
/dev/mapper/Kali—VM—vg-home — собственно ваш логический том, который мы уменьшаем;
30G — объём в гигабайтах, который будет занимать том после этих двух команд (30 Гб);
-5G — объём в гигабайтах, который мы высвобождаем (уменьшаем том на 5Гб);
Тут (выше) вам потребуется небольшой расчёт, например на калькуляторе )))
Теперь увеличим логический раздел /root и файловую систему на 5Гб, как это уже делали выше ( в варианте, где есть свободное не распределённое пространство ) командой lvextend:
$ sudo lvextend -L +5G /dev/mapper/Kali—VM—vg-home -r
/dev/mapper/Kali—VM—vg-home — собственно ваш логический том /root, который вы увеличиваете;
Попроверяем, что задуманное удалось удобным вам способом, например командой # df -h
Ф С Ё . ))) Перезагружаемся в систему без LiveCD и радуемся, что ничего не сломали)))
Рекомендованные тематические статьи:
Resizing a Partition + Filesystem on Linux from the CLI
Note that we’ll only be covering EXPANSION / GROWING, and not shrinking, since it’s much more difficult to shrink a partition than to grow it.
- A system running Linux (Ubuntu, Debian, Linux Mint, Fedora, CentOS, RedHat or anything else)
- Free space in your partition table — AFTER the partition you want to resize — to extend the partition into.
- The third-party program parted (available in most package managers)
Looking to buy a Virtual or Dedicated server? Do you like privacy and low prices? Try Privex!
We have virtual servers starting from just US$0.99/mo, and dedicated servers starting from as low as US$50/mo
Unlike other hosts, we don’t ask for any personal details — only a name (can be an alias / username), and an e-mail address so we can send you your server details and renewal invoices.
We also accept several different cryptocurrencies with our own in-house payment processor — no third parties involved in processing your payments.
At the time of writing, we currently accept: Bitcoin (BTC), Litecoin (LTC), Monero (XMR), Dogecoin (DOGE), HIVE, and HBD
Order a server TODAY! Privacy is affordable™
1. Installing GNU parted
For Debian-based distros such as Ubuntu, Debian, Linux Mint, etc. — you can install parted from apt:
sudo apt update sudo apt install -y parted
For Redhat-based distros (Fedora, Redhat, CentOS, Oracle, Amazon Linux, etc.), you can use either dnf (for modern distros) or yum (for older distros):
# for modern distros sudo dnf install -y parted # for older distros, or if you get an error saying dnf isn't installed sudo yum install -y parted
For Arch Linux, you can use pacman :
2. Check fdisk to find the right disk / partition + disk/partition info
Run the following command to get information about all disks and partitions on your system:
Look through the output to find the disk (e.g. /dev/sda ) that you want to resize, as well as the partition you want to resize.
You might also be able to find the disk /dev/ path by running df -h / (if you want to resize a different partition instead of the rootfs / — then replace / with the mountpoint of the partition you want to resize)
3. Resize the disk partition («physical» partition) on your partition table using parted
Once you’ve located the disk you want to resize a partition on (e.g. /dev/sda ), open it using parted:
Now use the print command within parted, which will print information about that disk, and the partitions on the disk, so you can figure out how much space you have available to expand the partition into, and the partition number of the partition you want to resize:
Finally, use resizepart [partition_number] with the number of the partition you want to resize, to actually resize the partition:
You may be warned that the disk is in use, this is generally okay, so enter yes
When asked to enter the End: — if the partition is at the end of the disk, you can enter the size of the disk outputted by print , but take off 0.2GB for safety, e.g. if it was 48.5GB — you’d enter 48.3G.
If the partition is between two partitions, then you’ll want to enter an end location at least 100mb before the «Start» of the following partition. For example, if you’re resizing partition 1 (start: 1020MB, end: 20GB), and partition 2 starts at 41.2GB — then you could set the End of part 1 to 41GB (~200mb before part 2).
4. Resize the actual filesystem to fit the grown partition
The command you’d run to grow a filesystem, depends on what filesystem the partition is actually formatted with.
Most Linux systems use the filesystem ext4 (or an older version such as ext3 — which uses the same command to resize anyway), though either yourself or the installer for your distro may have formatted some/all of the partitions with an alternative filesystem such as XFS, or Btrfs.
To discover the filesystem used by each partition on your system, use the following command:
To grow an ext2 , ext3 or ext4 filesystem, use the command (where /dev/sda1 is the partition device to resize):
To grow an xfs filesystem, use the command (where / is the MOUNTPOINT of the XFS formatted device):
To grow a btrfs filesystem, use the command (where / is the MOUNTPOINT of the Btrfs formatted device):
sudo btrfs filesystem resize max /
Finally, check the filesystem was resized by running df -h to list the size, used space, and avail space on all mounts:
Looking to buy a Virtual or Dedicated server? Do you like privacy and low prices? Try Privex!
We have virtual servers starting from just US$0.99/mo, and dedicated servers starting from as low as US$50/mo
Unlike other hosts, we don’t ask for any personal details — only a name (can be an alias / username), and an e-mail address so we can send you your server details and renewal invoices.
We also accept several different cryptocurrencies with our own in-house payment processor — no third parties involved in processing your payments.
At the time of writing, we currently accept: Bitcoin (BTC), Litecoin (LTC), Monero (XMR), Dogecoin (DOGE), HIVE, and HBD