如何将用户设置和数据迁移到新机器?

如何将用户设置和数据迁移到新机器?

我是 Ubuntu 新手,最近才开始在我的 PC 上使用它。我打算用一台新机器替换那台 PC。我想将我的数据和设置传输到上网本上。我应该考虑哪些方面?

显然我想转移我的数据。如果我仅复制整个主文件夹,我会遗漏什么东西?

这是一台家用电脑(不是公司电脑),因此用户权限和其他安全问题不是问题,只是文件应该可以在新机器上访问!

请注意,新机器是没有光驱的上网本,也不允许我将旧的 SATA 磁盘挂入其中,因此任何数据传输都必须通过家庭网络处理(我可以同时打开新旧机器并连接到家庭 LAN)并且我有一个容量有限(2GB)的 USB 拇指驱动器。
这听起来可能会限制普遍适用性,但实际上它会使它更多的一般的。

答案1

用户设置存储在主文件夹中。因此,如果您将设置复制/home/your-username到新计算机,应该没问题...

...但有一些注意事项:

  • 权限。通常将“程序”(shellscript、自定义构建程序)放在主文件夹中。要保留权限,请使用开关--preserve=mode(using cp) 或-p(using tar)
  • UserID / GroupID。即使两个系统上的用户名相同,用户 ID 也不必相同。通常这不是问题,但如果您的脚本/程序/设置依赖于 UserID,则应确保目标系统上的用户 ID 和组 ID 相同。
    您可以通过执行 来找到当前的 userID 和 groupID id。例如,要更改用户“your-username”的用户 ID,请运行sudo usermod --uid 1234 your-username。要更改 groupID,您必须运行sudo groupmod --gid 1234 your-username

设置(Firefox 配置文件、外观等)通常存储在隐藏文件夹(或文件)中。隐藏文件夹/文件以点为前缀,如.mozillaFirefox(和其他 Mozilla 应用程序)。

由于安全性不是问题,而且您希望尽快完成复制工作,我建议结合使用 netcat 和 tar 程序。这两个应用程序都是默认安装的。确保两台计算机上的防火墙允许进入目标端口 8888(源计算机)并允许传出目标端口 8888(目标计算机)。将上网本放在计算机旁边,以便您可以快速运行命令。

在源计算机上,您需要安装传统的 netcat 程序(又名瑞士军刀,而不是 BSD 程序)。为此,请安装该netcat-traditional包。您可能还想将传统的 netcat 程序配置为默认程序。安装 netcat-traditional 并将其用作默认程序的命令:

sudo apt-get install netcat-traditional 
sudo update-alternatives --set nc /bin/nc.traditional

在源计算机上,在终端中键入下一个命令(不要按 Enter):

 tar cz -C/home $(whoami) | nc -l -p 8888 -w 10

解释:

  • tar 是一个用于打包文件的实用程序
  • cz C创建这样的打包文件(“tarball”)
  • 该 tarball 使用 G 压缩ip算法来降低文件大小。
  • -C/home $(whoami)将工作目录更改为/home并放置您的用户名文件夹。或者,您可以your-username在 tarball 中输入您的文件夹
  • nc(netcat)用于轻松建立机器之间的连接
  • -l:监听模式,允许其他机器连接当前机器
  • -p 8888:监听端口 8888(随机选择的数字,也可以是任何高于 1024 的数字)
  • -w 10:静默 10 秒后退出 netcat。您必须在此时间内连接到此源计算机。

现在转到目标计算机 (nettop)。要将文件添加到目标计算机,请键入(先不要运行):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2是源计算机的 IP 地址。要获取其 IP 地址,请ifconfig在源计算机上运行:
  • 8888是在源计算机上输入的端口号
  • xzp:电子X追踪 Gip 压缩的 tarball保留权限。
  • -C/home:将your-username文件夹解压至/home/your-username
  • 可选地,将-v开关添加到 tar 命令以进行详细提取,这样您就可以了解进度。这可能会减慢复制过程,因为必须打印每个文件。

现在转到源计算机,按 Enter 运行服务器命令。快速切换到您的网络计算机并按 Enter 运行客户端命令。

如果您有任何疑问,请使用下面的评论栏。

答案2

对于软件包,您应该阅读以下内容:http://www.omgubuntu.co.uk/2010/05/transfer-your-packages-to-a-clean-install/

oldmachine$ sudo dpkg --get-selections > installedsoftware
newmachine$ sudo dpkg --set-selections < installedsoftware
newmachine$ sudo apt-get --show-upgraded dselect-upgrade

对于设置和数据,它有点复杂 :-( 大多数设置都存储在您的主文件夹中,因此备份您的 HOME 可能会有所帮助...但这当然不包括系统应用程序,它们的配置存储在 /etc 中...

答案3

默认情况下,应用程序的大多数设置都位于您的主文件夹中,并且处于隐藏状态。如果您Ctrl+h在 Nautilus 中按下,您将看到这些文件夹。我发现最简单的方法是简单地 rsync 您需要的文件夹以进行配置。如下所示:

rsync -avz me@remote:/home/me/.foo me@remote:/home/me/.var me@remote:/home/me/.ack me@remote:/home/me/.bar /home/me/

您也可以 - 只需将整个主文件夹 rsync 到新机器 - 但这可能会导致问题,具体取决于您的设置。

答案4

如果您在一台机器上安装了您喜欢的程序,您可以简单地克隆它。只要机器运行相同的架构(32 位或 64 位,即 i386 或 amd64 等),机器的硬件是否不同并不重要。

这是实现此方法的方法。虽然有点长,但技术含量不高。可以进行多种变化。

  1. 插头新机器的磁盘放入现有机器(或反之亦然)。
  2. 引导从现有安装中。
  3. 设置新磁盘
    • 如果磁盘大小相同:启动分区工具(系统/管理/GParted,包gparted)并将整个旧磁盘复制到新磁盘。
      • 您应该为文件系统的副本赋予新的唯一标识符,以避免以后将一台机器的磁盘安装到另一台机器时产生混淆。对于 ext2/ext3/ext4 文件系统,请使用类似新磁盘在sudo tune2fs -U $(uuidgen) /dev/sdz1哪里以及分区号在哪里的命令。sdz1
      • 如果您已为卷分配名称,则可能需要分配不同的名称。
    • 否则,使用 GParted 或系统/管理/磁盘实用程序在新磁盘上设置分区并格式化它们。如果两个磁盘上的分区大小相同,则可以在 GParted 中复制它们。
  4. 新安装的根分区现在应该出现在“位置”中。
  5. (如果您已经复制了整个磁盘,请跳过此步骤。)复制旧安装的数据根分区到新的。请注意,在此步骤中保留权限和文件所有权至关重要,这意味着您必须以超级用户(root)身份执行此操作。我不知道 Ubuntu GUI 执行此操作的方式是什么。在命令行上,运行sudo cp -ax / /media/disk9(替换/media/disk9为新根分区的安装位置)。
  6. 对任意其他分区您可能有(例如单独的主分区),除非您在步骤 3 中将该分区(或磁盘)作为一个整体复制。
  7. 调整新的安装(假设它安装在/media/disk9; adjust as needed):
    • 编辑以设置新机器的名称。检查下面的文件中是否存在主机名的其他出现 — 它可能出现在、等中。/media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • 如果你正在运行ssh 服务器,删除/media/disk9/etc/ssh/ssh_host_*_key*。启动新安装时,服务器将生成新密钥。
    • 如果你通过编辑配置了网络/etc/network/interfaces,编辑/media/disk9/etc/network/interfaces以适应新安装。
    • 或者,如果存在,请删除这些文件/etc/udev/rules.d/70-persistent-*.rules,以便您的磁盘和网络接口在新机器上重用相同的名称( sda,, ...)。eth0
    • 如果你使用专有视频驱动程序(ATI 或 Nvidia)并且新机器不应该使用相同的驱动程序,请移至/media/disk9/etc/X11/xorg.conf/media/disk9/etc/X11/xorg.conf.old-machine否则您可能无法在新机器中启动到 GUI。
  8. 移动将新安装的磁盘放回到其正确的机器上。
  9. 如果你没有克隆整个磁盘,请插入活动 CD/USB 并修复引导加载程序
  10. 从新安装启动并执行任何必要的剩余过渡步骤:
    • 您可能需要安装新的专有驱动程序(系统/管理/硬件驱动程序)。
    • 如果你有一个静态 IP 地址通过网络管理器设置,为新机器设置网络。
    • 如果你运行ssh 服务器,运行dpkg-reconfigure openssh-server以生成新的主机密钥。

相关内容