Date: Mon, 9 Feb 2004 22:25:35 +1030 From: Malcolm Kay <malcolm.kay@internode.on.net> To: Rob <nospam@users.sourceforge.net>, freebsd-questions@freebsd.org Subject: Re: How to safely merge two slices on harddisk? Message-ID: <200402092225.35217.malcolm.kay@internode.on.net> In-Reply-To: <4026FBA6.8030001@users.sourceforge.net> References: <4026FBA6.8030001@users.sourceforge.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 9 Feb 2004 13:46, Rob wrote:
> Hi,
>
> I have a hard disk, on which I would like to merge two slices
> into one single slice. The disk slices are as follows:
>
> /dev/ad1s1a 98M 43M 47M 48% /home/userB
> /dev/ad1s1d 64G 45G 14G 77% /home/userA
> /dev/ad1s1e 3.0G 2.5G 282M 90% /home/userC
> /dev/ad1s1f 3.0G 1.0G 1.7G 37% /usr/ports
> /dev/ad1s1g 3.0G 268M 2.5G 10% /mnt
> /dev/ad1s1h 295M 295M -23.5M 109% /diskless_swap
>
> I want to merge /ad1s1f and /ad1s1g into one 6Gb slice.
>
> The merging should NOT destroy anything in the slices before
> (ad1s1a, d, and e), but destroying the data in the one afer
> (ad1s1h) is no problem.
>
> Is there a way to do this? What is the safest one?
> (without having to backup the whole disk).
Any manipulation at this level is risky. To do so without first=20
taking a backup endangers all your data.
But once you have the assurance of a backup you could copy
all the information from /mnt into some new tree in /usr/ports.
That is a tree copy of the content of /dev/ad1s1g to a new tree
on /dev/ad1s1f.
cp -Rp /mnt /usr/ports/newtree
Having done that partition /dev/ad1s1g becomes free and you=20
can rebuild the disk label using disklabel to eliminate the 'g'=20
partition and extend the size of the 'f' partitition to take up the=20
extra space. But first umount the 'f' and 'g' partitions.
CAUTION
=3D=3D=3D=3D=3D=3D=3D=3D
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!!!
If all has gone well so far you should now be able to use growfs
on /dev/ad1s1f to expand the file system to fill the partition.
Remount the 'f' partition and you should be back in business.
If you want to find what was on /dev/ad1s1g with the original path=20
then
rm /mnt
ln -s /usr/ports/newtree /mnt
If you are on 5.x then be warned that I have no experience with=20
these versions of FBSD.
And in any case I have never, myself, had occassion to use growfs.
Malcolm
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402092225.35217.malcolm.kay>
