我正在尝试在 EC2 上执行 Kerberos-auth:d NFS4。为了做到这一点,似乎需要至少 2.6.35 的内核才能获得不错的加密算法。我能找到的提供此功能的发行版是 Ubuntu/Natty,它有 2.6.38。但是,默认映像是 -virtual 风格,缺少 rpcsec_gss_krb5。因此,我试图制作一个启动 -generic 映像的映像,但 EC2 pv-grub 加载程序似乎不支持这些:
Xen Minimal OS!
start_info: 0xa01000(VA)
nr_pages: 0x26700
shared_inf: 0xbee66000(MA)
pt_base: 0xa04000(VA)
nr_pt_frames: 0x9
mfn_list: 0x967000(VA)
mod_start: 0x0(VA)
mod_len: 0
flags: 0x0
cmd_line: root=/dev/sda1 ro 4
stack: 0x946780-0x966780
MM: Init
_text: 0x0(VA)
_etext: 0x61e65(VA)
_erodata: 0x76000(VA)
_edata: 0x7b6d4(VA)
stack start: 0x946780(VA)
_end: 0x966d34(VA)
start_pfn: a10
max_pfn: 26700
Mapping memory range 0xc00000 - 0x26700000
setting 0x0-0x76000 readonly
skipped 0x1000
MM: Initialise page allocator for b3e000(b3e000)-0(26700000)
MM: done
Demand map pfns at 26701000-36701000.
Heap resides at 36702000-76702000.
Initialising timer interface
Initialising console ... done.
gnttab_table mapped at 0x26701000.
Initialising scheduler
Thread "Idle": pointer: 0x36702008, stack: 0xbf0000
Initialising xenbus
Thread "xenstore": pointer: 0x36702478, stack: 0x26600000
Dummy main: start_info=0x966880
Thread "main": pointer: 0x367028e8, stack: 0x26610000
"main" "root=/dev/sda1" "ro" "4"
vbd 2049 is hd0
******************* BLKFRONT for device/vbd/2049 **********
backend at /local/domain/0/backend/vbd/1312/2049
Failed to read /local/domain/0/backend/vbd/1312/2049/feature-barrier.
Failed to read /local/domain/0/backend/vbd/1312/2049/feature-flush-cache.
4194304 sectors of 0 bytes
**************************
[H
[J Booting 'Ubuntu Natty (development branch), kernel 2.6.38-11-virtual'
root (hd0)
Filesystem type is ext2fs, using whole disk
kernel /boot/vmlinuz-2.6.38-11-generic root=LABEL=uec-rootfs ro console=hvc0
initrd /boot/initrd.img-2.6.38-11-generic
ERROR Invalid kernel: elf_xen_note_check: ERROR: Will only load images built for the generic loader or Linux images
xc_dom_parse_image returned -1
Error 9: Unknown boot failure
Press any key to continue...
我想我的问题是这样的:
- 我对错误消息的解释是否正确:-generic 内核无法由 pv-grub 启动?
- Ubuntu 中是否有其他包含 rpcsec_gss_krb5 的可启动内核/包(apt-file 未找到相关内容,但可能有外部存储库)?
- 是否有其他满足我的标准的社区 AMI?
或者,我需要做什么来构建 -generic 内核的 pv-grub/EC2 变体?
答案1
最后,暴力破解了 Debian/unstable 中的一个内核镜像。给定一个来自 AMI ebs/ubuntu-images-milestone/ubuntu-natty-11.04-beta2-i386-server-20110413.1 (ami-4c906c25) 的卷,我必须做三件事:
- 从 Debian repo 下载内核:linux-image-3.0.0-2-686-pae_3.0.0-5_i386.deb
- 强制内核:
dpkg -i --force-all linux-image-3.0.0-2-686-pae_3.0.0-5_i386.deb
- 手动生成ramdisk:
update-initramfs -c -k 3.0.0-2-686-pae
- 手动为新内核创建 /boot/grub/menu.lst 条目。请注意,您需要设置 root=/dev/xvda1,因为生成的 ramdisk 将不包含标签。
完成此操作后,使用 pv-grub 内核 aki-805ea7e9 从该卷上的快照创建的 AMI 可以正常启动。
更新:实际上安装 .deb 会让 apt-get 非常恼火。相反,直接提取它dpkg-deb -x linux-image-3.0.0-2-686-pae_3.0.0-5_i386.deb /
可能是更好的选择。