Відновлення файлів зі зламаної машини Virtualbox .vdi


23

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

Паралельно я генерував нову машину 12.04.1 на virtualbox у тому самому ноутбуці, і я буду використовувати її замість збитого.

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

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

ВІДМОВЛЕНО:

Ось що Virtual Media Managerрозповідає про моєubuntu64.vdi файл: введіть тут опис зображення

EDITED2:

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

введіть тут опис зображення

Я спробував те ж саме з робочого VM через загальну папку 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, я отримую список , як це: введіть тут опис зображення

Ater Deeper Searchзакінчився, я отримую такий список:

введіть тут опис зображення

Але я не знаю, що таке, який знімок ... Будь-які ідеї?


@Takkat, це звучить круто. Як я можу це зробити?
719016

@Takkat, я це зробив і встановив за допомогою gnome nautilus, але я вважаю, що він встановив двомісячну версію машини.
719016

2
Проблема тут полягає не в тому, як відновити диск, а в тому, як зробити це злившись із знімком. Якщо ви спробуєте клонувати ваш vdi, у нього з’явиться інша uuid, знімок не буде працювати з ним, і ви втратите останні дані. Я не використовую знімки регулярно, тому що у мене були пошкоджені диски в минулому, і я зміг відновити базовий диск, але завжди втрачав дельти. Я сподіваюся, що хтось тут дає хороший рецепт, щоб відновити і базу, і дельту.
Пабло Марін-Гарсія

1
Це в наступний раз: ніколи не зберігайте дані на віртуальній машині, завжди монтуйте зовнішній накопичувач ... і не робіть часті резервні копії / синхронізації через rsync.
Ді

1
Спробуйте клонувати найсвіжіший знімок, а не оригінальний диск. Вам слід скористатися Vboxmanage clonehd 2208...(скопіюйте тут останній UUID). Дивіться serverfault.com/a/506581/195528
Rmano

Відповіді:


21

З командного рядка

У випадку, якщо ми використовуємо Ubuntu в якості хоста, ми можемо перетворити наш .vdi диск на необроблений диск із наступною командою:

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

Потім ми можемо відкрити testdisk Встановіть testdisk з цим файлом для відновлення файлів на зображенні віртуального диска (див. Також нижче):

testdisk <clone.raw>

Віртуальної машини

У випадку, якщо зламаний образ приводу VDI все ще зареєстрований у Virtual Box, ми можемо додати це зображення як привід до нашої нової віртуальної машини:

введіть тут опис зображення

Запустіть свій віртуальний Ubuntu, до якого ми додали розбитий .vdi, але не монтуйте диск .

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

  2. Встановіть testdisk Встановіть testdisk на віртуальну машину.

  3. Почніть тестдиск з терміналу:

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

    введіть тут опис зображення

  5. Виберіть відповідний макет розділу (як правило Intel)

  6. Виберіть [Analyse]-[Quick Search]

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

    введіть тут опис зображення

  8. Натисніть, P щоб перелічити файли на цьому учаснику.

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

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

    введіть тут опис зображення

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

  12. Виберіть каталог на встановленому розділі (-ах) Ubuntu VM для зберігання врятованих даних:

    введіть тут опис зображення

  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 занадто малий, щоб зберігати врятовані дані, ми можемо створити ще один новий віртуальний привід для прив’язки до VM. Потім цей накопичувач повинен бути встановлений у VM, щоб там можна було зберігати дані з testdisk.


дякую за ці блискучі докладні інструкції. Я правильно стежив за ними і додав файли для копіювання до врятованої папки. Копія була успішною, але мітка часу файлів була досить стара: літо 2013 року замість двох днів тому. Я не можу пригадати, чи робив я щось зокрема 8 місяців тому, але на перший погляд моїх файлів із двох днів тому там не було. Зараз я використовую Deeper Searchдля перегляду знову.
719016,

@ 213441265152351 - також подивіться папку знімків ... там може бути новіший .vmdk (принаймні, це було з моїми системами тут). Сподіваємось, ви знайдете свої дані :)
Таккат

Я зробив це Deeper Search, і через пару годин знову переглянув вміст, який хотів відновити: вони все ще вказують на літню версію віртуальної машини 2013 року, ніж просто встановлення розділу з gnome nautilus, який давав мені січень Версія 2014 року, але все ще не вдалося знайти файли з двох днів тому.
719016,

1
@ 213441265152351: ну це тоді складніше. Може бути, що зображення, що відрізняються, ще не були записані належним чином на накопичувач, коли стався «збій». Ви можете спробувати подивитись на диск від Virtual Media Manager (див. Virtualbox.org/manual/ch05.html#diffimages ), щоб побачити, чи це було так, але я повинен сказати, що я тоді не матиму хорошого ідея, як відновити дані з цих зображень.
Таккат

2
@Rmano: насправді клонований VDI не буде містити знімків, але буде останнім теперішнім станом VM з об'єднаними диференціалами. Тільки у випадку, якщо нам потрібно клонувати попередній знімок, ми можемо використати VDI-знімок для клонування, але тоді всі зміни пізніше, ніж знімок, не буде включений у клон.
Таккат

5

1) Спробуйте відновити знімок UUID, використовуйте наступний злом:

  • виберіть UUID стану, який ви хочете відновити.
  • Відкрийте файл .xml, бажано в інструменті (працює Internet Explorer), що дозволяє легко переходити по XML-файлу.
  • У ДУЖЕ БОТОМ, у розділі Контролери зберігання, знайдіть UUID поточного стану та відзначте ім'я StorageController =, type = та налаштування типу AttachedDevice =, port = і device =.
  • В середині знайдіть потрібний знімок.
  • У розділі "Контролер зберігання" на знімку знайдіть приєднаний пристрій зі значеннями (ім'я / тип / тип / порт / пристрій), які відповідають значень, отриманим вище.
  • Це зображення UUID ідентифікує Знімок зображення на жорсткому диску. Зніміть дужки {} та

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

Сподіваюся, це допоможе, я знайшов рішення тут: ( https://forums.virtualbox.org/viewtopic.php?t=791 )

2) якщо кроки в пункті 1) не спрацьовують, є ще один крок, який ви можете спробувати. Як клонувати поточний стан диска:

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

Це рішення звідси: ( http://www.im-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/ ) Обидва говорять про одне й те саме.


1

У мене була пошкоджена система Linux /і fsckне вдалося її виправити . Я використовував такий простий підхід:

  1. Додайте до машини новий замінний VDI.
  2. Завантажте новий ISO linux.
  3. Завантажте та встановіть новий Linux на диску, який ви додали у (1).
  4. Встановіть диск на нову систему та скопіюйте потрібні файли. Зазвичай це означає копіювання /home/user/папки. Не забудьте скопіювати приховані файли (файли налаштувань).

Добре працював для мене. Пошкодження диска лише перешкоджало завантаженню, в моїй домашній папці втрати даних не було.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.