内核崩溃 - 创建自己的AMI(亚马逊机器镜像)

5

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

内核恐慌-不同步:VFS:无法在未知块(8,1)上挂载根文件系统

该镜像在本地运行时没有任何问题。

fstab包含:

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

该图片是通过以下命令创建的:
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) 
2个回答

11

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


很高兴它对你有用,伙计。顺便说一句,我也看到了你在AWS论坛上的帖子。 :) - Rodney Quillo
还必须将架构设置为i386或其他选项,与生成AMI的实例相同的值。 - Dimitris
这非常有用,非常感谢。老实说,我对成功非常高兴,以至于我忘记了我对代码做了什么来使第二个状态检查失败。 - David Gay
我需要通过谷歌了解AKI - 它代表Amazon内核镜像,每个EC2实例都会有一个AKI ID。 - awongh

2

为了后代留存: 我将我自己创建的AMI从us-east区域复制到us-west和eu区域。当从该AMI创建实例时,我必须查找该区域的正确内核映像。
首先,我查找us-east内核的名称:

ec2-describe-images --headers -o amazon --filter "name=pv-grub-*.gz"
Type    ImageID Name    Owner   State   Accessibility   ProductCodes    Architecture    ImageType   KernelId    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

我在us-east使用的内核是aki-b4aa75dd,它的名称为amazon/pv-grub-hd00_1.03-x86_64.gz

然后我在us-west查找内核映像:

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


谢谢,我也遇到了同样的问题。没意识到我需要使用相同的内核 ID。 - xamox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接