손상된 Virtualbox 시스템 .vdi에서 파일 복구


23

virtualbox에서 실행중인 Ubuntu 12.04.1에 소프트웨어를 설치하는 동안 공간이 부족하여 재부팅되지 않습니다 . 복구해야 할 파일이 있습니다. 나는이 ubuntu64.vdi내 Windows 7 (호스트) 노트북에서 파일을하고 VDI 파일에서 파일을 복구하는 어떤 방법이 있는지 궁금 해서요.

동시에 동일한 랩톱의 virtualbox에서 새로운 12.04.1 시스템을 생성했으며 borked 대신 해당 시스템을 사용합니다.

vdi작업중인 디스크의 디스크 목록에 borked 를 추가 할 수 있습니다 . 그런 다음 gnome nautilus를 사용하여 borked 디스크를 마운트했습니다.

파일을 찾을 수 있지만 약 2 개월이되었습니다. 필자는 이것이 마지막으로 머신의 가상 박스 스냅 샷을 수행 한 시간과 일치하지만 어제와 같이 작업중인 머신을 마지막으로 얻은 시간과 일치하지 않는다고 생각합니다. vdi충돌 직전 어제 를 장착하는 방법 이 있습니까?

편집 :

Virtual Media Managerubuntu64.vdi파일 에 대한 정보는 다음과 같습니다 . 여기에 이미지 설명을 입력하십시오

편집 2 :

ubuntu.vdi디스크 공간이 충분한 외부 USB로 복사했습니다 . Windows를 사용하여 복제하려고 시도했지만 오류가 발생했습니다.

여기에 이미지 설명을 입력하십시오

USB 드라이브의 공유 폴더를 통해 작동하는 VM에서 동일하게 시도하고 복제를 시작했습니다. 좋은 시간을 보냈지 만 성공적으로 완료되었습니다.

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 :

원시 파일을 생성 한 후, 나는 실행 testdiskDeeper Search, 나는이 같은 목록을 얻을 : 여기에 이미지 설명을 입력하십시오

Ater Deeper Search가 끝나면 다음과 같은 목록을 얻습니다.

여기에 이미지 설명을 입력하십시오

그러나 어느 것이 어느 스냅 샷인지 모르겠습니다 ... 어떤 아이디어?


@Takkat, 멋지다. 어떻게해야합니까?
719016

@Takkat, 나는 그놈 노틸러스를 사용하여 마운트했지만 2 개월 된 버전의 머신을 마운트했다고 생각합니다.
719016

2
여기서 문제는 디스크를 복구하는 방법이 아니라 스냅 샷과 병합하는 방법입니다. vdi를 복제하려고하면 다른 uuid가 생겨 스냅 샷이 작동하지 않으며 최신 데이터가 손실됩니다. 과거에 디스크가 손상되어 기본 디스크를 복구 할 수 있었지만 델타는 항상 손실 되었기 때문에 정기적으로 스냅 샷을 사용하지 않습니다. 나는 여기 누군가가 기본과 델타를 모두 복구 할 수있는 좋은 레시피를 제공하기를 바랍니다.
Pablo Marin-Garcia

1
다음 번에 : 가상 머신에 데이터를 저장하지 말고 항상 외부 드라이브를 마운트하거나을 통해 자주 백업 / 동기화하십시오 rsync.
Dee

1
원본 디스크가 아닌 최신 스냅 샷을 복제하십시오. 사용해야합니다 Vboxmanage clonehd 2208...(가장 최근 UUID 복사).
Rmano

답변:


21

명령 줄

Ubuntu를 호스트로 사용하는 경우 다음 명령을 사용하여 .vdi 디스크를 원시 디스크로 변환 할 수 있습니다.

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

그런 다음 이 파일로 testdisk 를 열어 testdisk 설치가상 드라이브 이미지의 파일을 복구 할 수 있습니다 (아래 참조).

testdisk <clone.raw>

가상 머신

손상된 VDI 드라이브 이미지가 여전히 Virtual Box에 등록 된 경우이 이미지를 새 가상 머신의 드라이브로 추가 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

깨진 .vdi를 추가했지만 드라이브를 마운트하지 않은 가상 Ubuntu를 시작하십시오 .

  1. A는 수확 데이터를 보유하기 위해이 파티션을 마운트에 (예를 들어, 디렉토리를 작성 ~/rescued)

  2. 가상 머신에 testdisk testdisk 설치 를 설치 하십시오.

  3. 터미널에서 testdisk를 시작하십시오.

    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의 데이터를 정상적인 VM의 복구 디렉토리로 복사하려면 누릅니다 .

노트:

  • 6[Quick Search]옵션으로 파일을 볼 수없는 경우을 수행해야 할 수도 있습니다 . 이전에 삭제되고 덮어 쓴 파티션도 나열됩니다. 따라서 데이터가 상주하는 적절한 파티션을 선택해야합니다.[Deeper Search]

  • .vdi의 스냅 샷 을 찍은 경우 다음에서 찾을 수 있습니다.~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdk 있지만, 우리가 가상 상자의 스냅 샷 기능을 사용했다 때마다 스냅 샷에서 변경 사항은 차등 파일에 기록됩니다.

    차등 파일을 하드 드라이브와 병합하려면 모든 스냅 샷을 삭제해야합니다 (아마도 데이터 복구를 요청하지 않고 이전 스냅 샷으로 복원 할 수 있기 때문에 원하는 스냅 샷이 아님).

    VBoxManage clonehd <name_of_source> <clone>
    

    그런 다음 위에서 설명한 것처럼 클론을 복구 VM에 바인딩합니다.

  • 손상된 .vdi에 쓰기는 파일 시스템이 더 손상 될 수 있으므로 데이터가 안전한 후에 만 ​​수행해야합니다.

  • 복구 우분투가 복구 된 데이터를 보관하기에 너무 작은 경우 VM에 바인딩 할 새 가상 드라이브를 새로 만들 수 있습니다. 테스트 디스크의 데이터를 저장할 수 있으려면 이 드라이브를 VM에 마운트 해야합니다.


이 훌륭하고 자세한 지침에 감사드립니다. 나는 그것들을 올바르게 따르고 구출 된 폴더에 복사 할 파일을 추가했습니다. 복사는 성공했지만 파일의 타임 스탬프는 상당히 오래되었습니다. 이틀 전이 아닌 2013 년 여름입니다. 8 개월 전에 특정 작업을 수행했는지 기억이 나지 않지만 언뜻 보면 이틀 전의 파일이 없었습니다. 이제 Deeper Search다시 탐색하는 데 사용 하고 있습니다.
719016

@ 213441265152351-스냅 샷 폴더도 살펴보십시오 ... 최신 .vmdk가있을 수 있습니다 (적어도 여기에는 내 시스템에 있음). 데이터를 찾을 수 있기를 바랍니다 :)
Takkat

나는 Deeper Search몇 시간 후에 복구하고 싶은 내용을 다시 탐색했습니다. 그놈 노틸러스로 파티션을 마운트하는 것보다 1 월 1 일을주는 것보다 여전히 2013 년 여름 가상 머신 버전을 가리키고 있습니다. 2014 버전이지만 여전히 이틀 전에는 파일을 찾을 수 없습니다.
719016

1
@ 213441265152351 : 그렇다면 그것은 더 복잡합니다. "충돌"이 발생했을 때 차등 이미지가 아직 드라이브에 제대로 기록되지 않았을 수 있습니다. Virtual Media Manager ( virtualbox.org/manual/ch05.html#diffimages 참조 ) 에서 디스크를 살펴 보고 이것이 사실인지 확인할 수는 있지만 좋은 점은 없을 것이라고 말할 수 있습니다 이 이미지에서 데이터를 복구하는 방법에 대한 아이디어.
Takkat

2
@Rmano : 실제로 복제 된 VDI는 스냅 샷을 포함하지 않지만 차이가 병합 된 VM의 마지막 현재 상태가됩니다. 이전 스냅 샷을 복제해야하는 경우에만 스냅 샷 VDI를 사용하여 복제 할 수 있지만 스냅 샷 이후의 모든 변경 사항은 클론에 포함되지 않습니다.
Takkat

5

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) 단계가 작동하지 않으면 다른 단계를 시도해보십시오. 디스크의 현재 상태를 복제하는 방법 :

  • Virtual Media Manager를 엽니 다 (메뉴 : File> Virtual Media Manager).
  • 복제하려는 하드 디스크로 이동하여 트리를 완전히 확장하십시오 (숫자 키패드에서 * 키 사용).
  • 현재 상태를 복제하려는 VM에 연결된 {hexUUID} .vdi 파일을 찾으십시오. 브랜치 끝의 리프 파일 중 하나입니다. 이 옵션을 선택하면 창 하단의 '첨부 대상 :'텍스트에 '첨부 대상 ::'이라고 표시되고 그 뒤에 괄호 안에 (스냅 샷 이름)이 없습니다.
  • 창의 맨 아래에 표시된 '위치 :'오른쪽의 파일 이름을 클릭하십시오.
  • Ctrl + C / 복사 텍스트를 클립 보드에 복사하려면 다음과 같습니다. (경로) {b6441469-5ccb-418c-8fdd-73c5e1a17314} .vdi
  • Ctrl + V / 붙여 넣기 및 hexUUID 값을 추출 ({} 괄호 제거)하고 clonehd를 실행하여 복제하십시오!

이 해결책은 여기에서 있습니다 : ( http://www.im-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/ ) 둘 다 거의 동일합니다.


1

나는에 손상받을 리눅스 시스템을 가지고 /하고 fsck문제를 해결할 수 없었다 . 나는 다음과 같은 간단한 접근법을 사용했다.

  1. 새로운 대체 VDI를 기계에 추가하십시오.
  2. 새로운 Linux ISO를 다운로드하십시오.
  3. (1)에서 추가 한 디스크에 새 리눅스를 부팅하고 설치하십시오.
  4. 새 시스템에 디스크를 마운트하고 필요한 파일을 복사하십시오. 일반적으로 이것은 /home/user/폴더 복사를 의미 합니다. 숨겨진 파일 (설정 파일)을 복사해야합니다.

나를 위해 잘 작동했습니다. 디스크 손상은 부팅을 방해 할뿐이었습니다. 내 홈 폴더에 데이터가 손실되지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.