EC2 AMI를 vmdk 이미지로 변환


18

이 답변이러한 웹 사이트 덕분에 VirtualBox 내에서 Amazon Linux를 부팅 할 수있게되었습니다 . 내가 취한 단계에 대한 간단한 개요 :

  1. Amazon Linux 2011.09 64 비트 AMI로 EC2 인스턴스 시작
  2. ddEBS 볼륨의 내용을 ssh로컬 이미지 파일로
  3. 이미지 파일을 루프백 장치로 마운트 한 다음 로컬 마운트 포인트에 마운트하십시오.
  4. 빈 디스크 이미지 파일을 새로 만들고 부트 로더에 대한 오프셋이있는 파티션을 만들고 ext4 파일 시스템을 만듭니다.
  5. 새 이미지의 파티션을 마운트하고 EC2 이미지에서 모든 것을 복사하십시오.
  6. grub을 설치하십시오 ( grub-legacy-ec2grub2가 아닌 Ubuntu 패키지 사용 ).
  7. 를 사용하여 이미지 파일을 vmdk로 변환하십시오 qemu-img.
  8. 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에 가능한 한 어떤 커널을 사용할 수 있습니까?


당신과 비슷한 일을하고 있었고 다른 링크에서 해결책을 찾았습니다. 이것을 테스트하고 그것은 나를 위해 일했다 ... blog.zorangagic.com/2015/03/…
Pratap

답변:


7

나는 너무 많이 시도하고 포기했지만 결국 나는 성공합니다!

VMware로 포팅 된 Amazon Linux AMI로 부팅 할 수있었습니다!

나는 거의 새로운 것이지만 몇 시간의 시험 끝에 우분투 64 10.04 배포판에서 가져온 vmlinuz-2.6.32-38-generic으로 원래 아마존 커널을 ​​대체했습니다 .

AMI 내부의 Amazon 구성이 분명히 찾을 수없는 내부 주소에서 무언가를 찾고 있기 때문에 많은 오류가 발생합니다. / usr / bin / cloud-init라고 생각합니다.

그러나 내부에 로그인 할 수 있으며 모든 것이 작동하는 것 같습니다!

당신의 도움을 주셔서 감사합니다!!

AMI에서 Vmware로 마이그레이션하기위한 단계별 지침 으로이 블로그 게시물을 작성 했습니다 .

도움이 되었기를 바랍니다!


BTW, 리드, 나는 ... 당신이 "뿌리 장치를 찾을 수 없습니다"말하는 dracut (언급 된 점에 정확히 도착 ?? 당신이 더 이상 이동했다
에마 프레 다에게

우분투에서 커널을 복사하는 것과 기본적으로 동일한 해결책을 찾았습니다. 작동하지만 그 시점에서 시스템이 Amazon Linux AMI와 얼마나 유사한 지 알 수 없습니다.
Reed G. Law

또한 내 대답은 참조하십시오 여기 방랑과 새로 만든 VMDK를 사용하는 방법에 대한 지침뿐만 아니라, 버추얼 박스 / VM웨어 VMDK로 내보내기이 다른 업데이트 방법을 제공,
코드 블링

2

공식 커널 아마존은 2011.09 배포판, 2.6.35.14 에서 이들을 도출 했습니다.

으로 Amazon 소스 패키지를 얻을 수는 get_reference_source있지만 어쨌든 Amazon 외부에서 작동하지는 않을 것입니다.


1

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

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