bsdlabel offset

Jerry McAllister jerrymc at msu.edu
Thu Mar 20 18:25:30 UTC 2008


On Thu, Mar 20, 2008 at 04:38:00PM +0100, Adam Pordzik wrote:

> 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)

The only thing the boot sector does is bring in the boot file which
is in a file on the filesystem.   It doesn't need any special sector
after the label sector.   That label sector also stands outside
the allocatable space.    Remember that all addressing is really
virtual, not absolute, even though it looks a little like it is absolute.

For more detailed information, you will have to go to one of the
books on just how the system is built which includes how the disk
blocks and boot sectors are layed out.   I had one, but don't know
just where it is, or I'd include table for a bit of it.

////jerry

> 
> >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.
> 
> Adam
> 
> -- 
> 
> 


More information about the freebsd-questions mailing list