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


52

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

显然,我想移动数据。如果仅复制整个主文件夹,我会缺少什么?

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

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

Answers:


43

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

...但是有一些警告:

  • 权限。通常将“程序”(shellscripts,自定义生成程序)放在主文件夹中。要保留权限,请使用--preserve=mode(使用cp)或-p(使用tar)开关
  • 用户ID /组ID。即使两个系统上的用户名相同,用户ID也不必相同。通常,这不是问题,但是如果您在UserID上中继脚本/程序/设置,则应确保目标系统上的用户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程序(aka瑞士军刀,而不是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”)
  • 使用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
  • 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键运行客户端命令。

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


1
绝对出色的概述!也感谢您对命令的详细说明。鉴于我只有一台监视器,因此我想将两台计算机彼此相邻设置,并使用某种VNC来访问旧计算机。我敢肯定,我可以迅速在Google上找到关于傻瓜的指南-但也许您可以推荐一个?
Torben Gundtofte-Bruun

除提供的应用程序与Kubuntu(Krdc)外,我没有使用其他VNC。如果不需要GUI(例如此复制过程),只需安装openssh-server即可运行,从而可以与计算机连接ssh your-username@192.168.1.2。对于远程GUI访问,我不使用VNC,因为它非常缓慢,即使在(无线)网络上也是如此。我建议使用X2go进行远程GUI控制(安装指南)。
Lekensteyn

源计算机告诉我:“这是来自netcat-openbsd软件包的nc。在netcat-traditional软件包中提供了另一个nc。用法:nc [-46DdhklnrStUuvzC] [-i间隔] [-P proxy_username] [-p source_port ] [-s source_ip_address] [-T ToS] [-w超时] [-X proxy_protocol] [-x proxy_address [:port]] [主机名] [port [s]]“,终端提示符再次可见,并且目标机器什么也没得到。难道我做错了什么?
丹尼尔(Daniel)

@Daniel:您唯一做错的就是发表您的问题作为评论。打开一个新问题并链接到该问题
Torben Gundtofte-Bruun 2012年

@Lekensteyn,您好,我收到许多“无法打开”和“无法mkdir:没有这样的文件或目录”的信息...尝试在VM(作为来宾)上执行此操作时是否同样适用?
乔治·卡萨诺斯

16

对于软件包,您应该阅读以下内容: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中...


newmachine$ sudo apt-get --show-upgraded dselect-upgrade给出了错误E: Command line option --show-upgrade is not understood
frepie '16

12

默认情况下,应用程序所有设置的大部分位于您的主文件夹中。如果按Ctrl+hNautilus,将看到这些文件夹。我发现最简单的方法是简单地将配置所需的文件夹重新同步。像这样:

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

您也可以-只是将整个主文件夹同步到新计算机上-但这可能会导致问题,具体取决于您的设置。




8

如果您希望在一台计算机上进行安装,则只需克隆它即可。只要机器运行相同的体系结构(32位或64位,即i386或amd64或...),机器是否具有不同的硬件都没有关系。

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

  1. 插上新机的磁盘到现有的机器(或反之亦然)。
  2. 从现有安装启动
  3. 设置新磁盘
    • 如果磁盘大小相同:启动分区工具(“系统” /“管理” /“ GParted”,“包” gparted),然后将整个旧磁盘复制到新磁盘上。
      • 您应该为文件系统的副本赋予新的唯一标识符,以免在以后将一台计算机的磁盘装入另一台计算机时造成任何混乱。对于ext2 / ext3 / ext4文件系统,请使用命令sudo tune2fs -U $(uuidgen) /dev/sdz1where sdz是新磁盘和1分区号。
      • 如果为卷分配了名称,则可能要分配其他名称。
    • 否则,请使用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如果存在的话,那么您的磁盘和网络接口重复使用相同的名称(sdaeth0在新机器上,...)。
    • 如果您使用专有的视频驱动程序(ATI或NVIDIA)和新机不应该使用相同的驱动程序,移动/media/disk9/etc/X11/xorg.conf/media/disk9/etc/X11/xorg.conf.old-machine,否则你可能无法启动到GUI在新机。
  8. 移动带有新安装的磁盘回其合法的计算机。
  9. 如果您没有克隆整个磁盘,请弹出实时CD / USB并修复 bootloader
  10. 从新安装启动并执行任何必要的剩余过渡步骤:
    • 您可能需要安装新的专有驱动程序(系统/管理/硬件驱动程序)。
    • 如果您有一个静态IP地址通过网络管理器设置了,请为新计算机设置网络。
    • 如果运行ssh服务器,请运行dpkg-reconfigure openssh-server以生成新的主机密钥。

您好,来自2013年:)您确定不同的硬件并不重要吗?即使我从某些中文笔记本电脑转移到Mac Air?
scythargon

@scythargon只要它是相同的CPU类型(两种情况下都是x86),就没有太大的区别,也许只是一些要安装的驱动程序和我提到的配置文件。与Windows不同,Linux将其硬件依赖性集中在几个易于识别的文件中。
吉尔(Gilles)'所以

1
您可以看看我写的这份(类似的)指南:positon.org/clone-a-linux-system-install-to-another-computer
Marc M

感谢您的总结。如果您可以添加/etc/udev/rules.d/70-persistent-net.rules由udev自动生成的文件删除,我会喜欢的,它可以用来确保新的网络设备不会获得与先前安装的名称相同的名称。
tvn 2014年

@tvn您实际上不需要删除该文件。这样可以防止重复使用相同的接口/磁盘名称,但这不一定是一件坏事。
吉尔斯(Gillles)“所以-别再作恶了”

6

您所有的数据和设置都可以在家中使用。

如果仅复制它,则将丢失:

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

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

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

在此处输入图片说明


4

投寄箱。

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

Dropbox是一项在线备份/同步服务,它具有很多优势,您可以免费获得。在ubuntu Karmic下和合作伙伴存储库下均可使用。您正在寻找一个名为nautilus-dropbox的软件包。或者,您可以只从以下站点下载它:https : //www.dropbox.com/downloading?os=lnx

如上所述,大多数相关设置都保存在 /home/yourname/.whatever

例如,gnome配置设置保存在

/home/username/.gnome2

因此,要做同步:

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

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

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

  1. 在您的“新”机器上,即 重新安装Ubuntu,重新安装(如果需要,然后备份)旧的主目录配置文件。在新计算机上安装保管箱。允许它同步,也就是下载您的旧机器设置。
  2. 在新计算机上重复上述步骤3-将链接从Dropbox同步的文件夹复制到主目录。

瞧 现在,您可以进行基于Internet的设置备份和迁移。


2

看一下Stipple,对我来说看起来很有趣:

“将已安装的应用程序,.config文件和其他设置的列表保存到沙发数据库。使用Ubuntu One将该数据库同步到其他计算机。此应用程序还可以帮助您在其他计算机上安装这些软件包和.config文件。”

https://launchpad.net/stipple


由于该服务已关闭,因此不再可以选择Ubuntu One。
Tomislav Nakic-Alfirevic,2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.