bsdlabel offset

Adam Pordzik ap at
Thu Mar 20 16:42:33 UTC 2008

Jerry McAllister wrote:
> On Fri, Mar 14, 2008 at 11:40:55AM +0100, Tektonaut wrote:
>> Hi,
>> following bsdllabel output caught my attention:
>> #        size    offset    fstype   [fsize bsize bps/cpg]
>>  a:  2097152         0    4.2BSD     2048 16384 28552 
>>  b:  4194304   2097152      swap                    
>>  c: 312576642        0    unused        0     0         # "raw" part, don't 
>>  edit
>>  d: 33554432   6291456    4.2BSD     2048 16384 28552 
>> ...
>> I created this disk with sade or sysinstall. What I'm not sure
>> about is that partition 'a' has an offset of 0. With an 8k big
>> /boot/boot I would guess offset should be 16block large.
>> But since the disk is booting, some boot1 loader ist located at
>> sector 0 (from the beginning of this slice). How is it assured,
>> that the first block will never be overwritten? Where is boot1
>> located, where boot2?
>> Comparing the first sector with boot and boot1 differs already
>> at the first char. (and there were no updates so far)
> That sector 0 lies outside of the slice block 0. What you are
> seeing is not an absolute disk offset, but the offset in to the slice.  

Right, and sector 0 of the bsd-partition (label) begins where
the bsd-partition- starts. Since offset of ads1a is zero, sector 0
ad0s1a is the same as sector 0 of ad0s1.

So my problem was to understand how there can be any room for
boot1+2, if the filesystem start right there. My fault was to assume,
that the ufs-superblock begins at first sector. (see below)

> It is possible to create it otherwise but isn't done that
> way by default.    Nowdays, actually a whole track is held
> out, instead of just sector 0 and that is where some of the
> fancier MBRs such as GRUB get their extra space to work.
> But, the standard FreeBSD MBR sticks to the official standard
> of just one sector - which is why it is so plain vanilla.

Since I have no real use for a DOS/MBR-partitiontable, I'd like to
partitionate a "dangerously dedicated" layout. How would I do
this in a safe way?

I found the answer to my question in sys/ufs/ffs/fh.h: UFS leaves
some sectors free up to the superblock. Dependening on xxxxxxxxx
that can be 0k, 8k, 32k, 64k or even 256k.



More information about the freebsd-questions mailing list