我正在创建一些 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
亚马逊提供的图像在 t1.micro 上运行时报告以下内容:
brw-rw---- 1 根磁盘 8,1 月 30 日 13:18 sda1
我如何准备我的 Xen 镜像,以便我们使用ec2-bundle-image是否会自动选择正确的磁盘名称?
答案1
最好的方法是不要使用实际名称来引用驱动器,而是使用文件系统 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
。但这应该不是问题,因为引导加载程序不会以不同的方式命名虚拟磁盘。