私はEC2の本番環境で「Amazon Linux」OS / distroを実行していますが、一部のローカル開発/テストにはVirtualBox VMを使用したいと思います。 Amazon Linux と最も類似したディストリビューションを使用するのが最善です。私が最も興味を持っているのは、同じパッケージを持っていることを確認することです。
私はyum / rpmベースのディストリビューションに最も慣れているので、ここに滞在したいと思います。しかし、aptとより良いパッケージ類似性を持つ他のディストリビューションがある場合は、そうすることができます。
私が実行する必要があるパッケージの簡単なリストはmysql5.5、apache2.2、php5.3、tomcat7です。
答え1
この質問はあまりにも広いので、確かに終了します。しかし、後で参考にできるいくつかの有用な情報を共有したいと思います。あなたはそれを使用することができますAmazon AMIミラーあなたは元にいましたvirtualbox
。
スピード
注:これらの操作をすべて完了するには、root権限を使用する必要があります。
新しい生ドライブファイルの作成
この公演には約10の公演があります。
dd if=/dev/zero of=newimage.raw bs=1M count=10240
パーティションを分割する
まず、ループバックデバイスに追加します。
losetup -fv newimage.raw
Loop device is /dev/loop0
その後、パーティションを分割します(これにより、ディスク全体に対して1つのパーティションが作成されます)。起動可能であることを確認してください。それ以外の場合はデフォルト値が推奨されます。
cfdisk /dev/loop0
注:これを行うには、実際に「書き込み」を選択してEnterを押す必要があります。それ以外の場合は、物理パーティションなしで終了します。私は毎回こうしています。
ファイルシステムの作成
mkfsはループバックデバイスのファイルシステムサイズの自動決定を妨げるため、使用できません。代わりに、パーティションの開始、終了、ブロック数、シリンダー数、およびブロックサイズを見つけます。
fdisk -l -u /dev/loop0
Disk /dev/loop0: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/loop0p1 * 63 20964824 10482381 83 Linux
パーティションの開始×ブロックサイズを計算します。この場合(実際にはほとんどの場合)512 * 63(セクタサイズ*開始セクタ):32256です。オフセットを指定して、このパーティションの新しいループバック装置を設定します。
losetup -fv -o 32256 newimage.raw
Loop device is /dev/loop1
これで、特定のブロックサイズ(おそらく私が使用する標準である4096)と計算されたブロック数((end - start)*単位)/ブロックサイズ、または(この例では)ファイルシステムが作成されます。 、(20964824 - 63)* 512)/ 4096です。
新しいパーティションにファイルシステムを作成するには:
mkfs.ext3 -b 4096 /dev/loop1 2620595
新しいファイルシステムのコピーと準備
まず、.raw イメージをループバックデバイスとして設定します。
losetup -fv genprog-raw-image.raw
Loop device is /dev/loop2
インストールしてください:
mkdir /mnt/tmp_1
mount -t ext3 /dev/loop2 /mnt/tmp_1
新しい画像にも同じことを行います。
mkdir -p /mnt/loop/1
mount -t ext3 /dev/loop1 /mnt/loop/1
cp -a /mnt/tmp_1/* /mnt/loop/1/
Webサイトから受け取った指示には、initrdとカーネル情報を取得するためにブートモジュールをコピーする必要があると述べていますが、何らかの理由でそれを行う必要はないと思います。
ブートローダを追加する前にさまざまな修正
menu.lstを編集し、root =が/ dev / sda1に設定されていることを確認してください。 (root= 部分文字列の位置は非常にランダムです。)
vi /mnt/loop/1/boot/grub/menu.lst
同じ目的でfstabを編集します(/dev/xfvgを/dev/sda1に置き換えます)。
vi /mnt/loop1/etc/fstab
Amazonは機能しないランダムなルートパスワードを設定します。代わりに:
chroot /mnt/loop/1
mv /etc/rc.local /etc/rc.local-old
passwd root
exit
新しいドライブにGrubを設定する
Grubが正しく機能するように、パーティション(オフセット付きパーティション)を持つループバックデバイスをアンマウントして削除します。
umount /mnt/loop/1
losetup -d /mnt/loop1
上記のfdisk情報に戻り(> fdisk -l -u /dev/loop0)、シリンダー、ヘッド、セクター/トラックの数を取得します。次に、次のようにします。
grub --device-map=/dev/null
インタラクティブGrubインターフェイスに入ります。
grub> device (hd0) newimage.raw
grub> geometry (hd0) 1305 255 63
grub> root (hd0,0)
grub> setup (hd0)
You'll get a lot of output, then:
Done.
grub> quit
マウントされたドライブをマウント解除し、ループバックデバイスを取り外します。注:umountは削除されます。なぜnがないのですか?また、losstup -a はすべてのアクティブ・ループバック・デバイスをリストします。
losetup -d /dev/loop0
losetup -d /dev/loop1
losetup -d /dev/loop2
VirtualBoxをうまく機能させる
まだ.rawですか?変更:
VBoxManage Convertdd newimage.raw newimage.vdi
(Convertfromrawも機能すると思います。b / c Convertddは以前のバージョンとの互換性のためです。)
newimage.vdi を使用して新しい VirtualBox システムを作成します。デフォルトを実行しますが、設定を開き、システム - >プロセッサを選択し、PAE / NXの有効化の横にあるチェックボックスをオンにします。
/etc/ssh/sshd_configを編集し、「PasswordAuthentication」または他のエントリをnoからyesに変更します。
仮想マシンを終了します。コマンドラインに戻ってSSHを有効にします。
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
これにより、ホストポート2222に対する要求がゲストシステムのポート22(デフォルトではSSHリスニング)に転送されます。 SSH経由でログインするには:
ssh -p 2222 root@localhost
完璧!
引用する
http://church.cs.virginia.edu/genprog/index.php/Converting_an_EC2_AMI_to_a_VirtualBox_.vdi https://superuser.com/questions/504135/where-can-i-find-amazon-linux-ami-image-for-virtualbox http://linux.blogs.com.np/2010/04/05/how-to-move-a-virtual-machine-from-ec2-to-virtualbox-or-kvm/