Восстановление потерянных файлов ubuntu vdi [duplicate]

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

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

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

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

EDITED:

Вот что Virtual Media Manager рассказывает мне о моем файле ubuntu64.vdi:

EDITED2:

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

enter image description here [!d7]

Я попробовал то же самое с рабочей виртуальной машины через общую папку 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, я получаю список, подобный этому :

Ater Deeper Search закончен, я получаю список, подобный этому:

enter image description here [!d15]

Но я не знаю, какой один из них - моментальный снимок ... Любые идеи?

21
задан 13 April 2017 в 15:23

7 ответов

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

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

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

1
ответ дан 17 July 2018 в 18:54

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

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

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

Мы можем затем откройте тестовый диск с этим файлом для восстановления файлов на изображении виртуального диска (см. также ниже):

testdisk <clone.raw>

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

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

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

Создайте каталог на смонтированном разделе, чтобы сохранить собранные данные (например, ~/rescued), установить тестовый диск на виртуальной машине. Запустите тестовый диск с терминала там: sudo testdisk Выберите подходящий диск для сбора данных из (здесь показано для /sdb) и выберите [Proceed] Выберите подходящую компоновку разделов (обычно Intel) Выберите [Analyse] - [Quick Search] Выберите раздел, который содержит данные для сбора данных (здесь присутствовал только один раздел NTFS): Нажмите P, чтобы просмотреть файлы на этой части. Перейдите в каталог, содержащий данные. Просмотрите имена файлов, чтобы убедиться, что вы выбрали правильные. Выберите каталоги или файлы для сбора, используя:. Все выбранные файлы / каталоги будут отмечены зеленым: нажмите верхний регистр C, чтобы скопировать все выбранные каталоги / файлы в каталог спасения, который будет выбран на следующем шаге. Выберите каталог на вашем монтированном разделе (ов) Ubuntu VM для хранения данных: нажмите 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 слишком мало для хранения спасенных данных, мы можем создать еще один новый виртуальный диск для привязки к виртуальной машине. Затем этот диск должен быть смонтирован на виртуальной машине, чтобы сохранить данные из testdisk.
19
ответ дан 17 July 2018 в 18:54

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

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

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

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

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

выберите UUID состояния, которое вы хотите восстановить. Перейдите на жесткий диск, который вы хотите клонировать, и полностью разверните дерево (используйте * на цифровой клавиатуре). Откройте файл .xml, желательно в инструменте (Internet Explorer), который позволяет легко перемещать XML-файл. Нажмите имя файла справа от «Местоположение», отображаемое в нижней части окна. В ОЧЕНЬ НИЖНЕЙ ЧАСТИ в разделе Контроллеры хранения найдите UUID текущего состояния и обратите внимание на значения StorageController name =, type = и AttachedDevice type =, port = и device =. Ctrl + V / Вставить и извлечь значение hexUUID (удаление скобок {}) и запустить clonehd для его клонирования!

Решение Thi отсюда: ( https://forums.virtualbox.org/viewtopic.php?t=791 ) Оба говорят в основном о том же.

5
ответ дан 17 July 2018 в 18:54

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

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

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

1
ответ дан 23 July 2018 в 19:42

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

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

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

Мы можем затем откройте тестовый диск с этим файлом для восстановления файлов на изображении виртуального диска (см. также ниже):

testdisk <clone.raw>

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

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

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

Создайте каталог на смонтированном разделе, чтобы сохранить собранные данные (например, ~/rescued), установить тестовый диск на виртуальной машине. Запустите тестовый диск с терминала там: sudo testdisk Выберите подходящий диск для сбора данных из (здесь показано для /sdb) и выберите [Proceed] Выберите подходящую компоновку разделов (обычно Intel) Выберите [Analyse] - [Quick Search] Выберите раздел, который содержит данные для сбора данных (здесь присутствовал только один раздел NTFS): Нажмите P, чтобы просмотреть файлы на этой части. Перейдите в каталог, содержащий данные. Просмотрите имена файлов, чтобы убедиться, что вы выбрали правильные. Выберите каталоги или файлы для сбора, используя:. Все выбранные файлы / каталоги будут отмечены зеленым: нажмите верхний регистр C, чтобы скопировать все выбранные каталоги / файлы в каталог спасения, который будет выбран на следующем шаге. Выберите каталог на вашем монтированном разделе (ов) Ubuntu VM для хранения данных: нажмите 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 слишком мало для хранения спасенных данных, мы можем создать еще один новый виртуальный диск для привязки к виртуальной машине. Затем этот диск должен быть смонтирован на виртуальной машине, чтобы сохранить данные из testdisk.
19
ответ дан 23 July 2018 в 19:42
  • 1
    спасибо за эти блестяще подробные инструкции. Я правильно их выполнил и добавил файлы для копирования в папку спасения. Копия прошла успешно, но временная метка файлов была довольно старой: летом 2013 года вместо двух дней назад. Я не помню, если бы я делал что-то особенно 8 месяцев назад, но на первый взгляд мои файлы с двух дней назад не были там. Теперь я использую Deeper Search, чтобы просмотреть его снова. – 719016 25 February 2014 в 15:36
  • 2
    @ 213441265152351 - также посмотрите на папку моментальных снимков ... может быть новый .vmdk (по крайней мере, это было с моими системами здесь). Надеюсь, вы найдете свои данные :) – Takkat 25 February 2014 в 15:47
  • 3
    Я сделал Deeper Search, и через пару часов снова просмотрел содержимое, которое я хотел восстановить: они все еще указывают на версию виртуальной машины на летнее 2013 год, раньше, чем просто монтаж раздела с помощью gnome nautilus, который давал мне версия в январе 2014 года, но все еще не удалось найти файлы с двух дней назад. – 719016 25 February 2014 в 16:25
  • 4
    @ 213441265152351: Ну, тогда это сложнее. Возможно, что разностные изображения еще не были надлежащим образом записаны на диск, когда «сбой» произошло. Вы можете попытаться взглянуть на диск из Virtual Media Manager (см. [D0] virtualbox.org/manual/ch05.html#diffimages ), чтобы убедиться, что это так, но я должен сказать, что Тогда у меня не будет хорошей идеи о том, как восстановить данные с этих изображений. – Takkat 25 February 2014 в 16:41
  • 5
    @Rmano: на самом деле клонированный VDI не будет включать никаких снимков, но будет последним текущим состоянием виртуальной машины с объединенными дифференциалами. Только в случае, если нам нужно клонировать более ранний снимок, мы можем использовать моментальный снимок VDI для клонирования, но затем все изменения позже моментального снимка не будут включены в клон. – Takkat 1 March 2014 в 01:37

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

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

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

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

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

выберите UUID состояния, которое вы хотите восстановить. Перейдите на жесткий диск, который вы хотите клонировать, и полностью разверните дерево (используйте * на цифровой клавиатуре). Откройте файл .xml, желательно в инструменте (Internet Explorer), который позволяет легко перемещать XML-файл. Нажмите имя файла справа от «Местоположение», отображаемое в нижней части окна. В ОЧЕНЬ НИЖНЕЙ ЧАСТИ в разделе Контроллеры хранения найдите UUID текущего состояния и обратите внимание на значения StorageController name =, type = и AttachedDevice type =, port = и device =. Ctrl + V / Вставить и извлечь значение hexUUID (удаление скобок {}) и запустить clonehd для его клонирования!

Решение Thi отсюда: ( https://forums.virtualbox.org/viewtopic.php?t=791 ) Оба говорят в основном о том же.

5
ответ дан 23 July 2018 в 19:42

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

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

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

1
ответ дан 14 August 2018 в 12:44

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

Похожие вопросы: