gstripe: delete one, and enlarge another partition?

Fernan Aguero fernan at
Tue Jan 5 18:57:35 UTC 2010


I've been using GEOM in a box successfully for years (both
mirrored (for the OS), and striped partitions (for a CPAN
mirror, a FreeBSD CVS mirror, tinderbox and other uses).

Now, I would like to do some reorganization with the striped
partitions (delete one of the striped partitions, and grow
one of the remaining striped partitions). 

/dev/stripe/gs0d    9.7G    604M    8.3G     7%    /usr/obj
/dev/stripe/gs0e     29G    9.0G     18G    34%    /freebsd
/dev/stripe/gs0f     29G    1.1G     26G     4%    /mirror
/dev/stripe/gs0g     85G    5.9G     73G     8%    /scratch

gama# gstripe list
Geom name: gs0
State: UP
Status: Total=2, Online=2
Stripesize: 4096
ID: 1659247043
1. Name: stripe/gs0
   Mediasize: 169757777920 (158G)
   Sectorsize: 512
   Mode: r4w4e5
1. Name: ad4s3
   Mediasize: 84878889984 (79G)
   Sectorsize: 512
   Mode: r4w4e6
   Number: 0
2. Name: ad6s3
   Mediasize: 84878889984 (79G)
   Sectorsize: 512
   Mode: r4w4e6
   Number: 1

I would like to delete gs0f and make gs0g use the reclaimed
space .... or better still fuse the two (preserving
contents, is that possible at all?)

Of course I can do a backup, delete everything and recreate
the partitions, but, being lazy, I was wondering if there is
a painless and easy way to do this.

I've been reading some posts, some man pages, and was
tempted to try and delete gs0g and then use growfs. 

Would this work? I'd appreciate any tip or suggestion (or even a shout!)

i) gstripe stop gs0
ii) bsdlabel -e ad4s3 (ad6s3) and then delete ad4s3g (ad6s3g)?
iii) growfs -sXXXXXXXX /dev/ad4s3f (ad6s3f)?

where do I get the new size (XXXXXX) for growfs? 
Would 184757504 be OK? (from bsdlabel output, below):

# /dev/ad4s3:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 331558160        0    unused        0     0         # "raw" part, don't edit
  d: 20971520       16    4.2BSD     2048 16384 28552 
  e: 62914560 20971536    4.2BSD     2048 16384 28552 
  f: 62914560 83886096    4.2BSD     2048 16384 28552 
  g: 184757504 146800656    4.2BSD     2048 16384 28552 
partition c: partition extends past end of unit
bsdlabel: partition c doesn't cover the whole unit!
bsdlabel: An incorrect partition c may cause problems for standard system utilities
partition g: partition extends past end of unit

This is on FreeBSD-6.4p8, i386 (RELENG_6_4)



More information about the freebsd-geom mailing list