Привет Пикабу!
В одном из моих предыдущих постов "Установка Kali Linux..." на этапе "Разбиение на разделы" мы выбрали метод распределения пространства жёсткого диска по логическим томам - LVM.
LVM — это метод распределения пространства жёсткого диска по логическим томам, размер которых можно легко менять, в отличие от разделов.
Программа установки автоматически распределила весь объём выбранного жесткого диска по логическим томам, как считает нужным, согласно своей логике )))
Мы сегодня изменим размеры, на своё усмотрение и помогут нам в этом команды:
lvextend - увеличивает размер логического тома.
lvreduce - уменьшает размер логического тома.
LVM - Debian Wiki
Все инструменты для управления томом LVM доступны в пакете lvm2. У нас Kali на базе последней версии Debian, пакет устанавливать не требуется.
Если хотите проделать все манипуляции с настройкой логических томов в графическом интерфейсе Linux, то установите утилиту system-config-lvm, но здесь про работу с ней ничего написано не будет.
Перед началом любых манипуляций с уменьшением размеров логических томов, настоятельно рекомендуется сохранить важные данные с них, ибо есть высокий риск их проеб..ть потерять!
Делать я этого конечно не буду )))
Водим в терминале (на моей тестовой системе) команду # 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 и радуемся, что ничего не сломали)))
Вместо послесловия или disclaimer )))
Напомню, что наполняю не спеша свой аккаунт на Пикабу полезной информацией по тематике "Умный дом". Обращаю Ваше внимание, что это будут не всегда полноценные и пошаговые инструкции и туториалы, а скорее выдержки типа "шпаргалок", на случай посмотреть, если забыл. Ну как бы я буду писать здесь "шпаргалки" и "запоминалки" для себя и на будущее, а Вы можете ими пользоваться или нет, как в старые добрые институтские времена.... ))) Поэтому любой мой пост не претендует на правильность высказанного в нём моего мнения и истину моих умозаключений в конечной инстанции, я просто делюсь своим скромным опытом. Всё что Вы будете делать и повторять по моим постам, Вы делаете на свой страх и риск ;-)
Всем пока и "Бобра"! ;-)