- OSBoy notes.
- Изменение размера виртуального диска в VirtualBox
- Увеличение размера
- Уменьшение размера
- Как сжать чрезмерно увеличившийся виртуальный диск VirtualBox
- RTFM.WIKI
- Инструменты пользователя
- Инструменты сайта
- Боковая панель
- Навигация
- Линкшэринг
- ALARM!
- Добавить новую страницу
- Реклама
- Содержание
- VirtualBox: изменение размера диска
- Как увеличить/уменьшить размер диска
- Как сжать VDI диск
- Уменьшаем размер файла динамического VDI диска в VirtualBox
- Как уменьшить размер файла VDI VirtualBox?
- 8 ответов 8
- Что ж, после всего этого я попробовал инструмент CloneVDI, и он отлично справился с задачей за гораздо меньшее время и в один клик.
- Гость Debian на хосте Windows с использованием discard/TRIM.
- Конфигурация хоста
- Гостевая конфигурация
OSBoy notes.
Записки обо всём.
Изменение размера виртуального диска в VirtualBox
Увеличение размера
Предположим, что нам стало не хватать дискового пространства на виртуальной машине. Можно, конечно, добавать ещё один виртуальный диск, но в Oracle VirtualBox, также, есть возможность увеличить уже имеющийся виртуальный диск.
Для увеличения размера виртуального диска, сначала удаляем все снимки состояния данной ВМ. Затем воспользуемся утилитой VBoxManage, идущей в комплекте с Virtualbox. Открываем командную строку и выполняем в ней команду, подобную этой:
«C:\Program Files\Oracle\VirtualBox\VBoxManage.exe» modifyhd «E:\VirtualBox\VMs\Debian\Debian_disk1.vdi» —resize 102400
- C:\Program Files\Oracle\VirtualBox\ — путь до каталога с установленной VirtualBox (у вас может отличаться);
- E:\VirtualBox\VMs\Debian\Debian_disk1.vdi — путь до образа виртуального диска, размер которого мы изменяем;
- 102400 — размер в мегабайтах, до которого мы хотим увеличить наш виртуальный диск (в данном случае — 100ГБ).
После выполнения данной команды, запускаем виртуальную машину и можем видеть, что на виртуальном диске появилось нераспределённое пространство, на которое теперь можно растянуть нужные разделы, средствами гостевой ОС, либо загрузившись с LiveCD (например, можно воспользоваться diskmgmt.msc или Acronis Disk Director в Windows, GParted в Linux, и т.п. утилитами ).
Однако, опция —resize работает только для увеличения размера диска. Для уменьшения — алгоритм будет другой.
Уменьшение размера
В VirtualBox очень удобно использовать динамически расширяющиеся жёсткие диски, которые не резервируют сразу всё отведённое им место на хост-машине, а расширяются по мере необходимости. Но при всём их удобстве, есть у них и недостаток: если с такого диска удалить файлы, то размер его образа на хост машине не уменьшится, а останется прежним.
Чтобы cжать образ этого диска до минимальных размеров, для начала нужно очистить его неразмеченные области (от остатков удалённых файлов). Для этого, в гостевой ОС нужно воспользоваться специальной утилитой, обнуляющей свободные секторы.
В Windows — можно использовать утилиту Sdelete. Утилита не требует установки, ее достаточно распаковать и запустить из командной строки команду:
В Linux — есть утилита zerofree.
В моём примере на ВМ установлен Debian. Устанавливаем zerofree через систему управления пакетами (если ещё не установлена):
# apt install zerofree
Для очистки раздела, его нужно отмонтировать, либо перемонтировать в режиме read-only (только чтение), иначе zerofree выдаст ошибку. Если требуется перемонтировать коренной раздел, то сначала нужно перейти в однопользовательский режим:
В данном случае будем чистить раздел /dev/sda3 , который у меня смонтирован в /home — на нём хранятся все пользовательские файлы:
# mount -o remount,ro -t ext4 /dev/sda3
Запускаем zerofree для очистки нужного раздела:
# zerofree -v /dev/sda3
Для выхода из однопользовательского режима выключаем ВМ:
После очистки диска и выключения ВМ, удаляем все снимки состояния данной ВМ, запускаем консоль и выполняем команду:
«C:\Program Files\Oracle\VirtualBox\VBoxManage.exe» modifyhd «E:\VirtualBox\VMs\Debian\Debian_disk1.vdi» —compact
Эта команда сожмёт образ виртуального диска до минимального размера.
Следует отметить, что в интернете есть информация, что можно увеличить размер только ДИНАМИЧЕСКИХ виртуальных дисков форматов VDI или VHD, уменьшить — только VDI. Лично я использую динамические диски в формате VDI (родной формат VirtualBox), с которым всё вышеописанное точно работает. С другими форматами не эксперементировал.
Источник
Как сжать чрезмерно увеличившийся виртуальный диск VirtualBox
У виртуальных динамических дисков VDI , созданных в программе VirtualBox есть одна особенность, которая при определённых обстоятельствах может доставить пользователю некоторые неудобства. При копировании на них массивов данных динамические виртуальные диски имеют свойство расширяться, но если затем вы удалите с такого диска все файлы, его размер останется прежним. Таким образом виртуальная машина может раздуться до весьма значительных размеров, заняв на физическом носителе неоправданно много места.
Ключ resize, предназначенный для изменения размера виртуального диска VirtualBox в данном случае бесполезен, так как работает он только в одну сторону — в сторону расширения диска. Чтобы сжать виртуальный диск, необходимо использовать другой ключ — compact. Но перед тем как приступать к сжатию, нужно удалить с виртуального диска все ненужные файлы, а затем выполнить его зачистку с помощью утилиты Sdelete , созданной известным программистом Марком Руссиновичем и входящей в пакет средств администрирования Windows Sysinternals . Также необходимо удалить все снимки виртуальной машины, в противном случае вы можете получить ошибку.
Sdelete имеет маленький вес и не требует установки.
Поместите её внутри запущенной виртуальной машины в корень системного раздела, а затем, открыв от имени администратора командную строку, выполните такие команды:
cd C:\
sdelete.exe -s -z C:
Аналогичным образом зачистите свободное пространство пользовательского раздела.
sdelete.exe -s -z D:
После этого завершите работу виртуальной машины, от имени администратора откройте в базовой системе командную строку и последовательно выполните две этих команды:
cd C:\Program Files\Oracle\VirtualBox
VboxManage.exe modifyhd «D:\Oracle VM VirtualBox\Windows 10 x86 Ent 1607.vdi» —compact
Первой командой мы переходим в расположение утилиты VboxManage.exe , а второй производим сжатие виртуального диска с помощью команды modifyhd и ключа compact. Путь к файлу VDI у вас будет свой, также не забывайте о прямых кавычках, если в пути или имени файла есть пробелы. Процедура сжатия занимает больше времени, чем расширение (на это нужно всего несколько секунд) , так как утилите приходится работать с реально занятым дисковым пространством.
А теперь, наверное, самый интересный вопрос. Как и от каких виртуальных разделов будет отнято дисковое пространство?
От обеих, причём забрано будет всё виртуальное пространство, на котором нет файлов, — именно на столько будет сжат файл VDI . Однако визуально в самой виртуальной машине ничего не изменится. Разделы в ней по-прежнему будут иметь «свободное место», а сам размер дисков видимо останется таким же, каким он был до сжатия. Но это все, конечно, пустяки. Главное, что таким образом вы уменьшите размер файла VDI , высвободив тем самым место на физическом жёстком диске.
Источник
RTFM.WIKI
Ordnung muß sein. Ordnung über alles (18+)
Инструменты пользователя
Инструменты сайта
Боковая панель
Навигация
Линкшэринг
socialite Display:icon facebook twitter
ALARM!
Добавить новую страницу
Реклама
Содержание
VirtualBox: изменение размера диска
Рано или поздно пользователи VirtualBox сталкиваются с тем, что диск (динамический) гостевой системы стал занимать много места на хост системе.
Диск в гостевой системе 25 ГБ. Занято в Windows только 13 ГБ, но на хост системе диск занимает почти 19 ГБ.
Вывод команды VBoxManage
Для ещё большей наглядности скриншот
Диск в менеджере носителей
Как увеличить/уменьшить размер диска
Для изменения размера диска нужно запустить vboxmanage с опцией modifymedium . В прошлых релизах VirtualBox опция называлась modifyhd или modifyvdi .
For compatibility with earlier versions of VirtualBox, the «modifyvdi» and «modifyhd» commands are also supported and mapped internally to the «modifymedium» command.
Для хост системы Mac/Linux
Для хост системы Windows
Увеличим диск с 25 ГБ до 30 ГБ. Размер указывается в МБ. 30 ГБ = 30*1024 = 30720.
Далее остаётся только расширить диск внутри гостевой ОС
Как сжать VDI диск
Шаг 1. Выполняем дефрагментацию диска (зачем?!) в гостевой системе (только для Windows).
Шаг 2. Заполняем диск нулями
Для гостевой системы Windows
Для Windows есть специальная утилита SDelete.
Для гостевой системы Linux
Для Linux вариантов несколько:
Или через утилиту zerofree
Или через утилиту sfill (входит в состав пакета secure-delete ; только для Debian)
Шаг 3. Выключаем гостевую машину.
Шаг 4. Запускаем modifymedium с опцией compact .
Для хост системы с Mac
Для хост системы с Linux
Для хост системы с Windows
Источник
Уменьшаем размер файла динамического VDI диска в VirtualBox
Всем привет.
Если активно использовать динамический диск в виртуалбоксе, со временем размер его VDI файла увеличивается пропорционально заливаемым в гостевую систему данным. К сожалению, если в гостевой системе удалить с виртуального диска лишнее, это не вызовет уменьшения VDI файла. 🙁
Данная ситуация решаема.
Алгоритм приблизительно такой.
1. Если у Вас гостевая система Windows — необходимо стандартными инструментами произвести очистку диска и дефрагментацию. Для линукс систем этот шаг опускаем.
2. Теперь необходимо заполнить освободившееся место нулями. Для Windows скачиваем отсюда утилиту SDelete и запускаем ее из под админа с носителя, который пытаемся уменьшить:
sdelete -z
Для линукса эта операция будет выглядеть так:
sudo dd if=/dev/zero of=(корень устройства, размер которого мы пытаемся уменьшить)/zerofile
3. Теперь останавливаем гостевую систему и для соответствующего файла хоста производим:
VBoxManage modifyhd уменьшаемый_файл.vdi compact (в особых случаях может понадобиться рут)
Пост создан по материалам интернета, ссылки не привожу ибо лень 🙂
Всем удачи.
3. А почему из-под рута, если vdi лежит в хомяке? Встречал в интернете команду увеличения vdi и там вроде без рута обошлись…
Если у Вас он лежит в хомяке это не значит что так у всех. Он может лежать там, где его положили, а таких вариантов может быть много разных.
Источник
Как уменьшить размер файла VDI VirtualBox?
У меня есть виртуальная машина VirtualBox, в которой настроен очень большой размер жесткого диска (больше, чем у хоста). По моей ошибке программа на виртуальной машине генерировала множество файлов журналов, и размер файла VDI продолжает расти, пока на хосте не останется свободного места.
Теперь я удалил файлы журналов, но размер файла VDI не уменьшается после использования VBoxManage.exe modifyhd «C:\Virts\mybox-i386.vdi» compact
Есть ли способ действительно сжать размер файла VDI? Спасибо!
8 ответов 8
Вы должны сделать следующие шаги:
- Запустите defrag в гостевой системе (только для Windows)
Обнулить свободное пространство:
С гостем Linux запустите это:
С гостем Windows загрузите SDelete от Sysinternals и запустите это:
(замените C: на букву диска VDI)
Отключение гостевой ВМ
Теперь запустите команду modifymedium VBoxManage с параметром —compact :
С хостом Linux запустите это:
С хостом Windows запустите это:
С хостом Mac запустите это:
Это уменьшает размер VDI.
Если выполнение команды в принятом ответе выдает бесполезное сообщение об ошибке, подобное этому
Просто запустите команду по UUID вместо имени файла:
Я на хосте Windows 7 с гостями Windows. Вот пакетный файл, который я записал в Compact все VDI в дереве папок.
Я оставил ссылки в комментариях, чтобы вы могли (вроде) рассказать, как это работает.
Что ж, после всего этого я попробовал инструмент CloneVDI, и он отлично справился с задачей за гораздо меньшее время и в один клик.
Гость Debian на хосте Windows с использованием discard/TRIM.
Это не прямой ответ сам по себе, так как я решаю проблему, а не вопрос. Вместо того, чтобы периодически сжимать образ, это решение использует Discard для автоматического удаления неиспользуемых блоков в образе диска виртуальной машины хоста.
Это решение требует гостевой файловой системы, которая поддерживает непрерывную TRIM. Вики Linux Arch содержит список файловых систем, поддерживающих операции TRIM.
FDE и cryptoroot специально не рассматриваются, так как существуют проблемы безопасности, и ни одно из других решений этого вопроса не позволит также сжать. Вики Linux Arch содержит информацию об устройствах TRIM и dm-crypt.
Теоретически, это будет работать для всех гостей Linux на хостах VBox, использующих хранилище VDI.
Конфигурация хоста
Когда VBox завершен, а виртуальные машины не запущены, добавьте поддержку Discard на свои диски, установив discard и nonrotational для каждого диска в файле конфигурации для VM. В настоящее время discard отсутствует в графическом интерфейсе, но не nonrotational как флажок «Твердотельный накопитель». (ссылка: форумы vbox, поддержка отмены)
Загрузите виртуальную машину и убедитесь, что включена поддержка TRIM:
Гостевая конфигурация
Если LVM используется, измените настройку сброса в /etc/lvm/lvm.conf . (ссылка: Debian Wiki, пример lvm.conf)
В fstab добавьте опцию discard к файловым системам, которые вы хотите автоматически удалить (ref: debian wiki, пример fstab)
Перемонтируйте файловые системы, чтобы они выбрали новые параметры.
Обрежьте свободные блоки вручную с помощью fstrim . fstrim использует смонтированную файловую систему, а не блочное устройство, поддерживающее ее. Вместо установки непрерывного сброса в fstab , это можно сделать на еженедельном кроне. (Еженедельный cron рекомендуется для физических твердотельных накопителей, которые могут иметь сомнительную поддержку TRIM, но здесь это не актуально, поскольку базовые твердотельные накопители обрабатываются операционной системой хоста. См. Предупреждение об ssd trim).
На этом этапе размер файловых систем внутри ВМ и размер образов ВМ должны быть довольно близки по значению.
- Гость1: Debian 8.7, ядро: linux 4.8 grsec от backports, файловая система: ext4
- Гость 2: Debian 9 RC2, ядро: linux 4.9, файловая система: ext4
- Host1: VBox 5.1.14, Win7, образ fmt: VDI
- Хост 2: VBox 5.1.14, Win8.1, образ fmt: VDI
Для гостя MacOS сделайте это:
Обнулить свободное место в гостевой системе:
(замените /Volumes /Macintosh HD на имя вашего диска)
Отключение гостевой ВМ
Запустите эту команду, чтобы уменьшить размер образа диска VDI
Я не хочу включать поддержку TRIM в ОС, потому что каждое удаление данных вызывает сжатие данных в файле VDI, делая гостевую систему непригодной для использования, когда файл VDI находится на классическом ротационном диске. Для меня лучше выполнять сжатие вручную, например, раз в месяц.
При обычном сжатии содержимое файла VDI копируется в новый файл. Это требует некоторого (иногда большого) свободного места на диске хоста.
У меня есть решение, аналогичное указанному Эндрю Домашек. Это работает очень хорошо даже с NTFS (Windows10).
- создайте новую виртуальную машину, которая загружается с GParted Live CD (вы можете использовать ваш любимый дистрибутив Linux).
- Отредактируйте настройки машины и установите контроллер диска SATA
- Добавьте существующие файлы VDI, которые вы хотите сжать
- Измените диски на основе VDI, чтобы они отображались как SSD с поддержкой TRIM:
VBoxManage storageattach «gpared live» —storagectl «SATA» —port 0 —discard on —nonrotational on VBoxManage storageattach «gpared live» —storagectl «SATA» —port 1 —discard on —nonrotational on
- запустить машину
- В корневой оболочке Linux смонтируйте раздел NTFS mount /dev/sda2 /mnt
- ноль свободного места dd if=/dev/zero of=/mnt/bigfile
- rm /mnt/bigfile
- принудительное сжатие VDI без создания нового файла: fstrim -v /mnt
Источник