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

Esb*_*erg 7 user-data backup home-directory 16.04

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

pau*_*n32 13

是的。我已经做过很多次了。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
Run Code Online (Sandbox Code Playgroud)

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

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

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

cd /home
rsync -e ssh -ravn myuser  myuser@my.new.computer:/home
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • -r: 递归
  • -a: 存档模式
  • -v: 详细模式。你可以忽略它,它会走得更快。但少了些安慰。
  • -n: 实际上不要做任何改变

我挂-n旗是因为我想试运行;如果有错误,我们会找出来。测试后,运行没有-n标志的相同命令。

这仅在您的用户帐户有权在 /home/myuser 中复制和写入文件时才有效。我不完全确定如何在没有 root 的情况下做到这一点,但我曾经知道,而且我敢打赌这里有人知道该怎么做。

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

cd /home
rsync -e ssh -rav my.old.computer:/home/myuser .
Run Code Online (Sandbox Code Playgroud)

Period.表示当前工作目录。用第-n一个运行看看有什么问题。

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

rw-------   1 myuser myuser        174 Aug  4 22:43 .Xauthority
Run Code Online (Sandbox Code Playgroud)

您会看到用户编号,例如

rw-------   1 504 50004        174 Aug  4 22:43 .Xauthority
Run Code Online (Sandbox Code Playgroud)

或者,更糟糕的是,其他一些用户的名字。这是因为 uid 和 gid 确实决定了文件所有权;人类可读的名称是肤浅的。

您通常可以使用 来解决这个问题chown,但您不会看到是否将 uid 和 gid 对齐。

如果复制失败一次,或者做了一些你意想不到的事情,不要太担心,因为你总是可以再次运行。您不是在破坏旧计算机,而新计算机则是空白。

我想一些 tar 爱好者会说最好的方法是对旧的东西进行 tar 压缩,移动 tar.gz 文件,然后扩展它。在 2003 年左右,这对我们来说似乎至关重要,但最近 rsync 方法运行良好。

顺便说一句,如果有人有兴趣了解rsync,这man rsync是有史以来最好、最有帮助的手册页之一。它是人类可读的,有大量的例子,这也是我坚持rsync喜欢系统维护中的救生筏的原因之一。