个人工具

UbuntuHelp:Partitioning/Home/Moving

来自Ubuntu中文

Wikibot讨论 | 贡献2008年10月19日 (日) 16:47的版本 (新页面: {{From|https://help.ubuntu.com/community/Partitioning/Home/Moving}} {{Languages|UbuntuHelp:Partitioning/Home/Moving}} ==== Why this guide is superior to the others ==== I wrote this guide...)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航, 搜索

Why this guide is superior to the others

I wrote this guide simple because I found some flaws in the other guides that I read, and I wanted to record my findings for future reference. I'm posting (and updating a bit) here for the benefit of others. Here are the reasons I originally wrote this guide:

  • Partition and setup fstab first

There are guides that use mount commands to do the initial partition mounting, and then setup fstab after you have moved your /home. If you mess up your fstab, then when you reboot, your system will loose track of your /home files. Setting up fstab first and using sudo mount -a to mount the partitions avoids this problem.

  • Use rsync to move the files

There is lot's of debate about which command to copy your files to the new /home partition. This debate stems from a time in the past when cp was not able to do it properly (I think it skipped files?). cp was not designed to be a powerful backup tool. The fix, then, was to use a combo of find and cpio (See section 8.3.5). cp has had improvements since, but why not use rsync, a tool that is designed for backups like moving your /home, and much more. Rsync is not only able to copy over all the files, but is also able to maintain other characteristics of the file, like permissions, ownership, and timestamps.

The Guide

Setting up /home on a separate partition is beneficial because your settings, files, and desktop will be maintained if you upgrade/reinstall/use a different distro. This works because /home has a subfolder for each user's settings and files. Also, fresh installs for linux typically like to wipe whatever partition they are being installed to, hence the need to put /home on a different partition.

Setup Partitions

This is beyond the scope of this page. Try here. Memorize or write down the location of the partition, something like /sda3 or /hda3. Its been suggested to use either ext2 or ext3 over vfat. Using vfat is not supported and may fail, since vfat does not support permissions.

Setup Fstab

Use your favourite editor to edit fstab, like: gksu gedit /etc/fstab <
> Add a line for your partition; something like the following line:

UUID=????????   /media/home    ext3          nodev,nosuid       0       2
(identifier )   (location  )   (format)      (   some settings           )  

You should replace the ?'s with the UUID of the intended /home partition, and the location should be a temporary one (/media/home is assumed in the rest of the guide). The UUID can be found with:

blkid

Now, mount the partition with:

sudo mount -a

Check that you can copy files over, at least as root (ie with sudo).

Copy /home to the New Partition

sudo rsync -axS --exclude='/*/.gvfs' /home/. /media/home/.

The --exclude='/*/.gvfs' prevents rsync from complaining about not being able to copy .gvfs, but I believe it optional. Even if rsync complains, it will copy everything else anyway. (See here for discussion on this)

Make the Switch

Here is the point of no return. If the previous two steps worked, you should have no troubles. Rename your /home directory:

sudo mv /home /old_home

Re-create a /home directory with:

sudo mkdir /home

Edit fstab so that your new home partition actually points to /home, by changing /media/home to /home and finally, remount the partition with:

sudo mount -a

Reboot to ensure that currently running programs use the new /home

After a reboot

If everything is working, great, you can delete /old_home. If things aren't working, you can undo by moving your /old_home back to /home, and delete the line you added to fstab.

Technical Notes and Resources

Rsync was chosen over cp and find|cpio because it seemed to maintain permissions. http://ubuntu.wordpress.com/2006/01/29/move-home-to-its-own-partition/ http://ubuntuforums.org/showthread.php?t=46866