
저는 Ubuntu Server 12.04 LTS 64비트 게스트 머신이 설치된 Ubuntu 11.10 64비트 호스트에서 많은 스냅샷이 포함된 Oracle VirtualBox를 실행하고 있습니다. 호스트를 재부팅한 후(VM이 실행 중인 동안) VM에 '액세스할 수 없게' 되었습니다. 이리저리 살펴보고 수 기가바이트의 백업을 만든 후 부팅 매체를 찾을 수 없다는 화면으로 부팅했습니다. 최신 스냅샷의 데이터를 포함하여 내 데이터를 새 VM으로 가져오는 방법이나 가능하다면 이 문제를 해결하는 방법에 대한 제안이나 솔루션이 있습니까? 더 많은 정보를 제공해 드리겠습니다.
편집: 내 스냅샷 체인이 손상/손상된 것 같습니다.
편집 2: 고칠 수 없습니다. 방금 새 VM을 만들었습니다.
답변1
Baring은 작업 중인 스냅샷으로 돌아갈 수 있습니다. VM을 라이브 CD로 부팅하고 하드 드라이브에 액세스할 수 있는지 확인하세요. 그렇다면 최악의 경우는 새 서버로 새 VM을 구축하는 것입니다. 이전 VM에서 하드 드라이브를 추가하세요. 그런 다음 하드 디스크에서 데이터를 검색합니다.
답변2
- 최신 스냅샷 복원
- 하드 드라이브 정보를 편집하고 액세스할 수 없는 모든 하드 드라이브를 제거합니다.
- 찾을 수 있는 모든 하드 드라이브를 VM에 추가합니다(이렇게 하면 액세스 가능).
- 복구 CD 또는 라이브 CD로 부팅
- 어떻게 고칠지 결정하세요. 일반적으로 디스크, chroot를 마운트하고 grub을 설치해야 합니다.
#5의 예:
마운트 파티션
mkdir /mnt/fixme parted -s /dev/sda print (based on output of above, decide which device is your /boot, /, etc., and modify next mount commands accordingly) mount /dev/sda2 /mnt/fixme mount /dev/sda1 /mnt/fixme/boot ... for all your partitions
특수 파일 시스템 마운트
mount | grep "on /proc" mount | grep "on /dev" (based on the above, decide what the "from" and "type" should be; my example below is correct for openSUSE 12.1) mount -t proc proc /mnt/fixme/proc mount -t devtmpfs devtmpfs /mnt/fixme/dev
예를 들어 Ubuntu에서는 dev 유형이 "none"입니다. mount -t none devtmpfs /mnt/fixme/dev
/sys를 마운트해야 할 수도 있습니다. 잊었다. 오류 메시지가 나타나면 알게 될 것입니다.
chroot 셸을 시작합니다(하드 디스크로 부팅하는 것과 같습니다). (참고: 시스템에 다른 디스크가 있는 경우 제대로 작동하지 않습니다. 예를 들어 깨진 디스크를 가져와서 부팅되지 않은 다른 Linux에 연결한 경우입니다. CD이지만 디스크에서는 mtab을 확인하여 부팅 디스크를 결정하고 해당 GUID를 복구된 디스크 대신 grub 구성에 넣으므로 부팅 프롬프트로 복구하고 grub-install을 다시 실행해야 합니다. 나중에)
chroot /mnt/fixme
그럽 설치
On openSUSE: update-bootloader On Ubuntu: update-grub2 Alternate, on most systems, but not openSUSE, use both: install stage 1 bootloader: grub-install install guids and stuff in /boot (change cfg file to whatever you find is the correct one [menu.lst on openSUSE, grub.cfg on Ubuntu, etc.]) (if you skip the -o option, it just prints to standard out and doesn't save it in any files) find /boot -name "*grub*" -or -name "*.cfg" -or -name "*menu*" grub-mkconfig -o /boot/grub/grub.cfg