В моем Ubuntu 12.04.1, работающем на virtualbox, не хватило места, когда я устанавливал на него программное обеспечение, и теперь он не перезагружается . У меня есть файлы, которые мне нужно восстановить. У меня есть файл ubuntu64.vdi
на моем ноутбуке с Windows 7 (хост), и мне было интересно, есть ли способ восстановить файлы из файла vdi.
Параллельно я сгенерировал новую машину 12.04.1 на виртуальной машине на том же ноутбуке, и я буду использовать эту машину вместо обычной.
Я могу добавить растоптанный vdi
к списку дисков в рабочем. Затем я использовал gnome nautilus, чтобы смонтировать разорванный диск.
Я могу найти там файлы, но им около 2 месяцев. Я думаю, что это совпадает с прошлым разом, когда я делал снимок виртуальной коробки машины, но не последний раз, когда я получил рабочую машину, которая была вчера. Есть ли какой-нибудь способ смонтировать vdi
со вчерашнего дня, непосредственно перед тем, как он рухнул?
РЕДАКТИРОВАНИЕ:
Вот что Virtual Media Manager
говорит мне о моем файле ubuntu64.vdi
:
РЕДАКТИРОВАНИЕ2:
Я скопировал свой 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
РЕДАКТИРОВАНИЕ3:
После создания необработанного файла я запускаю testdisk
с Deeper Search
, я получаю список, подобный этому:
Атер Deeper Search
закончил, я получаю список вроде этого:
Но я не знаю, какой какой снимок ... Есть идеи?
У меня была повреждена система Linux at /
и fsck
не может исправить это . Я использовал следующий простой подход:
/ home / user /
. Не забудьте скопировать скрытые файлы (файлы настроек). У меня сработало. Повреждение диска только мешало загрузке, в моей домашней папке не было потери данных.
1) Попробуйте восстановить снэпшот по UUID, используя следующий хак:
введите команду C:> VBoxManage clonehd
Надеюсь, это поможет, я нашел решение здесь: (https://forums.virtualbox.org/viewtopic.php?t=791)
2) если шаги в 1) не работают, то есть еще несколько шагов, которые можно попробовать. Как клонировать текущее состояние диска:
Thi solution is from here: (http://www.i-m-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/) Оба говорят об одном и том же.
В случае, если мы используем Ubuntu в качестве хоста, мы сможем преобразовать наш . vdi диск на необработанный диск с помощью следующей команды:
VBoxManage clonehd <sourcename> <clone.raw> --format RAW
Мы можем открыть testdisk с этим файлом для восстановления файлов образа виртуального диска (также см. ниже):
testdisk <clone.raw>
В случае, если сломанный образ диска VDI все еще зарегистрирован в Virtual Box, мы можем добавить этот образ в качестве диска к нашей новой виртуальной машине:
Запустите вашу виртуальную Ubuntu, к которой мы добавили сломанный образ. vdi but не монтируйте диск.
Создайте каталог на смонтированном разделе для хранения собранных данных (например, ~/cued
),
Установите testdisk на виртуальную машину.
Запустите тестовый диск с терминала там:
sudo testdisk
Выберите соответствующий диск для сбора данных (здесь показан для /sdb
) и выберите [Продолжить]
Выберите соответствующую структуру разделов (обычно Intel
)
Выберите [Анализировать]
- [Быстрый поиск]
Выберите раздел, содержащий данные для сбора (здесь присутствовал только один раздел NTFS):
Нажмите P , чтобы перечислить файлы на этом партитоне.
Перейдите в каталог, содержащий данные. Просмотрите имена файлов, чтобы убедиться, что Вы выбрали правильные.
Выберите каталоги или файлы для сбора данных, используя : . Все выбранные файлы/директории будут помечены зеленым цветом:
Нажмите верхний регистр C , чтобы скопировать все выбранные каталоги/файлы в каталог восстановления, который будет выбран на следующем шаге.
Выберите каталог на смонтированном в Ubuntu VM разделе(ах), чтобы сохранить сохраненные данные:
Нажмите c , чтобы начать копирование данных из сломанной. vdi в наш каталог спасения в здоровой ВМ.
В случае, если мы не видим наши файлы с опцией [Быстрый поиск]
в 6. нам, возможно, придется выполнить [Глубокий поиск]
. При этом будут также перечислены ранее удалённые и перезаписанные разделы. Поэтому нам необходимо убедиться, что мы выбрали соответствующие разделы, на которых находятся наши данные.
Если бы мы сделали снимки из .vdi, мы могли бы найти их в ~/.VirtualBox/Machines/
, но всякий раз, когда мы использовали функцию снимка Virtual Box, любые изменения из снимка будут записаны в дифференциальный файл.
Для объединения дифференциального файла с жестким диском нам нужно удалить все снимки (что, вероятно, не то, что нам нужно, так как тогда мы могли бы просто восстановить предыдущий снэпшот, а не вызывать восстановление данных), или нам нужно клонировать диск машины, используя:
VBoxManage clonehd .
После этого мы связываем клон к нашей VM спасения как изображено выше.
Запись к сломанному .vdi должна быть сделана только после того как данные были безопасны по мере того как это может далее повредить файловую систему.
В случае если наше спасение Ubuntu слишком мало для того чтобы держать спасенные данные мы можем создать другой новый виртуальный привод для того чтобы связать к VM. Затем этот диск должен быть смонтирован в ВМ, чтобы иметь возможность сохранять данные из тестдиска там.
Нашел, что мой поврежденный файл vdi можно восстановить с помощью 7-Zip , надеюсь, этот простой метод тоже кому-то помогает.