disklabel/bsdlabel Question
Matthew Seaman
m.seaman at infracaninophile.co.uk
Fri May 9 02:03:55 PDT 2003
On Thu, May 08, 2003 at 11:42:52AM +0930, Wilkinson,Alex wrote:
> If I want to change the block size and fragment size of a BSD partition will newfs use the
> changed values I make in the disklabel or do I still have to use newfs options to specify the
> fsize and bsize ?
>
> In other words, by changing the values of the disklabel, does this make the new values the defaultfor newfs ?
Good question. It's not entirely clear from the newfs(8) and
disklabel(8) man pages exactly what happens.
Turning to the source code we see:
in /usr/src/sbin/newfs.c:
Variables declared and initialized to zero
[...]
int fsize = 0; /* fragment size */
int bsize = 0; /* block size */
[...]
Values set from command line args, if present:
case 'b':
if ((bsize = atoi(optarg)) < MINBSIZE)
fatal("%s: bad block size", optarg);
break;
[...]
case 'f':
if ((fsize = atoi(optarg)) <= 0)
fatal("%s: bad fragment size", optarg);
break;
[...]
Read disklabel structure into 'lp' structure, and setup 'pp' as
convenience pointer to the list of partitions from the disk label.
if (mfs && disktype != NULL) {
lp = (struct disklabel *)getdiskbyname(disktype);
if (lp == NULL)
fatal("%s: unknown disk type", disktype);
pp = &lp->d_partitions[1];
(pp is later adjusted to point to the entry for partition in question)
[...]
If fsize and bsize have not yet been set to non-zero, use the value
from the partition entry in the disklabel, or failing that either
(fsize) the default value from the parameters at the top of the
disklabel or (bsize) calculate from the fsize value.
if (fsize == 0) {
fsize = pp->p_fsize;
if (fsize <= 0)
fsize = MAX(DFL_FRAGSIZE, lp->d_secsize);
}
if (bsize == 0) {
bsize = pp->p_frag * pp->p_fsize;
if (bsize <= 0)
bsize = MIN(DFL_BLKSIZE, 8 * fsize);
}
[...]
So, in short, the answer to your question is "yes".
Cheers,
Matthew
--
Dr Matthew J Seaman MA, D.Phil. 26 The Paddocks
Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey Marlow
Tel: +44 1628 476614 Bucks., SL7 1TH UK
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20030509/a24ca776/attachment.bin
More information about the freebsd-questions
mailing list