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>