Как переместить файл виртуального жёсткого диска Virtualbox

Ошибка Virtualbox «Не удалось открыть файл виртуального жёсткого диска»

На английском языке ошибка звучит так:

Cannot register the hard disk because a hard disk with UUID ... already exists.

vbox-move-hdd-0005

Данная ошибка возникает при попытке добавить файл виртуального жёсткого диска к виртуальной машине после перемещения этого файла.

Зачем перемещать файл виртуального жёсткого диска

Это бывает необходимо, если на текущем жёстком диске компьютера недостаточно свободного места. Либо в случае, если вы хотите переместить файл на более быстрый накопитель компьютера (например SSD) для улучшения быстродействия виртуальной машины.

Перемещение файла виртуального жёсткого диска

1.Поиск файла и собственно перемещение

Откройте менеджер виртуальных машин. Выберите нужную виртуальную машину и вызовите её свойства (Настроить):

vbox-move-hdd-0011

На вкладке Носители выясните путь к файлу виртуального жёсткого диска и скопируйте его:

vbox-move-hdd-0012

Вставьте в адресную строку путь, сотрите имя файла в конце и нажмите Enter. Вы попадёте в папку, где расположен файл.

Переместите файл, куда желаете. Мы в нашем примере перемещаем с диска E на диск C SSD.

vbox-move-hdd-0015

2. Изменение UUID виртуального жёсткого диска в Virtualbox

Выполните следующие действия:

1. Запустите командную строку:

vbox-move-hdd-0021

2. Откройте папку, где установлена Virtualbox.

3. В командной строке наберите cd и поставьте один пробел.

4. Перетащите иконку папки в командную строку. Должна получиться строка:

cd "C:\Program Files\Oracle\Virtualbox"

5. Нажмите Enter:

vbox-move-hdd-0025

6. Наберите команду vboxmanage internalcommands sethduuid и поставьте один пробел.

7. Перетащите файл жёсткого диска в командную строку. Должна получиться строка вида:

vboxmanage internalcommands sethduuid C:\folder\win7.vdi

8. Нажмите Enter: 

vbox-move-hdd-0026

Вот так выглядит окно консоли после выполнения всех команд:

vbox-move-hdd-0027

Если вы видите сообщение

UUID changed to:...

значит, всё получилось.

Если при попытке изменить  UUID вы получили ошибку Syntax error: Invalid UUID parameter, возьмите путь в кавычки следующим образом:

vboxmanage internalcommands sethduuid "E:\VirtualBox VMs\win8\win8.vdi"

Чаще всего эта ошибка возникает из-за того, что в имени какой-то папки в пути есть пробелы.

3. Подключение перемещённого файла к виртуальной машине

Откройте свойства виртуальной машины и перейдите на вкладку Носители.

Удалите жёсткий диск:

vbox-move-hdd-0028

Добавьте жёсткий диск, указав новое расположение перемещённого файла виртуального жёсткого диска:

vbox-move-hdd-0029

Выбрать существующий образ

Нажмите ОК для сохранения изменений виртуальной машины:

Сохранение свойств виртуальной машины

Как видите, теперь ошибки не наблюдается.

11 комментариев к “Как переместить файл виртуального жёсткого диска Virtualbox”

  1. На счет перемещения:
    Можно сделать все гораздо проще. Если у нас есть виртуальные машини — есть и папка «C:\Users\имя пользователя\VirtualBox VMs». Далее вы найдете папки с виртуальными машинами, или по крайней мере с когфиг.файлами. Для примера — далее у меня идет папка «linux mint», в ней 2 папки (которые в данном случае нам не нужны) и 2 конфиг. файла. linux mint.vbox и linux mint.vbox-prev. Открываем оба файла (к слову — они идентичны) в обыкновенном блокноте (даже без прав админа), в первой строчке находим следующее:
    <HardDisk uuid="{не обращаем внимания на все эти циферки}" location="H:/бла-бла-бла/linux mint.vdi" <- вот здесь вписываем новый путь к файлу, закрываем блокнот и отвечаем "сохранить" перед закрытием. И все. После запуска виртуалбокса он сразу увидит новое расположение файла и без вопросов запустит машину.
    ИНОГДА: location может выглядеть вот так: location="linux mint.vdi". В этом случае наши действия аналогичны. меняем его на location="С:\новая папка, куда вы переместили диск\linux mint.vdi" (на счет слешей не уверен, в какую сторону). Было 2 случая, где в одном слеши стояли в одну сторону (так как в линуксе), а во втором, когда виртуалился так же линукс — слеши были как в винде…
    Как то так.

    Ответить
  2. Я еще проще сделал. Открываем в хекс редакторе образ. По адресу 00000188 от балды меняем uuid на любой. Например меняем местами буквы. 4e — > e4. Сохраняем файл. Теперь образ добавится точно

    Ответить
    • ПОМОГЛО !!!!!!!!! в там не только 188 а по этой строке то есть и 187 можно поменять потом название поменять в VM и вуаля работает, неделю мучался СПАСИБО !

      Ответить
  3. Спасибо большое! Помогло. Сохранил на будущее для себя.
    Автор, дай Бог тебе здоровья!

    Ответить
  4. В virtualbox 6.0 достаточно ПКМ по виртуальной машине и выбрать в контекстном меню строку «Перенести». Всё.

    Ответить
    • У меня не сработало. Но потом я увидел, что машина находилась не в выключенном состоянии, а в состоянии сохранения сеанса. Возможно из-за этого не вышло.

      Ответить
  5. У меня во всех случаях в конце получалась ошибка.
    Я сделал по другому:

    1. Скопировал файл жесткого диска .vdi в нужное мне место
    2. Создал новую виртуальную машину и указал для неё в настройках этот файл
    3. Убедившись что новая машина пашет, старую удалил вместе со старым .vdi файлом

    Ответить

Оставьте комментарий