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
.
精彩评论