内核恐慌 – 创build自己的AMI(亚马逊机器映像)

我已经创build了自己的AMI并在Amazon EC2上注册。 但是,当AMI启动时,我收到以下错误:

内核恐慌 – 不同步:VFS:无法在未知块(8,1)上挂载根fs

图像在本地运行没有任何问题。

fstab包含:

proc /proc proc defaults 0 0 /dev/sda1 / ext3 relatime,errors=remount-ro 0 1 

该图像是使用以下命令创build的

 ec2-bundle-image -i image.raw -r i386 -c cert-xxx.pem -k pk-xxx.pem --user 123456 

完整的AMI启动日志:

 Linux version 2.6.16-xenU (builder@xenbat.amazonsa) (gcc version 4.0.1 20050727 (Red Hat 4.0.1-5)) #1 SMP Mon May 28 03:41:49 SAST 2007 BIOS-provided physical RAM map: Xen: 0000000000000000 - 000000006a400000 (usable) 980MB HIGHMEM available. 727MB LOWMEM available. NX (Execute Disable) protection: active IRQ lockup detection disabled Built 1 zonelists Kernel command line: root=/dev/sda1 ro 4 Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 PID hash table entries: 4096 (order: 12, 65536 bytes) Xen reported: 2666.666 MHz processor. Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Software IO TLB disabled vmalloc area: ee000000-f53fe000, maxmem 2d7fe000 Memory: 1718700k/1748992k available (1958k kernel code, 20948k reserved, 620k data, 144k init, 1003528k highmem) Checking if this processor honours the WP bit even in supervisor mode... Ok. Calibrating delay using timer specific routine.. 5335.60 BogoMIPS (lpj=26678013) Mount-cache hash table entries: 512 CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 6144K Checking 'hlt' instruction... OK. Brought up 1 CPUs migration_cost=0 Grant table initialized NET: Registered protocol family 16 Brought up 1 CPUs xen_mem: Initialising balloon driver. highmem bounce pool size: 64 pages VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) Initializing Cryptographic API io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered i8042.c: No controller found. RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize Xen virtual console successfully installed as tty1 Event-channel device installed. netfront: Initialising virtual ethernet driver. mice: PS/2 mouse device common for all mice md: md driver 0.90.3 MAX_MD_DEVS=256, MD_SB_DISKS=27 md: bitmap version 4.39 NET: Registered protocol family 2 Registering block device major 8 IP route cache hash table entries: 65536 (order: 6, 262144 bytes) TCP established hash table entries: 262144 (order: 9, 2097152 bytes) TCP bind hash table entries: 65536 (order: 7, 524288 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP reno registered TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 17 NET: Registered protocol family 15 Using IPI No-Shortcut mode md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1) 

尝试使用正确的AKI和ARI注册AMI。

对于后人:我抄袭了自己制作的AMI,从我们东部地区到美国西部和欧盟地区。 从AMI创建实例时,我必须查找该区域的正确内核映像。
首先,我查看一下我们东方核心的名字:

 ec2-describe-images --headers -o amazon --filter "name=pv-grub-*.gz" Type ImageID Name Owner State Accessibility ProductCodes Architecture ImageType coreelId RamdiskId Platform RootDeviceType VirtualizationType Hypervisor IMAGE aki-659ccb0c amazon/pv-grub-hd00_1.04-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-499ccb20 amazon/pv-grub-hd00_1.04-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen IMAGE aki-8f9dcae6 amazon/pv-grub-hd0_1.04-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-919dcaf8 amazon/pv-grub-hd0_1.04-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen IMAGE aki-b2aa75db amazon/pv-grub-hd00_1.03-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-b4aa75dd amazon/pv-grub-hd00_1.03-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen IMAGE aki-b6aa75df amazon/pv-grub-hd0_1.03-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-88aa75e1 amazon/pv-grub-hd0_1.03-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen 

我在东方使用的内核是aki-b4aa75dd ,它的名字是amazon/pv-grub-hd00_1.03-x86_64.gz

然后我在西方查找内核映像:

 ec2-describe-images --region us-west-1 -o amazon --filter "name=pv-grub-*.gz" ## IMAGE aki-960531d3 amazon/pv-grub-hd00_1.04-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-920531d7 amazon/pv-grub-hd00_1.04-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen IMAGE aki-8e0531cb amazon/pv-grub-hd0_1.04-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-880531cd amazon/pv-grub-hd0_1.04-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen IMAGE aki-e97e26ac amazon/pv-grub-hd00_1.03-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-eb7e26ae amazon/pv-grub-hd00_1.03-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen IMAGE aki-f57e26b0 amazon/pv-grub-hd0_1.03-i386.gz amazon available public i386 kernel instance-store paravirtual xen IMAGE aki-f77e26b2 amazon/pv-grub-hd0_1.03-x86_64.gz amazon available public x86_64 kernel instance-store paravirtual xen 

…然后告诉我,us-west中同名的内核有一个内核ID为aki-eb7e26ae