Как мне увеличить размер жесткого диска виртуальной машины?


257

введите описание изображения здесь

На моей виртуальной машине WinXP не хватило места, на которое я выделил только 10 ГБ при создании. Есть ли простой способ увеличить его, скажем, до 20 ГБ? Я не вижу никакой очевидной опции в настройках VirtualBox.


Предложение ниже дает эту ошибку

wim@wim-ubuntu:/media/data/winxp_vm$ VBoxManage modifyhd wim.vdi --resize 20000
VBoxManage: error: Cannot register the hard disk '/media/data/winxp_vm/wim.vdi' {46284957-2c09-4e70-8a49-bfbe0f7f681d} because a hard disk '/home/wim/VirtualBox VMs/winxp_vm/wim.vdi' with UUID {46284957-2c09-4e70-8a49-bfbe0f7f681d} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

Удаление .vdi из VirtualBox перед вызовом команды VBoxManage, а затем добавление его обратно прошло успешно. Но теперь я не могу загрузить виртуальную машину, я получаю этот тревожный экран:

введите описание изображения здесь

Кстати, это говорит FATAL: Could not read from the boot medium! System halted.


Vdi должен быть подключен к виртуальной машине после команды VBoxManage. Кроме того, размер раздела нужно будет изменить из окон WITHIN, потому что у вас будет это пустое пространство:

введите описание изображения здесь

Я смог легко изменить размер раздела, используя бесплатное программное обеспечение EASEUS Partition Master 9.1.0 Home Edition .


3
Ваша проблема в том, что вы установили символическую ссылку на диск в папку «/ media / data», и он не находится в исходной папке «/ home / wim / VirtualBox». Я ответил, как я это исправил.
stolsvik

1
я подробно изложил свой опыт здесь: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size "принятый" ответ ниже далек от того, чтобы быть даже правильным.
kmonsoor

Есть еще одна возможность «скопировать существующий vdi» в «новый пустой vdi, размер которого больше, чем существующий» ( refer- justintung.com/2011/01/06/… )
parasrish,

также обратите внимание, что простое изменение размера может не помочь, так как размер "vdi" увеличился бы, но в зависимости от "vm-os-installation" ваш основной раздел остается прежним, а недавно выделенное пространство обычно отображается "нераспределенным". ». Следовательно, вам необходимо выполнить «перераспределение разделов» (см. Ссылку выше).
парасриша

Ответы:


325

Откройте терминал и перейдите в папку с образом диска VirtualBox, затем используйте следующую команду:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

заменить YOUR_HARD_DISKи SIZE_IN_MBс вашим именем изображения и желаемого размера. sudoможет потребоваться на некоторых машинах или вы можете столкнуться с ошибкой. Этот ответ и более полное объяснение здесь, на webupd8 . Благодарим Андрея за публикацию этого ответа.

После изменения размера дополнительное пространство виртуального жесткого диска необходимо разбить на разделы и отформатировать, чтобы его мог использовать гость. Это можно сделать с помощью gparted, загрузив гостя с живого ISO. Мы также можем изменить размер существующего раздела, используя gparted. Для этого нам может потребоваться отключить /swapи создать новый раздел подкачки.


20
+1. Просто использовал это, чтобы увеличить размер моего диска Windows 7 с 20 до 30 ГБ, и это работало очень гладко (без необходимости перерегистрации и т. Д.). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Сначала Windows не обнаруживала увеличенное пространство, но после отключения питания она обнаружила, а затем я смог использовать встроенный инструмент управления дисками, чтобы увеличить размер моего раздела C :.
Джоник

3
+1, это, безусловно, самый чистый способ сделать это.
Starx

20
@asd Изменение размера диска недостаточно, вам также нужно изменить размер раздела.
Бруно

5
Я думаю, что в последних версиях VirtualBox это .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720сейчас. modifyhdЭто также работает, хотя - есть обратная совместимость со старыми командами.
TranslucentCloud

2
Я просто изменил размер файла vdi с 25G до 120G, но диспетчер дисков системы Windows7 все еще не видит нераспределенное пространство. Это вызвано файлом снимка (у меня есть снимок раньше), но когда я пытаюсь удалить снимок, отчет о виртуальной коробке падает, поэтому я не могу удалить снимок. Есть идеи? Мой гость win7 все еще видит 25G. Благодарю.
ollydbg23

25

У меня сработало следующее:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Однако я понимаю, как пробег может меняться :-) Что касается изменения размера раздела, в Windows 7 я смог изменить размер на экране, который вы показали, щелкнув правой кнопкой мыши на диске C: в нижней панели и выбрав расширение громкости.

Экран управления компьютером


12
sudoэто не обязательно. Это может повредить разрешения в вашем домашнем каталоге, что потребует от вас использовать sudoдля virtualbox, что является плохой идеей.
Лекенштейн

1
@Lekensteyn: Приятно осознавать, что в этом нет необходимости. Я использовал его, потому что другие говорили, что он не работает, не будучи root. Что касается нарушений прав доступа, chmod хорошо работает для исправления таких ошибок.
Ричард Повинелли

@Lekensteyn: чоун исправит ошибки владения. Я упоминаю chmod и chown, потому что мне приходилось исправлять проблему, на которую вы ссылались много раз :-)
Ричард Повинелли

2
Это отлично подходит для Windows, но если у вас есть гостевая ОС Linux, эта ссылка может помочь изменить размер разделов: forums.virtualbox.org/viewtopic.php?f=35&t=50661
Jon

Если вы используете Windows в Linux, вам нужно следовать этим параметрам и расширять диск, в противном случае Windows не добавит дополнительное пространство, которое мы добавили
Ajith R Nair

18

Вим, я думаю тебе сначала нужно отменить регистрацию в Vbox. Файл, Media Manager, нажмите на жесткий диск и отмените его регистрацию. Тогда попробуйте еще раз.


2
Не требуется для Linux в VirtualBox. Просто сначала пришлось полностью отключить гостевую ОС.
Обратное

15

Вы также можете сделать это с помощью меню VirtualBox:

Выберите File->Virtual Media Manager ...

Откроется окно: введите описание изображения здесь

Выберите свой диск и выберите Properties. Теперь просто переместите ползунок внизу.

После запуска виртуальной машины окна не распознают новое пространство.

В окнах откройте Computer Management(найдите его в меню «Пуск»), выберите Storage-> Disk Managementв левом меню. Выберите ваш раздел (вероятно, C :), щелкните по нему правой кнопкой мыши и выберите Extend Volume .... Теперь просто нажмите на мастера, и все готово.


Вам нужно сделать Releaseдо этого? Поскольку в настоящее время слайдер является серым. Или вы выбрали динамический раздел?
Рой

Ройи: когда вы создаете виртуальный диск, убедитесь, что он имеет динамический размер.
lenooh

10

После изменения размера и невозможности просмотра изменения размера на моей гостевой машине с Windows XP мне пришлось

  1. клонировать его
  2. измените его размер с помощью "VBoxManage modifyhd winxppro \ Clone.vdi --resize 30720", и все заработало

Я видел на других форумах, что снимки могут мешать изменению размера и невозможности удалить все снимки для разных ошибок, которые я получил, единственным найденным для меня решением было клонировать его, чтобы удалить снимки, а затем изменить их размер, и все работало. Для изменения размера вне окна может помочь gparted загрузочный компакт-диск, который можно найти здесь


6

У меня была такая же проблема, когда я переместил диск и заменил оригинал символической ссылкой. Впоследствии это работает нормально, но вы столкнулись с проблемами с командой 'modifyhd', так как она, по-видимому, канонизирует путь к vdi-файлу при работе с ним. Это создает впечатление, что вы пытаетесь добавить новый диск с тем же UUID, но по другому пути - или что-то в этом роде.

Было две проблемы:

  1. Диск должен был быть удален из виртуальной машины, которая использовала его, но затем также «из списка VirtualBox HDD». Это было исправлено с помощью команды closemedium, которая удаляет его из этого списка.

  2. Изменяемый размер диска был «фиксированным», а не «динамическим», и только динамические диски могут быть изменены. Это было исправлено с помощью команды «клон» (клон динамический), а затем измените размер полученного диска.

Это мой журнал о том, как это было сделано. Обратите внимание, что я ни в коем случае не являюсь пользователем root , кроме случаев, когда впоследствии я изменяю размер раздела и файловой системы.

УДАЛИТЕ АССОЦИАЦИЮ НА ДИСКЕ ОТ В.М.

ПРОБЛЕМА ВСЕ ЕЩЕ ПЕРСИСТЫ:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
VBoxManage: error: Cannot register the hard disk '/datadisk/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' {6cd99209-e4db-4178-a6c2-53f9581b1fad} because a hard disk '/home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' with UUID {6cd99209-e4db-4178-a6c2-53f9581b1fad} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp

Ах, диск все еще "в системе":

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

UUID:        6cd99209-e4db-4178-a6c2-53f9581b1fad
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi
State:       created
Type:        normal

Удалить / удалить диск из списка дисков VirtualBox («closemedium»):

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

Попробуйте изменить размер снова:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

ЧЕРТ, "фиксированный размер" НЕ РАБОТАЕТ! «clonehd» на помощь, так как это оставляет «динамически выделенный» клонированный диск:

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage clonehd TestInception\ 64\ bit.vdi TestInception\ 64\ bit-cloned.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8e237500-173b-401a-9e63-9e64da110da9

СЕЙЧАС ИЗМЕНИТЕ МОМЕНТ (мгновенно):

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd --resize 8192 TestInception\ 64\ bit-cloned.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

ТОГДА ПРИНОСИТСЯ К НЕКОТОРЫМ ВМ, ДЛЯ ИЗМЕНЕНИЯ ИЗМЕНЕНИЯ Это сделано как root. Предполагается, что у вас есть только один раздел и, возможно, подкачка.

# fdisk /dev/sdb  # <- The extra disk, just attached to be resized
// The procedure looks like this:
// m - print help
// p - print table
// d ... - delete partition (delete both if you have root and swap)
// n - new partition (create root/first partition starting on exact same sector as before, typically 2048, but ends on last, or last minus swap)
//  ... n.. (.. then add the swap partition. Calculate how many sectors using original table)
// t - change type of partition (swap partition, if any, to 82 - not 83 which is "normal Linux").
// w - write partition table (write out, with the resized partition)

# e2fsck -f /dev/sdb1

e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 99918/122160 files (0.3% non-contiguous), 471032/487936 blocks

# resize2fs /dev/sdb1

resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/sdb1 to 1965824 (4k) blocks.
The filesystem on /dev/sdb1 is now 1965824 blocks long.

Это сработало для меня, следуя указаниям здесь: yinfor.com/2015/05/…
marijnz0r

4

Это сработало для меня с Virtualbox 5.2.6, установленным на хост-машине Ubuntu 16.04 и гостевой Windows 10: откройте Менеджер Virtualbox, нажмите Глобальные инструменты (в верхнем правом углу) и выберите Virtual Media Manager. Нажмите на вкладку жесткого диска и выберите гостевую ОС. В нижней части окна нажмите на вкладку Атрибуты. Внизу вы можете увидеть размер виртуального диска, а с помощью ползунка вы можете увеличить размер по своему вкусу. (Вы можете только увеличивать, а не уменьшать размер с помощью этого метода). Нажмите на Применить. Запустите гостевую ОС Windows, откройте «Управление компьютером», щелкните правой кнопкой мыши диск «C:» и выберите «Расширить том», чтобы расширить файловую систему невыделенной частью.

Это все, что я должен был сделать, прекрасно работает для меня.


Работал отлично. Разве это не должно быть принятым ответом, по крайней мере, для последних версий VirtualBox?
AlwaysLearning

2

Безошибочный способ сделать это так же, как перейти на больший жесткий диск, который не работает на виртуальной машине. Сначала используйте программу ccleaner или similiar в XP, чтобы очистить все ненужные файлы. Затем создайте дополнительный виртуальный жесткий диск нужного размера. Загрузитесь с ISO-образом clonezilla на виртуальном диске ODD и выполните клонирование вместе с выбранной опцией «изменить размер нового раздела». Затем установите новый виртуальный жесткий диск в качестве основного и не удаляйте старый, пока не убедитесь, что он работает.


2

Я получал ту же ошибку до тех пор, пока не использовал sudo для запуска команды, затем работал отлично, все еще нужно увеличить раздел из гостевой системы, чтобы использовать дополнительное пространство.


Некоторые люди сообщали, что это приводит к тому, что домашний каталог имеет плохие разрешения
Джонатан

2

Убедитесь, что вы вошли в систему как пользователь с правами на запись в файл образа диска. Тогда беги

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Работал для меня в первый раз спрашиваю


1
Вам пришлось переустановить / переформатировать / перераспределить? или он просто загрузился обратно?
Джонатан

2

Если на вашем хост-компьютере установлена ​​ОС Windows, вы можете выполнить следующую команду, чтобы увеличить или уменьшить размер диска vdi в виртуальной коробке:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\your_user_name\VirtualBox VMs\Ubuntu18LTS\Ubuntu18LTS.vdi" --resize 20000

В приведенной выше команде замените your_user_name реальным пользователем Windows, и 20000 - это размер диска в МБ.


1

На самом деле, кажется, что modifyhdодиночество не приносит вам пользы в некоторых случаях. Я фактически расширил свой WinXP vdi, клонировав образ после расширения.

Вот полное пошаговое руководство, которое работало для меня пару недель назад: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/


Можете ли вы объяснить шаги здесь? Ответы, содержащие чуть больше, чем ссылку на другой сайт, как правило, здесь нахмурились и могут быть удалены .
Том Броссман

1
Ну, вам нужно понять, что делает modifyhd, что не намного больше, чем расширение базового виртуального диска, вот и все. Вам все еще нужно расширить файловую систему, которая находится на нем.
Марцин Камински

1

Вот способ изменить размер вашего диска VirtualBox, независимо от того, является ли он диском фиксированного или динамического формата. В частности, это предотвращает эту ошибку:

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

⚠️ Резервное копирование виртуального диска. Вы никогда не знаете, что может пойти не так.

На вашем хосте:

  1. Откройте окно терминала.

    В Windows: откройте командную строку cmd.

  2. Перейдите в каталог с виртуальным диском, размер которого вы хотите изменить. Например:

    cd "My VMs"
  3. Создайте новый диск VirtualBox с вашим желаемым именем файла, размером (в мегабайтах) и форматом (либо Standard(динамический), либо Fixed). Например, чтобы создать диск фиксированного формата емкостью 50 ГБ с именем MyNewDisk.vdi:

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed

    Если VBoxManageкоманда не распознается, укажите полный путь к ней. Его можно найти в каталоге установки VirtualBox. В Windows указанная выше команда будет выглядеть так:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
  4. Скопируйте оригинальный диск на новый диск.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
  5. Изменение размера сделано! Вы можете проверить свойства нового диска, если хотите:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
  6. Измените виртуальную машину, чтобы вместо нее использовать новый диск.

Затем в вашей гостевой ОС вам нужно изменить размер разделов, чтобы использовать только что доступное пространство.


1

Для тех, у кого Windows на VHD, как и у меня, сначала конвертируйте в VDI, клонируя с помощью следующей команды Linux. (Обратите внимание, что Windows VM выключена.)

VBoxManage clonehd Windows10.vhd Windows10.vdi --format vdi

Это будет дублировать VHD.

Затем VDI можно изменить с помощью следующего. Обратите внимание, что VDI на самом деле не будет расти, пока не будет использован.

VBoxManage modifyhd Windows10.vdi --resize 80000

После исправления монтирования хранилища в программном обеспечении хоста виртуальной машины и включения виртуальной машины Windows загружается, но размер раздела остается прежним. Google для инструмента Windows, который может изменить размер раздела диска C. Я использовал EaseUs Partition Master, чтобы увеличить раздел диска C до моего нового размера.

Наконец, VHD может быть удален.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.