В одном из моих предыдущих постов «Установка Kali Linux…» на этапе «Разбиение на разделы» мы выбрали метод распределения пространства жёсткого диска по логическим томам — LVM. Сегодня разберём уменьшение и/или увеличение логических томов LVM на Linux.
LVM — это метод распределения пространства жёсткого диска по логическим томам, размер которых можно легко менять, в отличие от разделов.
Программа установки автоматически распределила весь объём выбранного жесткого диска по логическим томам, как считает нужным, согласно своей логике )))
Мы сегодня изменим размеры, на своё усмотрение и помогут нам в этом команды:
lvextend — увеличивает размер логического тома.
lvreduce — уменьшает размер логического тома.
Все инструменты для управления томом LVM доступны в пакете lvm2. У нас Kali на базе последней версии Debian, пакет устанавливать не требуется.
Если хотите проделать все манипуляции с настройкой логических томов в графическом интерфейсе Linux, то установите утилиту system-config-lvm, но здесь про работу с ней ничего написано не будет.
Перед началом любых манипуляций с уменьшением размеров логических томов, настоятельно рекомендуется сохранить важные данные с них, ибо есть высокий риск их проеб..ть потерять!
Делать я этого конечно не буду )))
Уменьшение / Увеличение логических томов LVM на Linux
Водим в терминале (на моей тестовой системе) команду
# df -h
и наблюдаем такую картину:
/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 и радуемся, что ничего не сломали)))
Рекомендованные тематические статьи:
- Установка Kali Linux (VirtualBox | Desktop | Server) для Умного дома (Home Assistant) и тестирования его безопасности.
- Установка Ubuntu 20.04 на бесплатный VPS сервер от Oracle и подключение к системе по SSH через PuTTy.
- Регистрируем бесплатный VPS сервер от Oracle навсегда (Always Free), для сервисов Умного дома или чего-то другого…
- Создаём свой VPN сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка)
- Увеличение / Уменьшение логических томов LVM на Linux + очистка системы — памяти (cache) Kali Linux / Debian / Ubuntu / CentOS
- Как создать (удалить) файл подкачки Linux. Или добавляем/удаляем SWAP для нашей Ubuntu 20.04 на бесплатном VPS — сервере от Oracle
Добрый день. Не совсем понимаю. Если я загружусь с LiveCD, но у меня уже не будет никаких /dev/mapper/Kali—VM—vg-home и кого мне ресайзить? Что-то в инструкции не до конца написано.
За статью — спасибо. Мне это актуально.
ПС:чтоб два раза не бегать. Я столкнулся со следующей проблема. Установил CentOS на диск 256Гб(отдав установщику автоматически распределить диск), но так получилось, что диск этот надо отдать, а другой диск 250Гб. Клонировать не дает, из-за разных размеров. Вот и встал вопрос уменьшить на 6Гб /home и потом уже клонировать. Я загружаюсь с LiveCD (у меня любимый partedmagic) и не пойму, как ресайзить дальше. Диск то не смонтирован.
Не совсем понимаю. Если я загружусь с LiveCD, но у меня уже не будет никаких /dev/mapper/Kali—VM—vg-home и кого мне ресайзить? Что-то в инструкции не до конца написано.
За статью — спасибо. Мне это актуально.
ПС:чтоб два раза не бегать. Я столкнулся со следующим. Установил CentOS на диск 256Гб(отдав автоматически распределить диск), но так получилось, что диск надо отдать, а другой диск 250Гб. Клонировать не дает, из-за разных размеров. Вот и встал вопрос уменьшить на 6Гб /home и потом уже клонировать. Загружаюсь с LiveCD (partedmagic) и не пойму как ресайзить дальше.