EBSでバックアップされたAmazon EC2インスタンスがあります。このインスタンスのルートデバイスを変更したいと思います。これについて最善の方法を教えてください。
ブロックデバイスのいくつかの属性の変更に関するドキュメントのみを見つけましたが、ルートデバイスとして設定することは含まれていないようです。前もって感謝します。
うん、それは簡単です:
/dev/sda1
もちろん、代替EBSボリュームはブート可能であることを前提としています-ブート可能なOSイメージが含まれている必要があります。
選択した回答にコメントを追加するのに十分な担当者がいませんが、私のために_/dev/sda1
は機能しませんでした(ルートとしてアタッチしませんでした)が、/dev/xvda
動作しました(ルートとして接続)。インスタンスは、HVMを使用する新しいt2.microインスタンスの1つです。
受け入れられた回答のコメントスレッドでDiomidis Spinellisのコメントを詳しく説明するには、新しいルートデバイスとして切り替えようとしているデバイスのファイルシステムラベルを確認することが重要です。自分のサーバー移行のトラブルシューティングを行っている間、インスタンスが起動する前に次のことを行う必要がありました。
使用 e2label
コマンドを使用して、新しいルートデバイス用に作成したext2/ext3/ext4ファイルシステムのラベルを変更します。
まず、現在のルートデバイスのファイルシステムラベルを確認します。
$ Sudo e2label /dev/xvda1
cloudimg-rootfs
同じファイルシステムラベルを持つように新しいデバイスを設定します。
$ Sudo e2label /dev/xvdg 'cloudimg-rootfs'
私の場合、ラベルはcloudimg-rootfs
。場合によっては、単に/
。
E2labelの仕組みを理解することが重要です。チェックman e2label
マシンで、または http://linux.die.net/man/8/e2label にアクセスして詳細を確認してください。
これはawsの推奨ソリューションです。ルートボリュームを停止した後、元のインスタンスから切り離すことができます。ルートボリュームは/ dev/sda1に接続されます。これがデタッチされたら、新しいインスタンスにアタッチしてください。ボリュームを接続した後、OSからマウントする必要がある場合があります。マウントすると、その中にデータが表示されます。
新しいキーの追加が完了したら、それをデタッチして、/ dev/sda1の元のインスタンスにアタッチできます。
変更を行う前に、ルートボリュームのスナップショットを作成することをお勧めします。
解決策を試す前に、重要ではないインスタンスまたはスポットインスタンスで試してください
CloudFormationを介してこれを実行する場合は、以下を実行する必要があります。
スタックをデプロイします。これによりインスタンスが再作成されるため、Elastic IPアドレスを使用しているか、DNSアクセス権があることを確認してください。
この回避策を実行する必要があるのは、CFでEC2 BlockDeviceMappingsのルートボリュームサイズを調整したり、ルートボリュームのSnapshotIdを調整したりできないためです。
ボリュームがマウントされると、番号付きのポストフィックスが取得されます。例:when /dev/sda
がマウントされ、/dev/sda1, /dev/sda2
作成するパーティションに応じて。ルートデバイス自体をマウントしているため、デバイスがすでにマウントされていると想定しているため、/dev/sda1
ボリュームをルートデバイスとしてマウントします。注:ルートボリュームは接続しないでください。
次の手順に従ってください:1)ボリュームに移動し、[アクション]から[ボリュームの接続]を選択します。 2)インスタンスを選択します3)ルートとしてマウントするには、デバイス名に/dev/sda1
4)インスタンスを起動します。