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でブートすることができました!

私はほとんど初心者ですが、数時間の試用の後、ubuntu 64 10.04ディストリビューションから取得したvmlinuz-2.6.32-38-genericで元のAmazonカーネルを置き換えました

AMI内のAmazon構成が、明らかに見つからない内部アドレスで何かを探しているため、多くのエラーが発生します。それは/ usr / bin / cloud-initだと思います。

しかし、私は内部でログインでき、すべてが機能しているようです!

ご協力いただきありがとうございます!!

私が書いたこの AMIからのVMwareに移行するステップバイステップのインストラクションでブログ投稿を。

お役に立てれば!


ところで、リード、私はちょうどあなたが述べたポイントに到着しました(「ルートデバイスが見つかりません」と言っているドラカット...あなたはそれ以上移動しましたか??
エマヌエーレプレダ

私は基本的にあなたがしたのと同じ解決策に来ました:Ubuntuからカーネルをコピーします。それは機能しますが、その時点で、システムがAmazon Linux AMIにどの程度似ているかはわかりません。
リードG.ロー

また、私の答えを参照してくださいここでは 2つの代替更新VirtualBoxの/ VMWareのVMDKにエクスポートするための方法と同様に、ベイグラントで新しく作成したVMDKの使用方法を提供し、
コードブリンブリン

2

Amazonの公式カーネルは2011.09ディストリビューション、つまり 2.6.35.14 でそれらを派生させました。

おそらく、Amazonのソースパッケージはで入手できますが、get_reference_sourceとにかくAmazon以外で動作するとは思わないでしょう。


1

Cloudifyの人々は、ベアメタルマシンにアクセスせずにVirtualBox対応のVagrantボックスを作成する方法を共有しています。AWSを使用しています。

天国への9つのステップ:

  • Packerを使用してソースイメージ(AMI)[...]を作成します。
  • スナップショットまたはソースイメージをディスクの1つとして、AWSでワーカーインスタンスを起動します。
  • ワーカーイメージ上:生のイメージボリュームをファイルとして作成し、その上にext4パーティションを作成します。
  • データをソースイメージディスクから以前に作成したext4パーティションにコピーします。
  • ext4パーティションにブートローダー(extlinux)をインストールします。
  • 生のイメージをVMDKに変換します。
  • OVF記述子とVagrantメタデータを使用してVMDKをバンドルし、コンテンツと.box拡張子を持つtarファイルを作成します。
  • S3 [または好きなもの]にアップロードします。
  • 掃除。

出典http ://www.developer.com/design/creating-a-reproducible-and-portable-development-environment.html の上記の9ステップのブログ投稿

コードhttps : //github.com/cloudify-cosmo/cloudify-packager/tree/3.2m4/image-builder

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.