23

Я использую VirtualBox, размещенный на Windows 7, и физический жесткий диск, на котором находился один из файлов VDI моей виртуальной машины, был полностью заблокирован и больше не существует.

Проблема заключается в том, что теперь я не могу удалить ни виртуальный жесткий диск, ни виртуальную машину, так как попытка удалить файл VDI выдает ошибку, в которой говорится, что VirtualBox не может найти файл, и, конечно, я не могу удалить виртуальную машину без предварительного освобождения ( или удаление) файла VDI, который использовался этим компьютером.

ОБНОВЛЕНИЕ: обратите внимание, что я также удалил все вложения хранилища и снимки не могут быть удалены по той же причине - он не может найти файлы (из-за несуществующего жесткого диска).

Кто-нибудь знает решение?

3 ответа3

19

Удалите файлы VM xml на жесткий диск. По умолчанию они расположены в C:\Users\YOUR_NAME\.VirtualBox\Machines .

После удаления вы по-прежнему будете получать странные сообщения об ошибках в Virtualbox. Это связано с тем, что некоторая информация о вашем vms-файле находится внутри C:\Users\YOUR_NAME\.VirtualBox\VirtualBox.xml .

Если вы не возражаете против потери какой-либо глобальной конфигурации в вашем VirtualBox, просто удалите этот файл. Virtualbox создаст другой, если он не существует.

Если вы просто хотите удалить определенную виртуальную машину , вам нужно отредактировать Virtualbox.xml в каком-нибудь редакторе xml (блокнот в порядке. Notepad ++ лучше, так как он имеет подсветку синтаксиса).

Вы найдете эти поля:

<MachineRegistry>
  <MachineEntry uuid="UUID" src="Machines\MACHINE_NAME\MACHINE_NAME.xml"/>
</MachineRegistry>
<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="UUID" location="HardDisks\DISC_NAME.vdi" format="VDI" type="Normal"/>
  </HardDisks>
  <DVDImages>
    <Image uuid="UUID" location="C:\IMAGES\IMAGE.iso"/>
  </DVDImages>
  <FloppyImages/>
</MediaRegistry>

Удалите MachineEntry из нужной виртуальной машины. Если у вас есть только одна виртуальная машина и вы хотите удалить все, просто оставьте теги пустыми. Например:

<MachineRegistry/>
<MediaRegistry>
  <HardDisks/>
  <DVDImages/>
  <FloppyImages/>
</MediaRegistry>

...и вы сделали. Я только что проверил все здесь, и это работает безупречно. Если вы хотите избежать проблем, сделайте резервную копию своих файлов конфигурации xml из VirtualBox и определенных виртуальных машин.

(Я не упомянул о снимках, но я верю, что это тот же принцип.)

2

Инструкции выше не решили проблему для меня. Я хотел удалить конкретную машину, а не все. У меня не было MachineEntry для конкретной машины в этом файле: C:\Users\YOUR_NAME\.VirtualBox\VirtualBox.xml

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

Перезапуск VirtualBox тоже не сработал.

Что сработало: перезапустить процесс VBoxSVC.exe а затем перезапустить VirtuaBbox.

1

Сначала удалите все снимки этой виртуальной машины. Затем откройте настройки виртуальной машины, перейдите на вкладку «Хранилище», щелкните правой кнопкой мыши файл vdi в разделе «Контроллер IDE» и нажмите «Удалить вложение». Теперь вы сможете удалить VDI из Virtual Media Manager.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .