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

Tor*_*uun 61 user-data cloning

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

显然我想移动我的数据。如果我只复制整个主文件夹,我会错过什么?

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

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

Lek*_*eyn 49

用户设置按设计存储在主文件夹中。所以,如果你把你的复制/home/your-username到你的新电脑,你应该没问题......

...但有一些警告:

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

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

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

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

sudo apt-get install netcat-traditional 
sudo update-alternatives --set nc /bin/nc.traditional
Run Code Online (Sandbox Code Playgroud)

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

 tar cz -C/home $(whoami) | nc -l -p 8888 -w 10
Run Code Online (Sandbox Code Playgroud)

解释:

  • tar 是一个打包文件的工具
  • cz c 创建这样一个打包文件(“tarball”)
  • tarball 使用 G Z 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
Run Code Online (Sandbox Code Playgroud)
  • 192.168.1.2是源计算机的 IP 地址。要获取其 IP 地址,请ifconfig在源计算机上运行:
  • 8888 是在源机器上输入的端口号
  • xzp:电子X大片对于g Ž IP压缩压缩包而p保留权限。
  • -C/home: 将your-username文件夹解压到/home/your-username
  • 或者,将-v开关添加到 tar 命令以进行详细提取,以便您了解进度。这可能会减慢复制过程,因为每个文件都必须打印。

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

如果您有任何问题,请使用下面的评论字段。


Lit*_*awa 19

对于软件包,您应该阅读以下内容: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
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*ppi 14

默认情况下,应用程序的大部分设置都隐藏在您的主文件夹中。如果您按下Ctrl+hNautilus,您将看到这些文件夹。我发现最简单的方法是简单地 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 到新机器 - 但这可能会导致问题,具体取决于您的设置。


aks*_*atj 13

Ubuntu 开发人员正在研究它,它被称为OneConf

  • 根据 https://code.launchpad.net/oneconf 最后更新 2015 年所以不再是一个活跃的项目 (2认同)

Gil*_*il' 9

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

这是一种方法。它有点长,但技术含量相当低。许多变化是可能的。

  1. 插上新机的磁盘到现有的机器(或反之亦然)。
  2. 从现有安装启动
  3. 设置新磁盘
    • 如果磁盘大小相同:启动分区工具(系统/管理/GParted,包gparted)并将整个旧磁盘复制到新磁盘。
      • 您应该为文件系统的副本提供新的唯一标识符,以避免以后在另一台机器上挂载一台机器的磁盘时出现任何混淆。对于 ext2/ext3/ext4 文件系统,使用类似新磁盘sudo tune2fs -U $(uuidgen) /dev/sdz1在哪里sdz1分区号这样的命令。
      • 如果您为卷分配了名称,则可能需要分配不同的名称。
    • 否则,使用 GParted 或 System / Administration / Disk Utility 在新磁盘上设置分区并格式化它们。如果两个磁盘上的分区大小相同,则可以在 GParted 中复制它们。
  4. 挂载新安装的根分区,它现在应该出现在 Places 中。
  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. 如果您没有将磁盘作为一个整体进行克隆,请插入 Live CD/USB 并修复引导加载程序
  10. 从新安装启动并执行任何必要的剩余过渡步骤:
    • 您可能需要安装新的专有驱动程序(系统/管理/硬件驱动程序)。
    • 如果您通过网络管理器设置了静态 IP 地址,请为新机器设置网络。
    • 如果您运行ssh server,请运行dpkg-reconfigure openssh-server以生成新的主机密钥。


Jav*_*era 7

您的所有数据和设置都在您的家中进行。

如果你只复制它,你会失去:

  • 已安装的程序。但请参阅 Sabacon 对此问题的回答
  • 在家庭计算机中,系统范围的配置通常只是额外的 PPA。
  • 系统范围的程序(通常是守护进程)数据(如 MySQL 数据库)。

我觉得制作网络副本最简单的方法是这样的:

  • 安装OpenSSH 服务器 下载 Gwibber 在旧电脑中。
  • 确保两台计算机都连接到网络。
  • 在新计算机中打开 Nautilus(文件浏览器)。
  • 在“查看”菜单中,选中“显示隐藏文件”。
  • 按CTRL+L,在地址栏中输入 ssh://ip-of-old-computer/home/
  • 应该会要求您在旧计算机上输入用户名和密码。
  • 使用 GUI 复制您想要的所有内容。

在此处输入图片说明


emf*_*emf 5

保管箱。

这就是我将我的设置从一台机器备份到另一台机器的方式,如果我的硬盘完全丢失也没关系。

Dropbox 是一项在线备份/同步服务,它是一项重要的战利品,您可以免费获得。它在 ubuntu Karmic 和 Partner 存储库下可用。您正在寻找一个名为 nautilus-dropbox 的软件包。或者,您可以直接从以下站点下载:https : //www.dropbox.com/downloading?os=lnx

如上所述,您的大部分相关设置都保存在 /home/yourname/.whatever

例如 gnome 配置设置保存在

/home/username/.gnome2
Run Code Online (Sandbox Code Playgroud)

因此,要进行同步:

第 1 部分:将配置设置备份到 Dropbox。(这一切都在“旧”机器上,您可以在其中进行设置/配置。)

  1. 转到您的主目录,找到尽可能多的“点文件”和目录。几乎所有这些都将与个人配置设置相关。(在 Nautilus 中按 Control+H 查看隐藏文件。)
  2. 您需要将这些配置文件复制到您的 Dropbox 文件夹中。如果您害怕丢失它们,请进行备份。
  3. 从您的主目录中删除原始文件,然后创建从其新主目录中的文件(在您的保管箱文件夹下)到主目录的链接。您可以通过按住“Alt”键的同时将文件/文件夹拖放到您的主目录名称中,然后选择“创建链接”来执行此操作。

第二部分:(在新机器上。)从 Dropbox 同步的配置设置创建链接。

  1. 在您的“新”机器上,即。全新的 Ubuntu 安装,删除(并在必要时备份)您的旧主目录配置文件。在新机器上安装 dropbox。允许它同步,也就是下载您的旧机器设置。
  2. 在新机器上重复上述步骤 3 - 将链接从 Dropbox 同步文件夹复制到主目录。

瞧。您现在拥有基于 Internet 的设置备份和迁移。