Я сейчас создаю несколько образов машин Amazon (AMI), которые будут загружены и запущены на основе наших образов Xen. Однако у меня возникают проблемы с некоторыми платформами, где имена дисков, назначаемые при работе на EC2, отличаются от того, что Xen называет им при локальном запуске образов.
Например, при локальном запуске SUSE мы видим следующее:
brw-rw ---- 1 корневой диск 202, 1 января 30 07:49 xvda1
brw-rw ---- 1 корневой диск 202, 2 января 30 07:49 xvda2
brw-rw ---- 1 корневой диск 202, 3 января 30 07:49 xvda3
Хотя предоставленные Amazon изображения сообщают следующее при работе на t1.micro:
brw-rw ---- 1 корневой диск 8, 1 30 января 13:18 sda1
Как я могу подготовить свои изображения Xen, чтобы при их объединении с помощью ec2-связка-изображение правильное имя диска будет выбрано автоматически?
Наилучший подход - ссылаться на диски не по фактическим именам, а по UUID файловой системы или меткам. Они представлены в /dev/disk/by-uuid
и /dev/disk/by-label
соответственно, и может быть указано в /etc/fstab
с UUID=
или LABEL=
синтаксис:
UUID=e6c4e981-ce1d-423e-9f23-167f8b370021 / ext4 defaults 0 0
Это также принято для root=
Параметр ядра настроен в загрузчике, поэтому, например, с помощью GRUB1:
kernel /vmlinuz-3.2.0-31-virtual root=UUID=e6c4e981-ce1d-423e-9f23-167f8b370021 ro
GRUB2 и некоторые исправленные версии GRUB1 поддерживают UUID для поиска раздела, содержащего /boot
. Однако это не должно быть проблемой, поскольку загрузчики не называют виртуальные диски по-разному.