How to safely merge two slices on harddisk?
Malcolm Kay
malcolm.kay at internode.on.net
Wed Feb 11 04:15:27 PST 2004
On Wed, 11 Feb 2004 21:15, Rob wrote:
> Malcolm Kay wrote:
> > On Tue, 10 Feb 2004 04:19, Rob wrote:
> >>Malcolm,
> >>
> >>Thank you for your detailed answer to my question.
> >>
> >>Malcolm Kay wrote:
> >>>On Mon, 9 Feb 2004 13:46, Rob wrote:
> >>> Do not change the offset of 'f'. If 'g' does not physically
> >>> follow 'f' on the disk then this is not going to work -- give up
> >>> now!!!
> >>
> >>How can I find that out? Is it the slice order in the disk label editor
> >>from /stand/sysinstall :
> >
> > No! What you want is disklabel (see man page). On 5.x this seems to
> > have been replaced by bsdlabel -- but I have no experience with 5.x.
>
> The disklabel output of the disk is:
>
> -------------------------------------------------------------------------
> # disklabel /dev/ad1s1c:
> [...zip...]
> 8 partitions:
> size offset fstype [fsize bsize bps/cpg]
> c:156296322 0 unused 0 0 # (Cyl. 0 -
> 9728*)
>
> a: 204800 0 4.2BSD 0 0 0 # (Cyl. 0 -
> 12*) e: 6348800 204800 4.2BSD 0 0 0 # (Cyl. 12*-
> 407*) f: 6348800 6553600 4.2BSD 0 0 0 # (Cyl. 407*-
> 803*) g: 6348800 12902400 4.2BSD 0 0 0 # (Cyl. 803*-
> 1198*) h: 614400 19251200 4.2BSD 0 0 0 # (Cyl. 1198*-
> 1236*) b: 614400 19865600 4.2BSD 2048 16384 91 # (Cyl. 1236*-
> 1274*) d:135816322 20480000 4.2BSD 0 0 0 # (Cyl. 1274*-
> 9728*)
> -------------------------------------------------------------------------
>
> I have put the partitions in a new order, such that the Cyl. counts are
> continuously running up. Am I right, that g physically follows f here?
> If so, that would mean I can merge f and g into one new partition of 6 Gb,
> right?
I hope you mean you put the list in a new order -- not the physical partitions!
You'll notice the cylinder counts occur after a '#'; thus they have no real
signifcance but are only (informative) comments.
>
> I actually wonder if the label editor of /stand/sysinstall can do what
> I want.
Hmm, probably, but it is not always easy to know in detail what sysinstall
will do. In my opinion it is much more robust to modify the table through
disklabel.
>Since I now know that f and g are back-to-front partitions, I could
> remove them and create a single new one; when I write this to disk, I can
> let sysinstall also create a new filesystem on the newly merged partition.
>
Yes you could, but this discards the data in both the partitions 'f' and 'g'.
But you could make a copy of everything on 'g' to a new tree on 'f'.
Now dismount 'g' and 'f'.
Dump the output from fdisklabel to a file.
Edit the file by removing the g: line.
Change the size in the f: line from 6348800 to 12697600.
Use disklabel to write the revised table to disk.
Use growfs on partition 'f'.
Remount partition'f'.
Mission accomplished -- I hope.
> I know this is potentially dangerous, but this way I have already
> deleted the swap partition, created a new ufs partition instead and
> created a file system on that; all in sysinstall.
> I believe it is safe, as long as I do not run 'newfs' on the existing
> partitions.
>
> Or am I missing something important here?
A good chance it will work -- but pre-existing 'f' and 'g' data is lost.
Malcolm
More information about the freebsd-questions
mailing list