是否可以将主文件夹移动到新安装的 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
在系统维护中像救生筏一样坚持使用它的原因之一。