Re: moving /home [Solved - Corrected HowTo]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In the spirit of the Perl motto, "There's always another way to do things.", how about as root:
cd /home
find . -print | cpio -pdlmuv /mnt/mynewhome

gets every file without breaking a sweat and keeps the ownership/attributes/mod time/soft-links

Jeff Vian wrote:
On Tue, 2005-12-06 at 00:41 +0500, Sergey wrote:
Claude

This is a prolix but a valid step-by-step instruction. You may want to publish it in a faq.

One note: your command 'cp -a/home/* /mnt/mynewhome' would not copy the /home/.* entries. I don't really think there are chances such entries exist, however having such a job to do you've got to ensure.

You are correct *if* there were any .xxx entries in /home.  I have never
seen any there, only within the users actual home directory
(/home/user), and the command he gives will handle all of those. It is
important when doing something like this to make sure all the
possibilities are covered so another way to do it and verify everything
was copied could be:
# cp -a /home/* /home/.[!.]* <dest/directory>
In this command it explicitly asks for anything beginning with a '.',
but since both '.' and '..' match they need to be excluded, thus the
[!.] (not dot) part. For clarity read up on regexps.

Tim's recommendation is (I believe) actually a better command.
# cd /home
# cp -a . <dest/directory>
This form of the command will handle even the .xxx files in the current
directory properly.

I've written a similar instruction, without any comments though. However reading the next few commands makes it easier to understand, for some people.

Make sure /mnt/home does not exist.

# mkdir /mnt/home
# mount /dev/sda1 /mnt/home2
# cp -a /home /mnt
# umount /mnt/home
# mount --move /mnt/home /home
# rmdir /mnt/home
# sed "s|/dev/VolGroup00/LogVol00|/dev/sda1|" /etc/fstab >/etc/fstab- && \
# mv -f /etc/fstab- /etc/fstab

No whatever file editing is needed.

That is it
Make sure no errors produced after each command has run.



----- Original Message -----
From: Claude Jones <claude_jones@xxxxxxxxxxxxxx>
To: For users of Fedora Core releases <fedora-list@xxxxxxxxxx>
Subject: Re: moving /home [Solved - Corrected HowTo]
Date: Monday 05 December 2005 19:44

I apologize for this dual-post, but the first contained a serious error:

On Sun December 4 2005 9:47 am, Claude Jones wrote:
I would like to move my home directory to a new 300GB SATA drive - I edit
video, so I need lots of space.
I've installed the hardware, and using qtparted I've formatted it as ext3
- in qtparted it appears as sda1
My current mounts:

/dev/mapper/VolGroup00-LogVol02 on / type ext3 (rw)
/dev/proc on /proc type proc (rw)
/dev/sys on /sys type sysfs (rw)
/dev/devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hdb1 on /boot type ext3 (rw)
/dev/shm on /dev/shm type tmpfs (rw)
/dev/mapper/VolGroup00-LogVol00 on /home type ext3 (rw)
/dev/hda1 on /mnt/windows type ntfs (ro,umask=0222,gid=100)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/proc on /var/named/chroot/proc type none (rw,bind)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

I'm caught in a circular logic trap and I can't figure out what to do
next. I've read the mount and fstab man pages, and googled this issue, but
I'm missing something. What would be the next step?
The long thread that followed this original query for help was the result of
my having to overcome many years of experience administering Windows based
file systems. I won't attempt to write a dissertation on the differences
between Linux and Windows file systems and media organization, but, in the
hope that it may be of use, here are the steps that worked.

1) Install new drive:
After physical installation and a reboot, I opened qtparted (Linux
partitioning/formatting tool) - qtparted recognized the drive immediately as
sda.  I created a single partition on my new drive and formatted it as ext3.

2) Create a temporary mount point:
I created a new directory in /mnt calling it "mynewhome"

3) Boot into runlevel 1:
Restart the computer and at the first Fedora splash screen press the letter
'a' on keyboard. This halts the boot process and brings up the kernel line.
At the end of that line type '1' (the number one without quotes), and press
the enter key - this boots the machine into runlevel 1 or single user mode.

4) Mount drive to new directory:
When the prompt comes up, mount the new drive to the directory previously
created in /mnt (step 2 above)
'mount /dev/sda1 /mnt/mynewhome'
(the '1' is added to 'sda' to indicate the first partition on drive sda -
even though there is only one partition on the drive, this is the syntax
that must be used, else the command will fail)

5) Copy the contents of current home folder to the new drive:
'cp -a/home/* /mnt/mynewhome'
(this step is important to get right - it takes all the contents of the
current /home and copies them to the root of the new drive, sda1, now
mounted as /mnt/mynewhome - you want everything BELOW /home to be
transferred to this new location - also, when copying the contents of /home
to the new location, you want all the attributes of the files preserved
which is what the '-a' option to the 'cp' command does - read the 'man cp'
pages for details of this command)

6) Edit the fstab file:
This file is read at boot time by your system, and mounts your drives to the
correct locations in your directory structure.
There are a limited number of text editors available at the command line. I
use 'joe':
'joe /etc/fstab'
This opens the file in text editing mode. Find the line that contains the
mount for the current /home - on my system it looked like this:
/dev/VolGroup00/LogVol00   /home  ext3    defaults   1 2
Comment this line by adding a '#' to front of it.
Now, add the line that will mount your new home - mine looked liked this:
/dev/sda1          /home        ext3      defaults      1 2
If you use the 'joe' editor to to do this, then 'ctl-k' followed by 's' will
ask you if you want to save the file; pressing 'enter' will save. 'ctl-k'
followed by 'q' will exit joe.

7) Reboot - if you got it all right, your machine should boot normally, but
using the new /home. If you made a mistake, you haven't altered anything
irreparably. You can revert the edited 'fstab' file to its prior state
easily, and be back where you started. All your old /home files will still
be there...

After this has all run in a stable fashion for a few days, I will then
tackle how to eliminate the logical volume group 00, and take that space
and add it my logical volume group 01, which is where my '/' (the rest of
the file system) is mounted.

Hope this of future help to someone, and thanks to all who helped me to
figure this out.

--
Claude Jones
Bluemont, VA, USA


--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-= Charles D. (Chuck) Harding <cdharding@xxxxxxxxxxxxxxxxxxxxxxxxxxx> =-
-= Livermore, CA USA   K6CKT  DOD#1408  http://www.harding-family.org =-
-=        GNUPG Key-ID 0xB766F0F8  Keyserver http://pgp.mit.edu       =-
-=  Key Signature 5630 43C6 E1D0 25E7 2092  A351 D6C6 C489 B766 F0F8  =-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Never appeal to a man's "better nature."  He may not have one.
Invoking his self-interest gives you more leverage.
		-- Lazarus Long


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux