开发者

Kernel panic - Creating own AMI (Amazon Machine Image)

I have created own AMI and registered it on Amazon EC2. But while AMI startup I receive following error:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)

The image is running locally without any problems.

fstab contains:

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

The image was created with following command

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

Full AMI startup log:

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 mo开发者_运维问答unt root fs on unknown-block(8,1) 


Try registering the AMI with correct AKI and ARI.


For posterity: I copied an AMI that I had crafted myself from us-east region to us-west and to eu regions. When creating instances from that AMI, I had to look up the correct kernel image for that region.
First I look up the name of us-east kernel:

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

The kernel I use in us-east is aki-b4aa75dd which has a name of amazon/pv-grub-hd00_1.03-x86_64.gz .

I then look up kernel images in 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

...then tells me that the kernel with the same name in us-west has a kernel ID of aki-eb7e26ae .

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜