Cloud-config 調整文件系統大小失敗
所以,我的冒險是這樣開始的:我有一個 OpenSUSE 13.1 VM,我想升級到 13.2,所以 2 個社區 amis(13.1 - `` 和 13.2 -
ami-3a6cc64d
)之間的主要區別之一是 13.2 映像使用 HVM - 而不是 PV - 虛擬化類型。我遇到的第一個問題是我的 CloudFormation 模板
/dev/sda
在 BlockDeviceMappings 下使用了 device_name,但顯然這不是 HVM 類型的圖像所期望的 device_name 類型(有關更多資訊,請參見此處)。這導致 EC2 實例甚至沒有進入running
狀態。無論如何,我能夠按照建議通過分配來克服這個障礙
/dev/sda1
,因此我的實例終於能夠正常啟動。但是 - 現在在啟動時,由於依賴項失敗,我的一些服務無法啟動,我已經能夠追踪到 cloud-config 沒有正確完成 AWS 要求它執行的操作:
如果我跑
$ 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 對我的圖像執行的操作。 .我不知道為什麼會發生這種情況,而且我似乎找不到很多相關的文章,所以任何想法都會受到歡迎……!:)
提前致謝!!
好的,事實證明我必須使用
resize_rootfs
屬性顯式禁用預設的雲配置行為:# 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,但事實並非如此。)