이 답변 과 이러한 웹 사이트 덕분에 VirtualBox 내에서 Amazon Linux를 부팅 할 수있게되었습니다 . 내가 취한 단계에 대한 간단한 개요 :
- Amazon Linux 2011.09 64 비트 AMI로 EC2 인스턴스 시작
dd
EBS 볼륨의 내용을ssh
로컬 이미지 파일로- 이미지 파일을 루프백 장치로 마운트 한 다음 로컬 마운트 포인트에 마운트하십시오.
- 빈 디스크 이미지 파일을 새로 만들고 부트 로더에 대한 오프셋이있는 파티션을 만들고 ext4 파일 시스템을 만듭니다.
- 새 이미지의 파티션을 마운트하고 EC2 이미지에서 모든 것을 복사하십시오.
- grub을 설치하십시오 (
grub-legacy-ec2
grub2가 아닌 Ubuntu 패키지 사용 ). - 를 사용하여 이미지 파일을 vmdk로 변환하십시오
qemu-img
. - vmdk를 사용하여 새 VirtualBox VM을 만듭니다.
이제 VM이 부팅되고 grub이로드되고 커널이 발견됩니다. 그러나 루트 장치를 마운트하려고하면 실패합니다.
dracut Warning: No root device "block:/dev/xvda1" found
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
dracut Warning: Signal caught!
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.35.14-107.1.39.amzn1.x86_64 #1
/boot/grub/menu.lst
레이블과 UUID로 루트 장치를 찾으려고 변경 했지만 아무것도 작동하지 않습니다. xen 커널이 VirtualBox와 호환되지 않는 것 같습니다.
이 모든 노력을 뒷받침하는 이유는 생산 환경과 최대한 가까운 Vagrant 상자를 만들어 배포를 로컬에서 테스트 할 수 있기 때문입니다. EC2에서 테스트를 실행하는 것이 저렴하지만 연결성이 좋지 않은 경우 종종 경험을 망치게됩니다. 또한 프로덕션 환경을 갖춘 가상 머신을 보유하고 있으면 동료가 앱 개발을 시작하고 실행하기 위해 햇볕 아래 모든 것을 설치할 필요가 없습니다.
다른 커널을 실행하려고하면 Amazon Linux 2011.09에 가능한 한 어떤 커널을 사용할 수 있습니까?
답변
나는 너무 많이 시도하고 포기했지만 결국 나는 성공합니다!
VMware로 포팅 된 Amazon Linux AMI로 부팅 할 수있었습니다!
나는 거의 새로운 것이지만 몇 시간의 시험 끝에 우분투 64 10.04 배포판에서 가져온 vmlinuz-2.6.32-38-generic으로 원래 아마존 커널을 대체했습니다 .
AMI 내부의 Amazon 구성이 분명히 찾을 수없는 내부 주소에서 무언가를 찾고 있기 때문에 많은 오류가 발생합니다. / usr / bin / cloud-init라고 생각합니다.
그러나 내부에 로그인 할 수 있으며 모든 것이 작동하는 것 같습니다!
당신의 도움을 주셔서 감사합니다!!
AMI에서 Vmware로 마이그레이션하기위한 단계별 지침 으로이 블로그 게시물을 작성 했습니다 .
도움이 되었기를 바랍니다!
답변
공식 커널 아마존은 2011.09 배포판, 즉 2.6.35.14 에서 이들을 도출 했습니다.
으로 Amazon 소스 패키지를 얻을 수는 get_reference_source
있지만 어쨌든 Amazon 외부에서 작동하지는 않을 것입니다.
답변
Cloudify의 직원들은 베어 메탈 머신에 액세스하지 않고 VirtualBox 지원 Vagrant 박스를 생성하는 방법을 공유했습니다. AWS를 사용합니다.
천국으로가는 9 단계 :
- Packer를 사용하여 소스 이미지 (AMI) […]를 작성하십시오.
- 스냅 샷 또는 소스 이미지를 디스크 중 하나로 AWS에서 작업자 인스턴스를 시작합니다.
- 작업자 이미지 : 원시 이미지 볼륨을 파일로 생성하고 ext4 파티션을 생성하십시오.
- 소스 이미지 디스크의 데이터를 이전에 작성된 ext4 파티션으로 복사하십시오.
- ext4 파티션에 부트 로더 (extlinux)를 설치하십시오.
- 원시 이미지를 VMDK로 변환하십시오.
- OVF 디스크립터 및 Vagrant 메타 데이터를 사용하여 VMDK를 번들로 묶고 컨텐츠 및 .box 확장자를 가진 tar 파일을 작성하십시오.
- S3 또는 원하는대로 업로드하십시오.
- 청소하십시오.
출처 : 위의 9 단계 로 http://www.developer.com/design/creating-a-reproducible-and-portable-development-environment.html의 블로그 게시물
코드 : https://github.com/cloudify-cosmo/cloudify-packager/tree/3.2m4/image-builder