我决定重新安装 Kubuntu(我尝试了许多不同类型的 Ubuntu)以获得一个干净的操作系统。
我有一个用于 Windows(NTFS)的分区,另一个用于家庭(ext4)的分区,第三个用于 Kubuntu OS(ext4)的分区,还有一个交换分区。
但是,新安装在下创建了一个新的主目录/
,那么我如何指向/home
旧的单独主分区来访问我的文件?
答案1
官方答案记录在https://help.ubuntu.com/community/Partitioning/Home/Moving,我将从中提取您尚未完成的内容。您可以复制下面看到的命令,然后切换到 shell 提示符并粘贴它们Ctrl-Shift-V
1) 查找分区的 UUID:可以通过打开命令行(或 shell 提示符)来找到所有分区的 UUID(通用唯一标识符)参考,然后键入以下内容来创建一个包含所有 UUID 列表的文件:
blkid > uuid-list.txt && cat uuid-list.txt
2)备份和编辑文件系统:这是 Kubuntu 用来决定在启动时挂载哪些分区的文件。以下命令也是从 shell 提示符执行的,将复制您当前的 fstab,将年月日附加到文件名末尾,比较两个文件并打开原始文件进行编辑。
2A)复制您的 fstab 文件:
sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)
2B)比较两个文件以确认备份与原始文件相符:
cmp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)
3) 在 shell 提示符下,使用文本编辑器打开原始 fstab:
gksu kate /etc/fstab
并将这些行添加到其中
# (identifier) (location, eg sda5) (format, eg ext3 or ext4) (some settings)
UUID=???????? /media/home ext4 defaults 0 2
并将“???????”替换为您想要的 /home 分区的 UUID 号码。
4)保存并关闭 fstab 文件,然后从 shell 提示符中键入以下命令:
sudo mkdir /media/home
此命令创建一个新目录,稍后用于临时挂载新分区。在程序结束时可以删除此目录。
5)现在使用此 shell 提示命令重新加载更新的 fstab 文件:
sudo mount -a
将所需的新主分区挂载为 /media/home。我们稍后会再次编辑 fstab,因此此分区安排只是暂时的。
6)将 /home 复制到新分区:接下来,我们将把当前 /home 目录中的所有文件、目录和子目录复制到新分区:
sudo rsync -aXS --exclude='/*/.gvfs' /home/. /media/home/.
--exclude='/*/.gvfs' 可防止 rsync 抱怨无法复制 .gvfs,即使 rsync 抱怨,它仍会复制其他所有内容。(有关更多详细信息,请参阅http://ubuntuforums.org/showthread.php?t=791693)
7) 检查复制是否成功:现在您应该拥有主目录中所有数据的两个副本;原始副本位于 /home,新副本位于 /media/home。您应该确认所有文件和目录都已成功复制。一种方法是使用 diff 命令:
sudo diff -r /home /media/home
8) 为交换机准备 fstab:现在我们需要再次修改 fstab,使其指向新分区并将其挂载为 /home。因此,再次在命令行上
gksu kate /etc/fstab
现在编辑您之前添加的行,将“/media/home”部分更改为简单的“/home”,使其看起来像这样:
# (identifier) (location, eg sda5) (format, eg ext3 or ext4) (some settings) UUID=???????? /home ext4 defaults 0 2
然后,按“保存”,关闭文件但不要重新启动。
9) 将 /home 移至 /old_home:最好现在就备份您的旧家,以防万一事情进展不顺利。方法如下:
只要您尚未重新启动,您仍会看到 /home 目录的 2 个副本;新副本位于新分区(当前挂载为 /media/home),旧副本仍位于其始终所在的同一分区(当前挂载为 /home)。我们需要将旧主目录的内容移开,并创建一个空的“占位符”目录作为新分区的挂载点。
键入以下命令字符串即可一次性完成所有操作:
cd / && sudo mv /home /old_home && sudo mkdir /home
默认情况下,当您打开终端窗口时,它会将您置于主目录中。输入 cd / 会将我们带到根目录并离开主目录,因此我们可以使用 sudo mv 命令将 /home 重命名为 /old_home,最后创建一个新的空 /home 占位符。
现在,您已编辑了 fstab,以将新分区挂载到我们的 /home 占位符,而原始 /home 现在称为 /old_home,请重新加载更新的 fstab
sudo mount -a
10)删除旧的主目录:你可以使用以下命令删除旧的主目录:
cd / sudo rm -r /old_home
请小心使用上述命令,因为输入错误可能会导致删除其他文件和目录。
答案2
您需要更改 fstab 文件以指向主分区。为此,请执行以下操作。
打开终端并输入sudo blkid
记下您想要用作 /home 目录的分区的 UUID。
现在编辑 fstab 文件,输入sudo nano /etc/fstab
以下内容并添加新条目
UUID=_____ /home ext4 nodev,nosuid 0 2
用您之前记下的分区的 UUID 填写空白。
现在输入以下内容
cd / && sudo mv /home /home_old && sudo mkdir /home
这会将当前的 /home 目录移动到 /home_old 并创建一个空白的 /home 目录。重新启动系统,您应该能够使用 ext4 分区作为新的 /home。
如果您不想重新启动,一个简单的sudo mount -a
方法就可以了。
警告:所有用户级别设置都存储在/home目录中。因此,执行上述操作将重置您可能已完成的每个设置。