web-dev-qa-db-ja.com

Cloud-configサイズ変更ファイルシステムが失敗する

だから、私の冒険は次のように始まりました:私はOpenSUSE 13.1 VMを持っていて、13.2にアップグレードしたかったので、2つのコミュニティamis(13.1-``と13.2 -_AMI-3a6cc64d_)の主な違いの1つは13.2イメージは、PVではなくHVM仮想化タイプを使用します。

私が最初に遭遇した問題は、CloudFormationテンプレートがBlockDeviceMappingsの下で_/dev/sda_ device_nameを使用していたことでしたが、HVMタイプのイメージが期待するdevice_nameのタイプではないようです( ここ を参照)より詳しい情報)。その結果、EC2インスタンスはrunning状態にさえなりませんでした。

とにかく、推奨されているように_/dev/sda1_を割り当てることでその障害を克服することができたので、私のインスタンスはようやく正常に起動することができました。

しかし、起動時に、依存関係が失敗したために、いくつかのサービスが開始されません。これは、AWSが指示したとおりに正しく終了しないcloud-configまで追跡できました。

$ systemctl ... cloud-init-local.service loaded active exited Initial cloud-init job (pre-networking) cloud-init.service loaded failed failed Initial cloud-init job (metadata service crawler) ...を実行した場合

ログ(/ var/log/syslog)を調べると、次のことがわかります:... Failed to resize filesystem (cmd=('resize2fs', '/dev/hda1'))#012Traceback ...しかし、私はこれを自分で設定していません。これは、AWSがどういうわけか私に行うことを決定したものです。 cloud-config経由の画像...

なぜそうなるのかわからないし、関連する投稿もあまり見つからないので、どんなアイデアでも大歓迎です…! :)

前もって感謝します!!

1
gsaslis

さて、resize_rootfsattribute を使用して、デフォルトのcloud-config動作を明示的に無効にする必要があることがわかりました。

# resize_rootfs should the / filesytem be resized on first boot
# this allows you to launch an instance with a larger disk / partition
# and have the instance automatically grow / to accomoddate it
# set to 'False' to disable
# by default, the resizefs is done early in boot, and blocks
# if resize_rootfs is set to 'noblock', then it will be run in parallel
resize_rootfs: True

これをFalseに設定すると、エラーが削除され、cloud-init.serviceサービスが起動時に失敗しなくなりました。

(私が最初に見つけたほとんどのリソースは、growpartを使用する必要があると私に信じさせていましたが、そうではありませんでした。)

0
gsaslis