ruskar
@ruskar
Conflict Intelligence Team

Переполнение носителя (HDD) в VirtualBox

Для тестирования разработок держу у себя в VirtualBox ОС Debian 6 со стандартным комплектом установленных серверных программ (nginx, mysql, php-fpm, memcached и т.д.) Образ Debian для VirtualBox брал готовый с торрентов. Соответственно виртуальный носитель был размечен в образе заранее, размером в 8 Гб.

Долгое время успешно пользовался этой виртуалкой, заливал туда разрабатываемые проекты (запускал локальный сервер из VirtualBox), некоторые из этих проектов были с довольно большими БД (1-2 Гб.)

Сегодня в процессе заливки в виртуалку очередной большой БД импорт внезапно прервался ошибкой. После этого консоль сервера начала (сама, без нажатий чего-либо) выдавать ошибки Exception, ошибка доступа к памяти и что-то вроде того. Затем консоль и сервер окончательно зависли. Ни на какие команды консоль не отвечала, выключить виртуальный сервер через сам VirtualBox было невозможно. Выключить сервер вместе с VirtualBox удалось только через Ctrl + Alt + Delete.

Сейчас при попытке запустить образ с сервером загрузка зависает на следующем моменте:

Loading, please wait...
mount: mounting none on /dev failed: No such device
W: devtmpfs not available, falling back to tmpfs for /dev
INIT: version 2.88 booting
Using makefile-style concurrent boot in runlevel S.
Starting the hotplug events dispatcher: udevd.
Sunthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated..._


По всем признакам мне кажется что причина в переполнении виртуального жёсткого диска (8 Гб). У меня это вызывает некоторое недопонимание в виду того, что в настройках образа носитель обозначен как «динамически расширяющийся»:
VirtualBox

Плюс тут ясно показано, что как минимум ещё 3 Гб. свободно (впрочем, этот момент отбросим из предположения, что остаток места съедает своп при запуске).

Вопрос следующий: можно ли как-то изменить размер виртуального носителя (поставить, допустим, не 8, а 40 Гб) образа уже после того, как этот образ начал использоваться? В настройках нигде такого не нашёл. Или это только через удаление образа из VirtualBox и создание заново нового образа с нужным размером?

Если это имеет значение, то VirtualBox использовал версии 4.2.0, сейчас обновился до 4.2.6 — ничего не изменилось. Основная ОС на компе, из-под которой запускается VirtualBox — Windows 7.
  • Вопрос задан
  • 14308 просмотров
Пригласить эксперта
Ответы на вопрос 5
@Man1aca1
Итак, для увеличения размера виртуального диска нам необходимо сделать следующее. Открываем командную строку (Win-R – cmd – OK) и переходим в директорию в которую у нас установлен VirtualBox (если вы не меняли путь, предлагаемый при установке, то это будет папка C:\Program Files\Oracle\Virtual Box). Теперь получим информацию о нужном нам виртуальном диске VDisk.vdi командой:

VboxManage.exe showhdinfo C:\VMDISK\VDisk.vdi

(в этой команде предполагается, что путь к нашим виртуальным дискам C:\VMDISK а нужный нам диск называется VDisk.vdi)

В результатах выводимых командой есть строка Logical size в которой указан максимальный размер диска. Теперь попробуем увеличить размер диска, к примеру, до 40 Гб (40960 Мб) командой:

VboxManage.exe modifyhd C:\VMDISK\VDisk.vdi −−resize 40960

Еще раз выведем информацию о диске командой:

VboxManage.exe showhdinfo C:\VMDISK\VDisk.vdi

И убедимся что строка Logical size показывает новое значение максимально размера диска.

После увеличения максимального размера виртуального диска указанными выше командами нам необходимо зайти в гостевую систему и средствами гостевой операционной системы увеличить размер логического диска.
Ответ написан
max_mara
@max_mara
«Динамически расширяющийся» — значит до какого-то определенно заданного размера. Тоесть если у вас лимит 8 гигабайт, то файл-образ на диске будет занимать, допустим, всего 2 гигабайта и если размер машины растет, то и файл образ растет до 8 гигабайт, но не больше.

Что-бы я попробовал сделать, так-это в разделе «Storage» добавить еще один SATA образ, запустить машину в single-mode, примонтировать новый диск и переместить туда все данные, которые занимают место.
Ответ написан
LordGlue
@LordGlue
Обычно, создают новый пустой винт на 200-500 Гб, подключают к машине и подключают любой liveCD c программой типа Акрониса, GParted — любой работающей с дисками. Грузятся с liveCD и копируют старый винт на новый. Машинку выключают, старый удаляют, оставляя только новый винт.
Ответ написан
Комментировать
Anisotropic
@Anisotropic
Если там место действительно кончилось, то увеличить — дело минуты:
0. делаете копию VHD на всякий пожарный
1. запускаете diskpart.exe
2. в ней пишете
select vdisk file=«полный путь к файлу»
expand vdisk maximum=«размер в мб»
3. увеличиваете размер тома в debiane, для этого, видимо, придётся загрузиться в livecd
Ответ написан
Комментировать
astrobeglec
@astrobeglec
У меня точно такая же ошибка возникла когда на разделе хоста на котором лежал виртуальный диск стало мало места (по моему меньше чем требовалось динамическому для полной емкости).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы