Discussion:
build 27a on x86 : panic at boot
Dennis Clarke
2005-11-16 17:46:01 UTC
Permalink
diskread: reading beyond end of ramdisk
start = 0x2000, size = 0x2000
failed to read superblock
diskread: reading beyond end of ramdisk
start = 0x8000, size = 0x800
failed to read superblock
panic: cannot mount boot archive
Press any key to reboot

I don't think that is what I was expecting ... :-(

Dennis
alessioc
2005-11-17 06:03:28 UTC
Permalink
how did you install it? was it an upgrade or a clean install?
i have had a similar problem with b24 http://www.opensolaris.org/jive/thread.jspa?threadID=2745&tstart=0
This message posted from opensolaris.org
Dennis Clarke
2005-11-17 12:56:20 UTC
Permalink
Post by alessioc
how did you install it? was it an upgrade or a clean install?
i have had a similar problem with b24
http://www.opensolaris.org/jive/thread.jspa?threadID=2745&tstart=0
This was a fresh install. I suspect that something went wrong during
the install process and so what I did was, I actually burned the
CDROMs and then installed from them.

Which worked just fine.

Dennis
Ian Collins
2005-11-17 06:50:52 UTC
Permalink
Post by Dennis Clarke
diskread: reading beyond end of ramdisk
start = 0x2000, size = 0x2000
failed to read superblock
diskread: reading beyond end of ramdisk
start = 0x8000, size = 0x800
failed to read superblock
panic: cannot mount boot archive
Press any key to reboot
I don't think that is what I was expecting ... :-(
Me neither, my test system (dual Athlon MP) give a panic in the
bootloader. The previous BE (b25) still boots OK.

Ian
Sriram Popuri
2005-11-18 07:13:52 UTC
Permalink
I got a similar problem. I guess you installed grub which is not able to find boot_archive.

For me adding the following entry in menu.lst, for Solaris entry, resolved the issue.

kernel /platform/i86pc/multiboot kernel/unix
module /platform/i86pc/boot_archive

Regards,
-Sriram
This message posted from opensolaris.org
Benjamin Brumaire
2005-11-21 08:28:55 UTC
Permalink
same here on my wz1100.

Is this a new occurence of 6294769?

For info I found this thread which is pretty close
http://www.opensolaris.org/jive/thread.jspa?messageID=4174&#4174

bbr
This message posted from opensolaris.org
Mac
2005-11-21 08:37:41 UTC
Permalink
Post by Benjamin Brumaire
same here on my wz1100.
Is this a new occurence of 6294769?
For info I found this thread which is pretty close
http://www.opensolaris.org/jive/thread.jspa?messageID=4174&#4174
bbr
Could it be related to this?
http://www.gnusolaris.org/cgi-bin/trac.cgi/ticket/84

(Not sure if Sun already has a bug open to track that.)
--
Mac
Jürgen Keil
2005-11-21 10:47:03 UTC
Permalink
Post by Dennis Clarke
diskread: reading beyond end of ramdisk
start = 0x2000, size = 0x2000
failed to read superblock
I believe this is a new bug, introduced by the fix for:

6344611 create_ramdisk needs to react less poorly to missing files or directories.

http://cvs.opensolaris.org/source/diff/on/usr/src/cmd/boot/scripts/create_ramdisk.ksh?r2=1.7&r1=1.6

Note how the test on line 99 tests for the existence of the wrong file; it is
missing the ${ALT_ROOT} file prefix. This breaks creating ramdisk boot archives
on a server for diskless clients. I guess it also breaks creating the ramdisk boot
archive during CD/Network installation (because the install target HDD is probably
mounted at "/a" and create_ramdisk is run with option "-R /a", and the getsize
shell function computes a bogus ramdisk size estimate - unless it is run from the
"/a" directory).


I've filed the following bug on bugs.opensolaris.org
(Sorry, I've not yet got the CR / bug id):
=================================================================

In snv_27 /boot/solaris/bin/create_ramdisk is badly broken, it cannot build
boot archives for a Solaris installation in an alternate root any more:

Example (diskless client):

# cd /tmp
# pwd
/tmp
# /export/root/moritz/boot/solaris/bin/create_ramdisk -R /export/root/moritz
Creating ram disk on /export/root/moritz
updating /export/root/moritz/platform/i86pc/boot_archive...this may take a minute
Could not seek to offset -1 in /tmp/create_ramdisk.3228.tmp/rd.file: Invalid argument
mount: I/O error
mount: Cannot mount /dev/lofi/1
umount: warning: /tmp/create_ramdisk.3228.tmp/rd.mount not in mnttab
umount: /tmp/create_ramdisk.3228.tmp/rd.mount not mounted
rmdir: directory "/tmp/create_ramdisk.3228.tmp/rd.mount": Directory not empty


Root cause: the getsize shell function in boot/solaris/bin/create_ramdisk
estimates a size of 0 KBytes for the ramdisk.

94 function getsize {
95 # Estimate image size, add %10 overhead for ufs stuff
96 total_size=0
97 for file in $filelist
98 do
99 if [ -e $file ] ; then
100 du -sk ${ALT_ROOT}/${file} | read size name
101 (( total_size += size ))
102 fi
103 done
104 (( total_size += total_size * 10 / 100 ))
105 }


Of cause the test at line 99 must test "${ALT_ROOT}/${file}", not "$file" !

Workaround:
===========

run create_ramdisk with the current directory set to the alternate root
directory; with the example above:

# cd /export/root/moritz
# /export/root/moritz/boot/solaris/bin/create_ramdisk -R /export/root/moritz
Suggested Fix:
==============

--- usr/src/cmd/boot/scripts/create_ramdisk.ksh~ 2005-11-14 22:11:41.000000000 +0100
+++ usr/src/cmd/boot/scripts/create_ramdisk.ksh 2005-11-19 20:32:19.401462000 +0100
@@ -96,7 +96,7 @@
total_size=0
for file in $filelist
do
- if [ -e $file ] ; then
+ if [ -e ${ALT_ROOT}/$file ] ; then
du -sk ${ALT_ROOT}/${file} | read size name
(( total_size += size ))
fi
This message posted from opensolaris.org
Stephen Lau
2005-11-21 16:22:32 UTC
Permalink
Post by Jürgen Keil
Post by Dennis Clarke
diskread: reading beyond end of ramdisk
start = 0x2000, size = 0x2000
failed to read superblock
6344611 create_ramdisk needs to react less poorly to missing files or directories.
http://cvs.opensolaris.org/source/diff/on/usr/src/cmd/boot/scripts/create_ramdisk.ksh?r2=1.7&r1=1.6
Note how the test on line 99 tests for the existence of the wrong file; it is
missing the ${ALT_ROOT} file prefix. This breaks creating ramdisk boot archives
on a server for diskless clients. I guess it also breaks creating the ramdisk boot
archive during CD/Network installation (because the install target HDD is probably
mounted at "/a" and create_ramdisk is run with option "-R /a", and the getsize
shell function computes a bogus ramdisk size estimate - unless it is run from the
"/a" directory).
I've filed the following bug on bugs.opensolaris.org
6353553..

cheers,
steve
Post by Jürgen Keil
=================================================================
In snv_27 /boot/solaris/bin/create_ramdisk is badly broken, it cannot build
# cd /tmp
# pwd
/tmp
# /export/root/moritz/boot/solaris/bin/create_ramdisk -R /export/root/moritz
Creating ram disk on /export/root/moritz
updating /export/root/moritz/platform/i86pc/boot_archive...this may take a minute
Could not seek to offset -1 in /tmp/create_ramdisk.3228.tmp/rd.file: Invalid argument
mount: I/O error
mount: Cannot mount /dev/lofi/1
umount: warning: /tmp/create_ramdisk.3228.tmp/rd.mount not in mnttab
umount: /tmp/create_ramdisk.3228.tmp/rd.mount not mounted
rmdir: directory "/tmp/create_ramdisk.3228.tmp/rd.mount": Directory not empty
Root cause: the getsize shell function in boot/solaris/bin/create_ramdisk
estimates a size of 0 KBytes for the ramdisk.
94 function getsize {
95 # Estimate image size, add %10 overhead for ufs stuff
96 total_size=0
97 for file in $filelist
98 do
99 if [ -e $file ] ; then
100 du -sk ${ALT_ROOT}/${file} | read size name
101 (( total_size += size ))
102 fi
103 done
104 (( total_size += total_size * 10 / 100 ))
105 }
Of cause the test at line 99 must test "${ALT_ROOT}/${file}", not "$file" !
===========
run create_ramdisk with the current directory set to the alternate root
# cd /export/root/moritz
# /export/root/moritz/boot/solaris/bin/create_ramdisk -R /export/root/moritz
==============
--- usr/src/cmd/boot/scripts/create_ramdisk.ksh~ 2005-11-14 22:11:41.000000000 +0100
+++ usr/src/cmd/boot/scripts/create_ramdisk.ksh 2005-11-19 20:32:19.401462000 +0100
@@ -96,7 +96,7 @@
total_size=0
for file in $filelist
do
- if [ -e $file ] ; then
+ if [ -e ${ALT_ROOT}/$file ] ; then
du -sk ${ALT_ROOT}/${file} | read size name
(( total_size += size ))
fi
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
--
stephen lau // stevel-xsfywfwIY+***@public.gmane.org | 650.786.0845 | http://whacked.net
opensolaris // solaris kernel development
Ezio Aurelius
2006-10-15 19:26:50 UTC
Permalink
Post by Dennis Clarke
diskread: reading beyond end of ramdisk
start = 0x2000, size = 0x2000
o read superblock
diskread: reading beyond end of ramdisk
start = 0x8000, size = 0x800
o read superblock
panic: cannot mount boot archive
Press any key to reboot
I don't think that is what I was expecting ... :-(
Dennis
_______________________________________________
opensolaris-discuss mailing list
Hello guys,

It happened to me as well, but I tried popuri's workaround just that I didn't edit menu.lst file (cuz I can't find it?) and I managed to get the whole installation process done. The thing is when it reboot for the 2nd time after CD 5 has completed, I'm stuck again with <grub> prompt.

I tried again :-

kernel /platform/i86pc/multiboot kernel/unix
module /platform/i86pc/boot-archive

It produced the same kernel panic msg :-

diskread: reading beyond end of ramdisk
start = 0x2000, size = 0x2000
o read superblock
diskread: reading beyond end of ramdisk
start = 0x8000, size = 0x800
o read superblock
panic: cannot mount boot archive
Press any key to reboot

Question :

a) Where is boot-archive located after the whole installation process done?
b) I tried testload /platform/i86pc/multiboot it produced output. But not with /platform/i86pc/boot-archive? Is that file missing? OR located elsewhere?

Thanks b4hand~!


This message posted from opensolaris.org

Loading...