如何在重新安装时重新指向主分区

如何在重新安装时重新指向主分区

我决定重新安装 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目录中。因此,执行上述操作将重置您可能已完成的每个设置。

相关内容