Восстановление файлов с сломанной машины Virtualbox.vdi

На моем Ubuntu 12.04.1, работающем на virtualbox, не хватило места, пока я устанавливал на него программное обеспечение, и теперь оно не перезагружается. У меня есть файлы, которые мне нужно восстановить. у меня есть ubuntu64.vdi файл на моем ноутбуке с Windows 7 (хост), и мне было интересно, есть ли способ восстановить файлы из файла vdi.

Параллельно я сгенерировал новую машину 12.04.1 на виртуальной машине на том же ноутбуке, и я буду использовать ее вместо загруженной.

Я могу добавить разоренный vdi к списку дисков в рабочем. Затем я использовал gnome nautilus, чтобы смонтировать разорванный диск.

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

Редакция:

Вот что Virtual Media Manager говорит мне о моем ubuntu64.vdi файл:введите описание здесь

EDITED2:

Я скопировал мой ubuntu.vdi на внешний USB с большим количеством дискового пространства. Я пытался использовать Windows для клонирования, но получил ошибку:

введите описание здесь

Я попробовал то же самое с рабочей виртуальной машины через общую папку USB-накопителя, и она начала клонирование. Прошло много времени, но закончилось успешно:

root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64# 
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...

10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3

EDITED3:

После создания необработанного файла я запускаю testdisk с Deeper SearchЯ получаю список вроде этого:введите описание здесь

Атер Deeper Search закончил, я получаю список, как это:

введите описание здесь

Но я не знаю, какой именно снимок... Есть идеи?

5 ответов

Из командной строки

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

VBoxManage clonehd <sourcename> <clone.raw> --format RAW

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

testdisk <clone.raw>

Виртуальной машины

Если поврежденный образ диска VDI все еще зарегистрирован в Virtual Box, мы можем добавить этот образ в качестве диска на нашу новую виртуальную машину:

введите описание здесь

Запустите виртуальную Ubuntu, в которую мы добавили сломанный.vdi, но не монтируем диск.

  1. Создайте каталог на смонтированном разделе для хранения собранных данных (например, ~/rescued),

  2. Установить тестдиск Установить тестдиск на виртуальной машине.

  3. Запустите там тестдиск с терминала:

    sudo testdisk
    
  4. Выберите подходящий диск для сбора данных (здесь показано для /sdb) и выберите [Proceed]

    введите описание здесь

  5. Выберите подходящий макет раздела (обычно Intel)

  6. Выбрать [Analyse] - [Quick Search]

  7. Выберите раздел, содержащий данные для сбора (здесь присутствовал только один раздел NTFS):

    введите описание здесь

  8. Нажмите P, чтобы вывести список файлов этого раздела.

  9. Перейдите в каталог, содержащий данные. Просмотрите имена файлов, чтобы убедиться, что вы выбрали правильные.

  10. Выберите каталоги или файлы для сбора с помощью :. Все выбранные файлы / каталоги будут отмечены зеленым:

    введите описание здесь

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

  12. Выберите каталог на смонтированных разделах вашей виртуальной машины Ubuntu для хранения восстановленных данных:

    введите описание здесь

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

Заметки:

  • В случае, если мы не можем увидеть наши файлы с [Quick Search] вариант в 6. мы можем выполнить [Deeper Search], Это также перечислит предыдущие удаленные и перезаписанные разделы. Поэтому нам нужно убедиться, что мы выбрали соответствующие разделы, в которых находятся наши данные.

  • Если бы мы сделали снимки.vdi, мы можем найти их в ~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdkно всякий раз, когда мы использовали функцию снимка Virtual Box, любые изменения снимка будут записаны в дифференциальный файл.

    Чтобы объединить дифференциальный файл с жестким диском, нам нужно удалить все снимки (что, вероятно, не то, что нам нужно, так как тогда мы могли бы просто восстановить предыдущий снимок, а не вызывать восстановление данных), или нам нужно клонировать диск машины, используя:

    VBoxManage clonehd <name_of_source> <clone>
    

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

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

  • В случае, если наша спасательная Ubuntu слишком мала для хранения восстановленных данных, мы можем создать еще один новый виртуальный диск для привязки к ВМ. Затем этот диск должен быть смонтирован в виртуальной машине, чтобы иметь возможность сохранять данные с тестового диска там.

1) Попробуйте восстановить снимок по UUID, используйте следующий хак:

  • выберите UUID состояния, которое вы хотите восстановить.
  • Откройте файл.xml, желательно в инструменте (работает Internet Explorer), который позволяет легко перемещаться по файлу XML.
  • В "ОЧЕНЬ НИЖЕ" в разделе "Контроллеры хранения" найдите UUID текущего состояния и запомните параметры "Имя хранилища", "Тип" и "Тип AttachedDevice=, порт =" и "Устройство = настройки".
  • В середине найдите нужный снимок.
  • В разделе "Контроллер хранилища" снимка найдите AttachedDevice со значениями (имя / тип / тип / порт / устройство), которые соответствуют значениям, полученным выше.
  • Этот образ UUID идентифицирует снимок для жесткого диска. Снять скобки {} и

введите команду C:> VBoxManage clonehd <UUID> CloneDisk.vdi

Надеюсь, это поможет, я нашел решение здесь: ( https://forums.virtualbox.org/viewtopic.php?t=791)

2) если шаги в 1) не работают, вот другие шаги, которые вы можете попробовать. Как клонировать текущее состояние диска:

  • Откройте диспетчер виртуальных носителей (Меню: Файл> Диспетчер виртуальных носителей).
  • Перейдите на жесткий диск, который вы хотите клонировать, и полностью раскройте дерево (используйте клавишу * на цифровой клавиатуре).
  • Найдите файл {hexUUID}.vdi, который прикреплен к виртуальной машине, для которой вы хотите клонировать текущее состояние. Это будет (один из) листовых файлов в конце ветви. Когда вы выбираете его, текст "Attached to:" в нижней части окна будет отображать: "Attached to:", без (имя снимка) в скобках после него.
  • Щелкните по имени файла справа от "Location:", отображаемого в нижней части окна.
  • Ctrl + C / Копировать, чтобы скопировать текст в буфер обмена, который будет выглядеть примерно так: (путь) {b6441469-5ccb-418c-8fdd-73c5e1a17314}.vdi
  • Ctrl + V / Вставьте и извлеките значение hexUUID (снимая скобки {}) и запустите clonehd, чтобы клонировать его!

Это решение отсюда: ( http://www.i-m-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/) Оба говорят в основном об одном и том же.

Обнаружил, что мой поврежденный файл vdi можно восстановить с помощью 7-Zip, надеюсь, этот простой метод тоже кому-то поможет.

У меня была система Linux повреждена в / а также fsck не мог это исправить. Я использовал следующий простой подход:

  1. Добавьте новый VDI для замены на машину.
  2. Загрузите новый linux ISO.
  3. Загрузите и установите новый linux на диск, который вы добавили в (1).
  4. Смонтируйте диск в вашей новой системе и скопируйте нужные вам файлы. Обычно это означает копирование /home/user/ папка. Не забудьте скопировать скрытые файлы (файлы настроек).

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

Запустите старую виртуальную машину после вставки Ubuntu ISO. Ubuntu проанализирует машину. Выберите «Попробовать ubuntu» (очевидно, ничего не устанавливайте и не стирайте данные). Как только он загрузится (и это произойдет, потому что он использует Ubuntu ISO, а не вашу старую неработающую установку), в браузере (Nautilus) выберите «Другие местоположения», чтобы перейти к вашим старым данным и переместить их в безопасное место.

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

Другие вопросы по тегам