Виртуализация позволяет гибко настраивать использование ресурсов хост системы.
Большинство изменений, как то объём оперативной памяти или количество ядер процессора, применяются автоматически и от администратора не требуется никакой реакции.
Иначе ситуация состоит с размерами хранилища. Несмотря на то, что на гипервизоре увеличить размер выделяемого хранилища легко, гостевая система самостоятельно не сможет его использовать. Ситуация аналогична тому, как если в обычный стационарный компьютер добавить ещё один HDD/SSD — без разметки и форматирования его использовать не получится.
Сегодня я покажу как расширить файловую систему на гостевой системе, которой «докинули» жесткого диска.
С чем будем работать
# freebsd-version 11.0-RELEASE-p1
Первоначальное состояние
# gpart show da0 => 63 419430337 da0 MBR (200G) 63 1 - free - (512B) 64 419430335 1 freebsd [active] (200G) 419430399 1 - free - (512B)
Увеличиваем размер HDD на виртуалке и ребутимся
# gpart show da0 => 63 1048575937 da0 MBR (500G) 63 1 - free - (512B) 64 419430335 1 freebsd [active] (200G) 419430399 629145601 - free - (300G)
Видим что свободное место увеличилось. Первый шаг успешный.
Так как делаем всё на примонтированной системе, то выполним команду подавлния обильного вывода
# sysctl kern.geom.debugflags=16 kern.geom.debugflags: 0 -> 16
После перезагрузки это значение вернётся к значению по умолчанию
На момент работ по расширению раздела рекомендую отключить своп.
Проверим
# swapinfo Device 1K-blocks Used Avail Capacity /dev/da0s1b 4194268 0 4194268 0%
Отключаем и снова проверяем
# swapoff /dev/da0s1b # swapinfo Device 1K-blocks Used Avail Capacity
Увеличиваем размер нашего раздела. Он имеет номер 1
# gpart resize -i 1 -a 4k -s 499G da0 da0s1 resized
Проверяем
# gpart show da0 => 63 1048575937 da0 MBR (500G) 63 1 - free - (512B) 64 1046478848 1 freebsd [active] (499G) 1046478912 2097088 - free - (1.0G)
После этого я перегрузился в Single User Mode и выполнил там
# growfs -y /dev/da0s1
После включения на рабочей системе получаем
# df -Ph Filesystem Size Used Avail Capacity Mounted on /dev/da0s1a 484G 165G 280G 37% / devfs 1.0K 1.0K 0B 100% /dev fdescfs 1.0K 1.0K 0B 100% /dev/fd