将主文件夹移动到 Ubuntu 的新安装

将主文件夹移动到 Ubuntu 的新安装

是否可以将主文件夹移动到新安装的 Ubuntu,以将用户的所有设置和调整保留在该计算机上?例如,如果我在新安装的 Ubuntu 上创建一个新用户,其名称和密码与我想移动到新 Ubuntu 安装的用户相同。这会起作用吗?或者更好的是,它安全吗?

答案1

是的。我做过很多次了。rsync 有一个模式“-a”,可以保留所有权、文件时间等所有内容。可以通过网络发送文件。或者您可以复制到 ext4 格式的外部磁盘并使用 rsync 恢复。请记住不要使用普通的拖放操作进行复制,而是使用 rsync 并保留所有属性的存档(“-a”)。

假设 my.old.computer 有您的帐户“myuser”。

设置新计算机 my.new.computer。在那里创建“myuser”。如果你很讲究,可以从旧系统获取用户 ID 和组 ID,并在创建用户帐户时分配它们。这可能会减少问题,但我想我这样做只是因为我比较守旧,而且在 2005 年就出过一次问题。知道我所说的 uid 和 gid 是什么意思吗?用户帐户的编号。在旧系统上运行“id myuser”,然后当你在新计算机上创建新用户时,你分配相同的 uid 和 gid。

在这两个系统上创建其他帐户,我们不想在用户登录时尝试复制“myuser”的用户文件夹,因为会话取决于您销毁的文件。重复:当您想要复制 myuser 帐户的文件时,一定不要以 myuser 身份登录。在任一系统上。

在新系统上,以 root 身份将默认用户目录移开(注意安全,不要删除!),然后创建新目录

sudo mv /home/myuser /home/myuser.orig
sudo mkdir /home/myuser
sudo chown myuser.myuser /home/myuser

您需要最后一步,以便您的普通用户帐户可以rsync访问文件。我们不想以 root 身份执行此操作

然后使用标志将文件夹/home/myuser从旧文件夹复制到新文件夹。rsync-rav

可以将文件从旧系统发送到新系统。在旧系统上

cd /home
rsync -e ssh -ravn myuser  [email protected]:/home

在哪里:

  • -r:递归
  • -a:归档模式
  • -v:详细模式。您可以省略它,这样会更快。但不太令人放心。
  • -n:实际上没有做任何改变

我放置-n标记是因为我想进行测试运行;如果有错误我们会发现。测试后,运行不带-n标记的相同命令。

这仅当您的用户帐户有权复制和写入 /home/myuser 中的文件时才有效。我不完全确定如何在没有 root 权限的情况下执行此操作,但我以前知道,而且我敢打赌这里有人知道该怎么做。

或者如果你在新系统中,可以从其他系统复制

cd /home
rsync -e ssh -rav my.old.computer:/home/myuser .

句点.表示当前工作目录。运行-n第一个来查看错误所在。

我已经多次这样做了。手动设置 uid 和 gid 确实没有必要,因为 ssh 和 rsync 的组合应该可以正确分配新文件。但是,我曾经犯过错误,所有新文件都显示为由错误的用户使用。您希望看到如下 ls -la 输出:

rw-------   1 myuser myuser        174 Aug  4 22:43 .Xauthority

你会看到用户数量,例如

rw-------   1 504 50004        174 Aug  4 22:43 .Xauthority

或者更糟的是,是其他用户的名字。发生这种情况是因为 uid 和 gid 真正决定了文件所有权;人类可读的名字是肤浅的。

通常,您可以使用来解决这个问题chown,但是如果您将 uid 和 gid 排成一行,您将看不到它。

如果复制失败了,或者出现了意想不到的情况,也不必太担心,因为您可以随时再次运行。您不会毁掉旧电脑,而新电脑则是一张白纸。

我想有些 tar 爱好者会说,最好的方法是将旧东西打包成 tar,移动 tar.gz 文件,然后将其展开。在 2003 年左右,这对我们来说似乎至关重要,但最近 rsync 方法效果很好。

顺便说一句,如果有人有兴趣了解rsync,这man rsync是有史以来最好、最有帮助的手册页之一。它易于阅读,有大量示例,这也是我rsync在系统维护中像救生筏一样坚持使用它的原因之一。

相关内容