AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 25633
Accepted
Torben Gundtofte-Bruun
Torben Gundtofte-Bruun
Asked: 2011-02-11 05:07:06 +0800 CST2011-02-11 05:07:06 +0800 CST 2011-02-11 05:07:06 +0800 CST

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

  • 772

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

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

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

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

user-data
  • 10 10 个回答
  • 94775 Views

10 个回答

  • Voted
  1. Best Answer
    Lekensteyn
    2011-02-11T06:37:20+08:002011-02-11T06:37:20+08:00

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

    ...但有一些警告:

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

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

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

    在源计算机上,您需要安装传统的 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 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: e x在保留权限的同时压缩G Z ip-compressed tarball 。
    • -C/home: 解压your-username文件夹到/home/your-username
    • 或者,将-v开关添加到 tar 命令以进行详细提取,以便您了解进度。这可能会减慢复制过程,因为必须打印每个文件。

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

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

    • 54
  2. Little Jawa
    2010-07-30T06:40:56+08:002010-07-30T06:40:56+08:00

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

    • 21
  3. Marco Ceppi
    2010-07-30T06:42:29+08:002010-07-30T06:42:29+08:00

    应用程序的所有设置中的大多数都默认隐藏在您的主文件夹中。如果您按下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/

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

    • 14
  4. akshatj
    2010-08-04T04:54:29+08:002010-08-04T04:54:29+08:00

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

    • 13
  5. Gilles 'SO- stop being evil'
    2010-10-02T10:30:17+08:002010-10-02T10:30:17+08:00

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

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

    1. 将新机器的磁盘插入现有机器(反之亦然)。
    2. 从现有安装引导。
    3. 设置新磁盘:
      • 如果磁盘大小相同:启动分区工具(System / Administration / GParted, package gparted)并将整个旧磁盘复制到新磁盘。
        • 您应该为文件系统的副本提供新的唯一标识符,以避免以后在另一台机器上安装一台机器的磁盘时产生任何混淆。对于 ext2/ext3/ext4 文件系统,使用类似sudo tune2fs -U $(uuidgen) /dev/sdz1where sdzis the new disk and 1is the partition number 之类的命令。
        • 如果您为卷分配了名称,您可能需要分配不同的名称。
      • 否则,使用 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 服务器,请运行dpkg-reconfigure openssh-server以生成新的主机密钥。
    • 12
  6. Javier Rivera
    2011-02-11T06:50:18+08:002011-02-11T06:50:18+08:00

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

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

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

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

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

    在此处输入图像描述

    • 7
  7. emf
    2010-10-01T23:05:55+08:002010-10-01T23:05:55+08:00

    保管箱。

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

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

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

    例如 gnome 配置设置保存在

    /home/username/.gnome2
    

    因此,要进行同步:

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

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

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

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

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

    • 5
  8. Sabacon
    2010-11-09T07:20:01+08:002010-11-09T07:20:01+08:00

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

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

    https://launchpad.net/stipple

    • 2
  9. ivotron
    2014-11-20T14:34:27+08:002014-11-20T14:34:27+08:00

    Mackup可以将许多应用程序备份到云或版本控制。很容易扩展,例如ssh 插件是这样的

    • 0
  10. Mostafa Wael
    2022-04-26T03:27:55+08:002022-04-26T03:27:55+08:00

    这将恢复您的所有个性化设置。

    导出

    打开终端并输入

    cp ~/.config/dconf/user  ~/settings-backup
    

    这会将您的主目录中的用户设置复制到一个名为settings-backup.

    恢复

    移动settings-backup到你的新机器并打开一个终端并输入这个

    cp ~/settings-backup ~/.config/dconf/user
    

    这将恢复主题设置和窗口管理器设置。

    (注意,如果你删除一个主题,它不能恢复那个主题)

    注销并再次登录,以查看您复制的所有设置。

    • 0

相关问题

  • Zeitgeist 将其数据存储在哪里?

  • 远离网络时 LDAP 用户身份验证和 NFS 主目录共享会发生什么情况?

  • 应用程序通常在哪里存储数据?

  • 保持多个工作站同步

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve