Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 May 2006 16:42:24 -0400 (EDT)
From:      Jerry McAllister <jerrymc@clunix.cl.msu.edu>
To:        roberthuff@rcn.com (Robert Huff)
Cc:        questions@freebsd.org
Subject:   Re: using bsdlabel
Message-ID:  <200605312042.k4VKgOSU008664@clunix.cl.msu.edu>
In-Reply-To: <17533.61128.28295.514215@jerusalem.litteratus.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> 	I've never used bsdlabel before; would someone please confirm
> I've got this right?
> 	Status quo:
> 
> huff@>> bsdlabel da0s1
> # /dev/da0s1:
> 8 partitions:
> #        size   offset    fstype   [fsize bsize bps/cpg]
>   a:  1024000        0    4.2BSD        0     0     0 
>   b:  2097152  1024000      swap                    
>   c:  8916012        0    unused        0     0         # "raw" part, don't edit
>   d:  2097152  3121152    4.2BSD        0     0     0 
> 
> 	As I understand it, if I run this:
> 
> huff@>> bsdlabel -w da0s1 -f /label.new
> 
> 	where /label.new has:
> 
> # /dev/da0s1:
> 8 partitions:
> #        size   offset    fstype   [fsize bsize bps/cpg]
>   a:  1024000        0    4.2BSD        0     0     0 
>   b:  2097152  1024000      swap                    
>   c:  8916012        0    unused        0     0         # "raw" part, don't edit
>   d:  2097152  3121152    4.2BSD        0     0     0 
>   e:  3697708  5128304    4.2BSD        0     0     0 
> 
> 	this will allocate the rest of the slice to partition 'e'.
> (And we're ready to newfs.)

If I am doing it by hand, I would prefer using direct edit as in:
  (NOTE, you apparently already have some usable label on the disk)

>> bsdlabel -e -r da0s1

This will bring up an edit session (vi unless you have your editor
                                    set to something else - I use vi)
as follows.

> # /dev/da0s1:
> 8 partitions:
> #        size   offset    fstype  [fsize bsize bps/cpg]
>   a:  1024000        0    4.2BSD      0     0     0
>   b:  2097152        *      swap
>   c:        *        0    unused      0     0       # "raw" part, don't edit
>   d:  2097152        *    4.2BSD      0     0     0
>   e:        *        *    4.2BSD      0     0     0
>

Then, just write and quit the edit session  

It will calculate the last partition size and all the offsets for you 
just the way you want it.

I use this method in our programs that automatically build variable
sized disks for our clients.  I fix the size of root (da0s1a), swap (da0s1b)
and tmp (da0s1e) and then make the last partition (da0s1f) contain all the 
remainder, whatever it is.  It works just fine.   

If you really want to work from a file, put the output of your bsdlabel
into the file and then edit it as I show above.

  bsdlabel -r da0s1 >> label.new
  vi label.new

Then do: 
  disklabel -R da0s1 label.new 

The only thing you aren't doing in either of these cases is making 
that da0s1a bootable.  If you want that, you need to do:   
either
  bsdlabel -B da0s1
  bsdlabel -r -e       and then do the edits as above

or to do it from a file as created above do:

   disklabel -R -B da0s1 label.new 

////jerry


> 
> 				Robert Huff
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605312042.k4VKgOSU008664>