Subscribe

Tuesday, February 06, 2007

如何把Mac OSX个人文件夹(Users/Username)从启动分区移动到其它分区

原文参见:http://www.macworld.com/2002/06/secrets/osxsecrets/

终端程序下,用几个简单的命令行即可以把位于启动分区的个人用户文件夹(Users)移动到其它分区(Volume). 这个个人用户文件夹大约相当于Windows下面的Documents&Settings文件夹,很多程序的数据都是默认存放到这个文件夹下,比如Outlook或Outlook Express的邮件数据。这有个不便之处就是随着数据的日渐增加,你的系统盘(或启动盘)会变得越来越庞大;另外,在重装系统的时候还要考虑把这些数据先备份出来,也很不方便。在Windows下面,你可以把某些程序的数据储存设置到费系统盘或非启动分区,比如,Outlook或OE邮件。但在OSX下面有些程序却不一定能够更改,比如Mail这个程序在预置里面有一个选项 “Account Directory”默认设置为个人用户文件夹下的~/Library/Mail, 但是这个方框是灰掉的,你没有办法把它改到别的分区、路径。我的Mail里面有15000多封,2个多G的邮件数据,我实在是不想让它储存在启动分区里。那怎么办呢?经过一番搜索,发现只要用几行简单的终端命令,可以把个人用户文件夹移动到其它分区,这样,默认存放于个人文件夹/Library/Mail下的数据也就随之自动转移到其它分区。具体操作如下-

首先,先选中你要把个人用户文件夹移动到的分区,按"Command+I", 在Ownership&Permissions下面,有个"Ignore ownership on this volume", 其前面有个方框选项,请确保这个方框内没有被勾选。然后打开Terminal终端程序,输入以下两行命令:
sudo ditto -rsrc "/Users/username" "/Volumes/volumename/Users/username"
sudo niutil -createprop / "/users/username" home "/Volumes/volumename/Users/username"
其中的username需改为相应的你的OSX系统下的你的用户名,volumename改为要把文件夹移动至的新的分区的名称.

sudo命令会要求输入根密码
其中第一行命令把整个用户文件夹,包括所有隐藏文件,复制到新的分区下的用户文件夹; 第二个命令重新分配原有home目录至新的位置。
然后退出登录,再login。(要检测是否更改成功,在Finder中打开home<个人用户>文件夹, 然后按住Command键单击顶部中间的小房子图标,在弹出的窗口中,按照从下到上的顺序依次应为: 计算机名/分区名<卷名或磁盘名>/Users/个人用户名,如果分区名是非启动分区的新分区,就对了。
然后再在终端程序中输入如下命令:

sudo rm -dr "/Users/username/"
sudo ln -s "/Volumes/volumename/Users/username" "/Users/username"

同前,username需改为相应的你的OSX系统下的你的用户名,volumename改为要把文件夹移动至的新的分区的名称。
这两条命令行,第一条是删除原来的用户文件夹;第二条是生成一个软连接,或叫别名,把启动分区的用户目录映射到你新的分区的个人用户文件夹(这样就容易找到你的个人用户文件夹-它的别名会显示在标准的启动分区用户目录下,)
如果要把这一设置应用到所有用户,去掉前面两条命令行的/username. 但是你还需要单独删除(上面第三条rm命令)并映像(上面第四条ln命令)每一个用户文件夹,并且保留用户文件夹和共享文件夹,因为有些程序要求你的用户文件夹内的共享文件夹位于启动分区。
以上设置在Macbook 701A, Mac OSX 10.4.8测试成功.