%20VM%EC%9D%84%20Virtual%20Box%20VM%EC%9C%BC%EB%A1%9C%20%EB%B3%80%ED%99%98.png)
최근 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
.)