VirtualBox не может зарегистрировать жесткий диск уже существует


151

Я создал файл виртуального диска VM_1_Ubuntu.vdi . Затем я переместил его в другую папку. Я попытался обновить настройки виртуальной машины (щелкните правой кнопкой мыши виртуальную машину -> настройки -> Хранилище -> вкладка SATA контроллера, путь VM_1_Ubuntu.vdi ). Я хотел установить новый путь.

Он говорит, что не может зарегистрировать жесткий диск уже существует

Ответы:


220

Я нашел решение

Файл -> Virtual Media Manager -> Удалены существующие образы (заметьте, я удалил их только из реестра).

Я следовал за этими шагами.

http://www.webdesignblog.asia/software/virtualbox-moving-vdi-file-re-linking-guest/#sthash.1QOHeiw5.dpbs

После этого я смог обновить путь в настройках ВМ.


2
Если диск, на котором был сохранен диск, недоступен, то сначала освободите диск (Ctrl + L) из виртуальной машины и удалите (Ctrl + D). В противном случае перед освобождением диска вы не сможете удалить. После этого следуйте инструкциям в приведенной выше ссылке или откройте «Настройки» виртуальной машины, перейдите в «Хранилище», нажмите «Добавить вложение», выберите «Добавить жесткий диск» и «Выбрать существующий диск», затем выберите файл vdi и вы сделано.
Сайед Насир Аббас

1
Вы должны удалить все снимки, чтобы кнопка удаления не была серой.
Риши

151

Изменить UUID в файле VDI можно с помощью команды:

 VBoxManage internalcommands sethduuid <file.vdi>

Кажется, эта команда назначает новый «случайный» UUID для файла. Не много документации по этому вопросу.


2
Идеально подходит для моих потребностей (изменение размера виртуального жесткого диска не работало, не перемещая его).
Шири

3
VBoxManage - это исполняемый файл, который для меня находился в "C: \ Program Files \ Oracle \ VirtualBox", поэтому просто запустите его из окна cmd.
Джайлс

1
Это идеальное решение, если у вас есть образ базовой ОС и вы хотите создать несколько приложений для установки копий базы без необходимости изменения самой базы.
Jersey_Guy

Помог мне
изменить размер

Это решение также разрешило ситуацию, когда я скопировал виртуальную машину в другое место, удалил оригинал из VirtualBox и попытался сжать диск. Команда: $ VBoxManage modifymedium Windows \ 7 \ Professional.vdi --compact Ошибка: VBoxManage: ошибка: невозможно зарегистрировать жесткий диск '/ Users / c / VirtualBox VMs / Windows 7 Professional / Windows 7 Professional.vdi' {a510ee0d- 2cef-47db-b25f-acae9e341d45} потому что жесткий диск '/ Volumes / ramdisk / Windows 7 Professional / Windows 7 Professional.vdi' с UUID {a510ee0d-2cef-47db-b25f-acae9e341d45} уже существует
EmpathicSage

27
  1. Выберите файл из Oracle VM VirtualBox Manager
  2. Менеджер виртуальных медиа
  3. Удалите файл (выделен желтым цветом) на вкладке Жесткие диски.

7

Если нет возможности удалить или изменить путь к файлу жесткого диска с помощью Virtual Media Manager (в моем случае), то:

  1. Откройте файлы « .vbox» и « .vbox-prev» (если они есть) в любом текстовом редакторе.
  2. Отредактируйте атрибут «location» элемента «HardDisk» по своему пути, например: «d: /VM/VirtualBox/Win10/Win10.vmdk» ( скриншот ).

4

В некоторых случаях сначала нужно освободить, а затем удалить и повторно добавить через Virtual Media Manager.


3

1 - Откройте файлы «.vbox» и «.vbox-prev» (если они есть) в любом текстовом редакторе и замените первый символ HardDisk uuid (обратите внимание, чтобы отменить это изменение на шаге 6)

Пример: nano /home/virtualbox/WindowsServer/WindowsServer.vbox

Изменить:

<HardDisks>
        <HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

Для того, чтобы:

<HardDisks>
        <HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

2 - перезагрузить машину

4 - Остановить виртуальную машину (если запущена)

5 - на терминале:

su vbox
cd /home/virtualbox/WindowsServer/
VBoxManage modifyhd WindowsServer.vdi --resize SIZE
exit
exit

изменить размер для числа в мегабайтах, например, 80000 (80 ГБ)

6 - Снова откройте файлы '.vbox' и '.vbox-prev' (если они есть) в любом текстовом редакторе и замените первый символ HardDisk uuid оригинальным значением

Пример: nano /home/virtualbox/WindowsServer/WindowsServer.vbox

Изменить:

<HardDisks>
        <HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

Для того, чтобы:

<HardDisks>
        <HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

7 - перезагрузить машину


3

Я действительно ценю предложения здесь. Комментарии Импалера и Олега помогли мне собрать решение вместе.

Используйте VBoxManage CLI. Есть команда modifymedium с --setlocationопцией.

Я предлагаю открыть графический интерфейс VBox (на VM VirtualBox Manager 6.0)
- выберите «Virtual Media Manager» (я использовал меню «Файл»)
- нажмите кнопку «Информация» для диска, сообщающего об этой ошибке
- скопируйте UUID
Примечание: я удалил контроллер из настройки «Хранение» до следующего шага.
- откройте командную строку и перейдите к местоположению файла .vdi.
Рекомендуется набрать VBoxMange, чтобы увидеть список опций, но это команда для запуска:

VBoxManage modifymedium[введите тип носителя здесь] [UUID] --setlocation[полный путь к файлу .vdi]

Наконец, подключите контроллер к любой виртуальной машине - желательно к той, которую вы хотите исправить.


0

Решение, которое сработало для меня, заключается в следующем:

  1. Убедитесь, что VirtualBox Manager не работает.
  2. Резервное копирование файлов ~\.VirtualBox\VirtualBox.xmlи ~\.VirtualBox\VirtualBox.xml-prev.
  3. Отредактируйте эти файлы, чтобы изменить <HardDisks>...</HardDisks>раздел, чтобы удалить дубликат записи <HardDisk />.
  4. Теперь запустите VirtualBox Manager.

Пример:

  <HardDisks>
    <HardDisk uuid="{38f266bd-0959-4caf-a0de-27ac9d52e3663}" location="~/VirtualBox VMs/VM1/box-disk001.vmdk" format="VMDK" type="Normal"/>
    <HardDisk uuid="{a6708d79-7393-4d96-89da-2539f75c5465e}" location="~/VirtualBox VMs/VM2/box-disk001.vmdk" format="VMDK" type="Normal"/>
    <HardDisk uuid="{bdce5d4e-9a1c-4f57-acfd-e2acfc8920552}" location="~/VirtualBox VMs/VM2/box-disk001.vmdk" format="VMDK" type="Normal"/>
  </HardDisks>

Обратите внимание на фрагмент выше, что последние две записи относятся к одной и той же виртуальной машине, но имеют разные идентификаторы uuid. Один из них недействителен и должен быть удален. Какой из них недействителен, можно узнать по методу проб и ошибок - сначала удалите вторую запись и попробуйте; если это не работает, удалите третью запись.


0

После многих дней борьбы наконец-то нашел решение, которое работает отлично.

Mac OS откройте папку ~ / Library (в вашем домашнем каталоге) и удалите папку VirtulBox. Это удалит все конфигурации, и вы сможете снова запустить виртуальную коробку!

Другие ищут папку .virtualbox в вашем домашнем каталоге. Удалите его и откройте VirtualBox, чтобы решить вашу проблему.

Ура !!

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