> 
>       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 "[EMAIL PROTECTED]"
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to