VirtualBox. Виртуальные диски. Их типы. Расширение виртуального носителя.

Во время работы с VBox так вышло, что однажды мне не хватило места на виртуальном диске. Почитав гайды в интернете, нашёл как увеличить размер диска. Только ничего не получилось. Оказалось, что при создании диска, был выбран фиксированный размер дискового пространства.
Задачи
- Разобраться с типами дисков
- Расширить виртуальный диск с фиксированным объёмом
- Завершить расширение диска в гостевой ОС
- Не потерять данные на расширяемом виртуальном диске
1. О типах виртуальных носителей
Выдержка из документации, приведена ниже. Ссылка на доку. Искать часть 5.2. Disk Image Files (VDI, VMDK, VHD, HDD)
Файл образа диска виртуальной машины находится на хостиг-системе и воспринимается гостевой системой, как жёсткий диск определённой геометрии. Когда гостевая ОС читает с диска или записывает на него, VBox перенаправляет запрос в файл образа.
Как и физический диск, виртуальный носитель имеет размер и ёмкость, которые необходимо указать при создании диска. Только в отличие от физического носителя его можно расширять.
VBox поддерживает типы виртуальных носителей:
- VDI. Собственный тип, формат контейнера жёсткого диска от VBox
- VMDK. Популярный открытый формат контейнера, используется многими другими продуктами виртуализации
- VHD. Тип виртуального носителя, который использует Microsoft
- HDD. Также поддерживаются файлы изображений Parallels версии 2
Варианты создания диска внезависимости от выбранного типа виртуального носителя:
- Фиксированный размер. Если создаём образ с фиксированным размером, то на хостинг-системе будет создан файл образа примерно такого же размера, как и емкость виртуального диска. Таким образом, для диска размером 10 ГБ у нас будет файл размером 10 ГБ
- Макимальный объём диска, расширить нельзя.
- Максимальный объём диска можно увеличить.
2. Решение проблемы
Расширение дискового пространства. Тип VDI, VHD, VMDK. Вариант — динамически расширяемый.
- Запустить VirtualBox.
- Открыть менеджер виртуальных дисков (сочетанием клавиш Ctrl + D)
- Во вкладке Жесткий диск, выбрать из списка тот, который расширяем
- Ниже, во вкладке Атрибуты, увеличиваем объём диска с помощью бегунка
- Так же можно увеличить объём диска, вручную прописав его размер в окошке справа от бегунка
- Подтверждаем
- После короткого ожидания, размер диска увеличен
- Далее необходимо запустить гостевую ОС и расширить диск уже там
Расширение дискового пространства. Тип VDI, VHD, VMDK. Вариант — фиксированный.
- Открыть менеджер виртуальных носителей
- Выбрать диск
- Сверху, кнопки с вариантами действий над диском
- "Копировать"
- В открывшемся окне необходимо открыть "Экспертный режим"
- В правой части окна "Хранение на жёстком диске"/"Storage on physical hard disk", нужно выбрать Динамически расширяемый вариант создания диска
- Подтвердить копирование
- Займет какое-то время
- В менеджере виртуальных носителей появится копия диска, только уже тип диска будет динамический.
- Выбрать диск и расширить его
- После расширения, копию расширенного диска необходимо примонтировать в виртуальной машине, вместо старого
3. Расширение дискового пространства в гостевой системе
Гостевая ОС, Windows
- Запустить гостевую ОС
- Открыть управление дисками.
- для Win7 — правым кликом по иконке Мой компьютер — Управление — Управление дисками
- для Win10 — правым кликом по иконке Windows/Пуск — Управление дисками
Гостевая ОС, думаю любой дистрибутив GNU/Linux
Я расширял в Debian-Arch подобныхHow to Increase Disk Size of Your Existing Virtual Machines in VirtualBox

Here’s the scenario you may come across sooner or later.
You installed one or more operating systems in VirtualBox. While creating those virtual operating systems, you also created virtual hard disks for them in VirtualBox.
You specified the maximum size of the virtual disk to say 15 or 20 GB but now after using it for some time, you realize that your virtual machine is running out of space.
While there are ways to free up disk space on Ubuntu and other operating systems, a more robust way of handling the situation is to increase the disk size of your virtual machines created in VirtualBox.
Yes, you can enlarge the virtual hard disk in VirtualBox even after creation. Although this is a safe and tested procedure, it is highly recommended to create a backup of your virtual machine before you perform such an action.
How to enlarge VirtualBox disk size
I will show you how to resize disk in VirtualBox graphically and via command line (for Linux geeks). Both methods are easy and straightforward.
Method 1: Using the Virtual Media Manager in VirtualBox
VirtualBox 6 added a graphical option for resizing virtual disks. You can find it at the file tab of VirtualBox home page.
Go to File->Virtual Media Manager:
Select one of your virtual machines in the list and use the “Size” slider or type the size value that you need. Once done click “Apply”.
Keep in mind that though you increased the size of your virtual disk, the actual partition size remains the same if your space is dynamically allocated.
Method 2: Increase VirtualBox disk space using Linux command line
If you are using a Linux operating system as a host, open the terminal and type the following command to resize VDI:
The resize process should finish right after you click the enter button to execute the command.
The commands modifyvdi and modifyhd of earlier versions of VirtualBox commands are also supported and mapped internally to the modifymedium command.
If you are not sure where your virtual machines are saved, you can find the default location from the VirtualBox home page by clicking on Files -> Preferences or by using the keyboard shortcut Ctrl+G.
Conclusion
Personally, I prefer to use the terminal on every Linux distribution that I use for expanding disk, the graphical option is a very handy addition to the latest VirtualBox release.
This is an easy and quick tip but a great addition to VirtualBox fundamentals. If you find this tip useful, check out a few features of VirtualBox guest additions.
Изменение размера виртуального диска в Oracle VirtualBox
На тот случай, если при создании виртуальной машины вы не угадали с размером, в Oracle VirtualBox есть штатная возможность изменить размер виртуального диска. Правда из графической оснастки изменить размер диска не получиться, для этого придется воспользоваться консольной утилитой VboxManage.exe, входящей в состав VirtualBox.
Увеличение размера
Открываем командную строку и переходим в директорию C:\Program Files\Oracle\Virtual Box (директория установки VirtualBox по умолчанию). Выведем информацию о виртуальном диске WKS2.vdi командой:
VboxManage.exe showhdinfo C:\VM\WKS2.vdi
В строке Logical size указан максимальный размер диска — 25600 Мб (25 Гб). Увеличим его до 30 Гб (30720 Мб) следующей командой:
VboxManage.exe modifyhd C:\VM\WKS2.vdi −−resize 30720
И затем еще раз посмотрим данные о диске.

После увеличения размера виртуального диска надо зайти в гостевую систему и увеличить размер логического диска. Cделать это можно из оснастки управления дисками (discmgmt.msc), выбрав в контекстном меню пункт «Расширить том». Эта возможность есть во всех ОС Windows, начиная с Vista\Server 2008. В других операционных системах придется воспользоваться сторонними программами, например Acronis Disk Director.

Уменьшение размера
Возможна и обратная ситуация, когда необходимо уменьшить размер дискового пространства, занимаемого виртуальной машиной. В этом случае алгоритм действий другой.
Сначала заходим в гостевую систему и удаляем все лишнее. Затем произведем очистку свободных секторов диска с помощью утилиты Sdelete от Sysinternals. Утилита не требует установки, ее достаточно распаковать и запустить из командной строки команду Sdelete.exe -s -z .

Примечание. В Linux для очистки диска можно воспользоваться утилитой ZeroFree.
После очистки выключаем виртуалку, открываем командную строку на хостовой машине и выполняем команду:
VboxManage.exe modifyhd C:\VM\WKS2.vdi −−compact
Эта команда сжимает образ виртуального диска, уменьшая место, занимаемое им на диске. При этом логический размер диска останется без изменения. Уменьшить размер диска с помощью ключа resize не получится, этот способ работает только в сторону увеличения.

В заключение скажу, что увеличение размера возможно только для динамических дисков формата VDI или VHD, а сжатие — только для VDI-дисков. Все остальные варианты не поддерживаются, по крайней мере на данный момент. И еще, перед изменением размера диска не поленитесь сделать его резервную копию, на всякий случай
Увеличение размера виртуального диска в VirtualBox для гостевой операционной системы Oracle Linux
В данном посте пошагово описывается способ расширения размера дискового раздела root операционной системы Oracle Linux за счет увеличения виртуального диска VirtualBox.
Могут возникнуть случаи, когда заранее выделенного места на дисковом пространстве гостевой операционной системы (далее ОС) Oracle Enterprise Linux (далее OEL) в виртуальной машине может быть недостаточно. В такой ситуации, есть возможность расширить дисковое пространство (виртуальный диск) на гостевой операционной системе средствами VirtualBox и системными средствами ОС OEL, не пересоздавая виртуальную машину. Под гостевой ОС подразумевается операционная система, которая устанавливается, настраивается и работает на виртуальной машине. В данном посте описывается ситуация, когда заполняется дисковое пространство на корневом дисковом разделе root. Для расширения дискового пространства системного диска гостевой ОС Oracle Linux, надо выполнить следующие шаги:
- Проверить текущий размер диска гостевой ОС.
- Настроить диск виртуальной машины в VirtualBox.
- Расширить системный диск гостевой операционной системы.
1. Проверка текущего размера расширяемого локального диска гостевой ОС.
Проверяется текущий размер дискового раздела root гостевой ОС с помощью инструментов командной строки.
Анализируя полученный результат, можно заключить, что в корневом разделе (/) (в данном случае /dev/mapper/ol-root) свободно 350М из имеющихся 8 Гб.
Проверяется размер диска в гостевой Oracle Linux.
Результат команды fdisk показывает, что размер виртуального диска /dev/sda 10.7 Гб и из них 8585 MB (то есть 8 Гб) используется корневым разделом – /dev/mapper/ol-root: 8585 MB.
После этого можно приступать к расширению дискового пространства корневого раздела.
2. Настройка диска виртуальной машины в VirtualBox.
Необходимо остановить гостевую операционную систему Oracle Linux. Надо убедиться, что виртуальная машина выключена, а не находится в состоянии сохранения. Также перед продолжением, необходимо удалить снэпшоты (snapshots), которые ассоциируются с виртуальной машиной, если они используются в VirtualBox. Это поможет определить, что модифицируется корректный виртуальный диск, и что все будет правильно работать после модификации.
Для настройки расширения диска виртуальной машины в VirtualBox, надо войти в меню «Файл» и выбрать «Менеджер виртуальных носителей», как показано на скриншоте ниже.

В «Менеджере виртуальных носителей» можно увидеть все виртуальные диски существующих виртуальных машин. В данном примере их три. Изменение размера виртуального диска будет выполняться для OEL-fdisk.vdi, у которой размер диска 10 Гб. Выбирается OEL-fdisk.vdi и по нажатию на «Свойства» можно получить доступ к дополнительной информации и опциям, среди которых есть и изменение размера диска.

Размер диска увеличивается на 2 Гб в пункте «Размер», то есть был 10 Гб и теперь назначается 12 Гб.

3. Расширение корневого раздела (/) гостевой операционной системы внутри виртуальной машины.
Теперь необходимо запустить виртуальную машину на Oracle Linux и распределить появившееся дисковое пространство. Для этого можно использовать утилиту fdisk и проверить размер раздела диска /dev/sda, где находится корневой раздел (/).
Видно, что размер диска изменился с 10 на 12 Гб. Теперь надо сделать это новое пространство видимым для системы и нужного раздела. Запускается утилита fdisk для удаления и пересоздания LVM, данные пользователей останутся без изменений.
Выбирается ключ «m» для получения списка команд. Из списка выбирается ключ «p» для вывода данных таблицы разделов (партицирования).
Удаляется второй раздел ключом «d», т.к. основной раздел по умолчанию находится во втором разделе:
Создается новый основной раздел ключом «n» и начальные и конечные значения секторов оставляются по умолчанию:
После создания нового раздела проверяются текущие значения таблицы разделов (партицирования):
Меняется системный идентификатор для созданного раздела с помощью ключа «t» и шестнадцатеричного кода 8e, который обозначает Linux LVM. Таким образом, тип раздела сменится с Linux на Linux LVM.
Все изменения на диск записываются ключом «w».
Новые изменения разделов вступят в силу после следующей перезагрузки операционной системы. В связи с этим перезагружается операционная система.
После перезагрузки ОС проверяются настройки физического раздела диска.
и изменяется размер физического диска:
Проверяются размер и другие настройки логического размера диска.
Далее расширяется логический диск с помощью команды lvextend:
Ошибка выше возникает из-за того, что в этой логической группе уже есть логический том, который занимает место и не дает расшириться на 10 Гб. В данном случае можно распределить логическому тому все свободное дисковое пространство, используя приведенную ниже команду:
Проверяются настройки логического размера диска после его расширения:
Применяются изменения для логического раздела диска.
Проверяются размеры разделов из чего видно, что корневой раздел (/) (в данном случае /dev/mapper/ol-root) расширился с 8 Гб на 10 Гб и свободно стало 2.4 Гб вместо 350 Мб.
На этом завершается процесс увеличения размера корневого диска гостевой операционной системы Oracle Enterprise Linux, работающей в VirtualBox.