Изменение конфигурации файловой системы в облаке
Итак, мое приключение началось так: у меня была виртуальная машина OpenSUSE 13.1, и я хотел обновить ее до 13.2, поэтому одно из главных отличий между 2-мя сообществами amis (13.1 - `` и 13.2 -ami-3a6cc64d
) было то, что образ 13.2 использует HVM - вместо PV - тип виртуализации.
Первой проблемой, с которой я столкнулся, было то, что мой шаблон CloudFormation использовал /dev/sda
имя_устройства, под BlockDeviceMappings, НО, очевидно, это не тот тип имя_устройства, который ожидает тип изображения HVM (см. здесь для получения дополнительной информации). Это привело к тому, что экземпляр EC2 даже не входил в running
государство.
Во всяком случае, я смог преодолеть это препятствие, назначив /dev/sda1
Как и было рекомендовано, мой экземпляр наконец-то смог запуститься правильно.
НО - теперь при запуске некоторые из моих служб не запускаются из-за сбоя зависимостей, которые я смог отследить, пока облачная конфигурация не завершилась корректно, что 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...
Я понятия не имею, почему это происходит, и я не могу найти много соответствующих постов, поэтому любые идеи будут очень кстати парни...!:)
Заранее спасибо!!
1 ответ
Итак, получается, что мне пришлось явно отключить поведение конфигурации облака по умолчанию, используя 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, но это не так.)