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

218

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

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

[email protected]:/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.

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

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

    
задан wim 18.12.2011 в 12:51
источник

11 ответов

272

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

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

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

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

    
ответ дан Tom Brossman 18.12.2011 в 13:07
источник
20

Следующие работали для меня:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

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

    
ответ дан Richard Povinelli 15.04.2012 в 13:53
17

Вим, мне кажется, вам нужно сначала отменить его из Vbox. File, Media Manager, нажмите на hdd и отмените регистрацию. Затем повторите попытку.

    
ответ дан tiempjuuh 19.12.2011 в 12:40
7

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

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

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

    
ответ дан Philippe Gachoud 28.05.2013 в 13:11
3

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

Существовали две проблемы:

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

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

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

УДАЛИТЕ АССОЦИАЦИЮ К ДИСКУ ОТ VM.

ПРОБЛЕМА ВСЕ ЕЩЕ НЕОБХОДИМОСТИ:

[email protected]:~/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

Ah, диск по-прежнему «находится в системе»:

[email protected]:~/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"):

[email protected]:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
[email protected]:~/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)

Повторите попытку изменения размера:

[email protected]:~/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!

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

[email protected]:/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

СЕЙЧАС УМЕНЬШИТЬ (мгновенно):

[email protected]:/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.
    
ответ дан stolsvik 09.04.2013 в 14:01
1

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

    
ответ дан xyzzyman 19.12.2011 в 15:03
1

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

    
ответ дан JJinCO 01.02.2012 в 10:34
1

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

Вот полное пошаговое руководство, которое работало для меня пару недель назад: Ссылка

    
ответ дан 0x61696f 01.05.2012 в 21:25
1

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

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

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

    
ответ дан tindase 27.03.2012 в 00:53
0

Вот способ изменения размера вашего диска 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. Измените виртуальную машину на использование нового диска.

Далее, на гостевой ОС вам необходимо изменить размер разделов, чтобы использовать новое пространство.

    
ответ дан Virtlink 18.08.2017 в 15:53
0

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

Вот и все, что я должен был сделать, отлично работает для меня.

    
ответ дан Judex 24.01.2018 в 18:55