[OpenBIOS] Solaris anyone?

Nick Couchman Nick.Couchman at seakr.com
Mon Apr 25 18:41:45 CEST 2011


> Awesome! If you can make a note of what you had to do in order to get it 
> to work and post it to the list, I'm sure lots of people will be very 
> grateful :)
> 

Okay, so, if you set up, for example, an LVM disk that's 10G in size on
Linux, and you do an "fdisk -l" on the LVM volume, you see the
following:

linux:~ # fdisk -l /dev/local/Solaris8 

Disk /dev/local/Solaris8: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/local/Solaris8 doesn't contain a valid partition table

This shows C/H/S parameters of 1305/255/63.  Seems reasonable enough,
so, we boot the install disk in single user mode (boot cdrom:d -s) and
use the format command to configure the disk with these settings.
(Note: Solaris 9 accepts the heads value of 255 - Solaris 8 seems to
choke on even this.)  After format is finished configuring the disk, we
use the "newfs /dev/rdsk/c0t0d0s0" command to try to create a new
filesystem, and we get this:

# newfs /dev/rdsk/c0t0d0s0
newfs: construct a new file system /dev/rdsk/c0t0d0s0: (y/n)? y
With a block size of 8192 minimum bytes per inode is 5884
Minimum bytes per inode is 5884
With 16065 sectors per cylinder, minimum cylinders per group is 16
This requires the fragment size to be changed from 1024 to 4096
Please re-run mkfs with corrected parameters


So, apparently there's some limitation on the C/H/S parameters and how
those interact with the UFS volume you're trying to create.  Obviously
one solution is to run mkfs with the suggested fragment size change;
however, this is hard to do during the install, and the installer isn't
very forgiving about letter you tweak things and continue on with the
install.  So, what I did is recalculate the C/H/S parameters to reduce
the Heads value and increase the Cylinders value.  I stuck with the 63
sectors/track number and just recalculated the Cylinders and Heads
value.  So, if you multiply 1305 * 255, you get 332775.  You can then
reduce one of the numbers to something more sane - I, for example,
reduced Heads to 16, then divide that into 332775 = 20798 (rounded
down), which is your new Cylinders value.  Reconfigure the disk in
format with these new parameters (don't forget to label!), then use
newfs, again:

# newfs /dev/rdsk/c0t0d0s0
newfs: construct a new file system /dev/rdsk/c0t0d0s0: (y/n)? y
/dev/rdsk/c0t0d0s0:     263088 sectors in 261 cylinders of 16 tracks, 63
sectors
        128.5MB in 17 cyl groups (16 c/g, 7.88MB/g, 3776 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 16224, 32416, 48608, 64800, 80992, 97184, 113376, 129568, 145760,
161952,
 178144, 194336, 210528, 226720, 242912, 258080,


Success!  Now we can actually go through the installer and it will
partition and format correctly during the install process!

Let me know if anything looks amiss with my calculations - I haven't
done any extensive testing to verify that the C/H/S values work at the
disk boundaries.

-Nick



--------
This e-mail may contain confidential and privileged material for the sole use of the intended recipient.  If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information.  In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way.  If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox.  Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.



More information about the OpenBIOS mailing list