Vultr(클라우드) VM을 Virtual Box VM으로 변환

Vultr(클라우드) VM을 Virtual Box VM으로 변환

최근 Vultr VPS의 DD 이미지를 가정용 컴퓨터로 전송했습니다. Debian VirtualBox VM을 사용하여 새 가상 디스크를 만들고, DD 이미지를 마운트하고, DD 이미지의 모든 파일을 새 가상 디스크로 rsync했습니다. /etc/fstab루트 파일 시스템의 새 UUID로 편집 하고 /etc/networking/interfaces가상 디스크의 새 인터페이스로 편집했습니다. 그런 다음 이 VM에서 분리했습니다.

새로운 VirtualBox VM을 만들고 새로 생성된 가상 디스크를 연결하고 부팅할 것이라고 가정했습니다. 그렇지 않습니다. 내가 얻는 것은 검은 화면에 깜박이는 커서뿐입니다. 다른 일은 일어나지 않습니다. /boot작동 중인 Debian VirtualBox VM에서도 rsync를 수행했습니다 . 여전히 깜박이는 커서입니다.

내가 놓친 것이 분명합니까? 이견있는 사람? 귀하의 의견에 감사드립니다.

답변1

있습니다.

부팅 프로세스에 파일 시스템 개념이 존재하기 전에 파일 시스템을 이해할 수 있는 코드 조각을 로드해야 합니다. 이를 부트로더라고 하며 일반적으로 디스크의 처음 몇 섹터 또는 특수 UEFI 파티션의 특수 폴더.

귀하의 경우 새 이미지에 설치해야 하는 GRUB일 가능성이 높습니다(다시 말하지만 루트 파일 시스템 외부!).

복구 모드를 사용하여 라이브 Linux 시스템에서 부팅하고 가상 디스크에 Grub을 (다시) 설치하십시오.

답변2

@Eugen Rieck의 답변 덕분에 제대로 작동했습니다!

또한 덕분에https://unix.stackexchange.com/questions/191218/how-to-install-grub-on-a-new-drive그리고 grub.cfg에서 잘못된 UUID를 어떻게 수정합니까?

해결책:

  • GParted Live로 부팅하고 터미널 세션을 실행했습니다.
  • sudo mount /dev/sda1 /mnt
  • sudo /mnt/usr/sbin/grub-install /dev/sda --skip-fs-probe --boot-directory=/mnt/boot
  • sudo sed -i 's/OLD-UUID/NEW-UUID/g' /mnt/boot/grub/grub.cfg(이전 UUID는 grub.cfg 파일에서 얻었습니다. 여러 번 나열되었으므로 전역적으로 로 대체됩니다 sed. 그리고 새 UUID는 에서 옵니다 blkid.)

관련 정보