如何将用户设置和数据迁移到新机器?
我是Ubuntu的新手,最近开始在我的电脑上使用它。 我打算用新机器更换那台PC。 我想将我的数据和设置传输到nettop。 我应该考虑哪些方面?
显然我想要移动我的数据。 如果我只复制整个主文件夹,我会丢失什么?
这是家用电脑(不是公司),因此用户权利和其他安全问题不是问题,除了文件应该可以在新机器上访问!
请注意新机器是没有光驱的nettop,不允许我将旧的SATA磁盘挂入其中,因此任何数据传输都必须通过家庭网络处理(我可以同时使用旧的和新的机器打开并连接到家庭局域网)我有一个容量有限(2GB)的USB拇指驱动器。
这听起来可能会限制一般适用性,但事实上它会使它更加通用。
用户设置按设计存储在Home文件夹中。 所以,如果你将/home/your-username
复制到你的新电脑上,你应该没事……
……但有一些警告:
- 权限。 通常将“程序”(shellcripts,自定义构建程序)放在主文件夹中。 要保留权限,请使用
--preserve=mode
开关(使用cp
)或-p
(使用tar
) - UserID / GroupID。 即使两个系统上的用户名相同,用户ID也不必。 通常,这不是问题,但如果您在UserID上进行脚本/程序/设置中继,则应确保目标系统上的用户ID和组ID应该相同。
您可以通过执行id
找到当前的userID和groupID。 例如,要更改用户“your-username”的userID,请运行sudo usermod --uid 1234 your-username
。 要更改sudo groupmod --gid 1234 your-username
,您必须运行sudo groupmod --gid 1234 your-username
。
设置(Firefox配置文件,外观,…)通常存储在隐藏文件夹(或文件)中。 隐藏的文件夹/文件以点为前缀,例如Firefox(和其他Mozilla应用程序)的.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”) - 使用G Z ip算法压缩tarball以降低文件大小。
-
-C/home $(whoami)
将工作目录更改为/home
并放入您的用户名文件夹。 或者,您可以在tarball中键入youryour-username
文件夹 -
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在保留权限的同时xzp
G Z ip压缩的tarball。 -
-C/home
:将your-username
文件夹解压缩到/home/your-username
- (可选)将
-v
开关添加到tar命令以进行详细提取,以便了解进度。 这可能会减慢复制过程,因为每个文件都必须打印。
现在转到源计算机,按Enter键运行服务器命令。 快速切换到您的nettop并按Enter键以运行客户端命令。
如果您有任何疑问,请使用下面的评论字段。
对于软件包,您应阅读以下内容: 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 ...
默认情况下,应用程序的大多数设置都隐藏在您的主文件夹中。 如果你在Nautilus中按Ctrl+h
,你会看到这些文件夹。 我发现最简单的方法是简单地同步配置所需的文件夹。 像这样的东西:
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到新计算机 – 但这可能会导致问题,具体取决于您的设置。
Ubuntu开发人员正在研究它,它被称为OneConf 。
如果您在一台计算机上安装了自己喜欢的设备,则只需克隆它即可。 只要它们运行相同的架构(32位或64位,即i386或amd64或……),机器是否具有不同的硬件并不重要。
这是一种方法。 它有点长,但相当低技术。 许多变化都是可能的。
- 将新机器的磁盘插入现有机器(反之亦然)。
- 从现有安装启动 。
- 设置新磁盘 :
- 如果磁盘大小相同:启动分区工具(System / Administration / GParted,package
gparted
)并将整个旧磁盘复制到新磁盘。- 您应该为文件系统的副本提供新的唯一标识符,以避免在以后将其中一台计算机的磁盘安装到另一台计算机上时造成混淆。 对于ext2 / ext3 / ext4文件系统,使用
sudo tune2fs -U $(uuidgen) /dev/sdz1
,其中sudo tune2fs -U $(uuidgen) /dev/sdz1
是新磁盘,1
是分区号。 - 如果为卷指定了名称,则可能需要指定不同的名称。
- 您应该为文件系统的副本提供新的唯一标识符,以避免在以后将其中一台计算机的磁盘安装到另一台计算机上时造成混淆。 对于ext2 / ext3 / ext4文件系统,使用
- 否则,使用GParted或System / Administration / Disk Utility在新磁盘上设置分区并格式化它们。 如果两个磁盘上的分区大小相同,则可以在GParted中复制它们。
- 如果磁盘大小相同:启动分区工具(System / Administration / GParted,package
- 挂载新安装的根分区,该分区现在应显示在“位置”中。
- (如果已复制整个磁盘,请跳过此步骤。) 将数据从旧安装的根分区 复制到新分区 。 请注意,在此步骤中保留权限和文件所有权至关重要,这意味着您必须以超级用户(root)身份执行此操作。 我不知道Ubuntu GUI的做法是什么。 在命令行上,运行
sudo cp -ax / /media/disk9
(将/media/disk9
替换为安装新根分区的位置)。 - 对于您可能拥有的任何其他分区 (例如,单独的主分区),重复前两个步骤,除非您在步骤3中将该分区(或磁盘)作为一个整体复制。
- 调整新安装(假设它安装在
/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
,…)。 - 如果您使用专有video驱动程序 (ATI或Nvidia)并且新计算机不应使用相同的驱动程序,请将
/media/disk9/etc/X11/xorg.conf
移至/media/disk9/etc/X11/xorg.conf.old-machine
,否则你可能无法启动到新机器的GUI。
- 编辑
- 将具有新安装的磁盘移回其正确的计算机。
- 如果您没有整体克隆磁盘,请弹出实时CD / USB并修复引导加载程序 。
- 从新安装启动并执行任何必要的剩余转换步骤:
- 您可能需要安装新的专有驱动程序 (系统/管理/硬件驱动程序)。
- 如果您通过网络管理器设置了静态IP地址 ,请为新计算机设置网络连接。
- 如果运行ssh服务器 ,请运行
dpkg-reconfigure openssh-server
以生成新的主机密钥。
您的所有数据和设置都在您的家中。
如果你只复制它,你将失去:
- 已安装的程序。 但是看到Sabacon回答这个问题 。
- 系统范围的配置,在家用计算机中,这通常只是额外的PPA。
- 系统范围的程序(通常是守护程序)数据(如MySQL数据库)。
我觉得制作网络副本最简单的方法是这样的:
- 安装OpenSSH Server 在旧电脑里。
- 确保两台计算机都连接到网络。
- 在新计算机中打开Nautilus(文件浏览器)。
- 在“视图”菜单中,选中“显示隐藏文件”。
- 按CTRL + L,在地址栏中键入
ssh://ip-of-old-computer/home/
- 应该在旧计算机上询问您的用户名和密码。
- 使用GUI复制所需的所有内容。
Dropbox的。
这就是我将设置从一台机器备份到另一台机器的方式,如果我完全丢失了我的硬盘,那也没关系。
Dropbox是一个在线备份/同步服务,它可以提供主要的战利品,你可以免费获得它。 它可以在ubuntu Karmic下获得,也可以在合作伙伴存储库下获得。 您正在寻找一个名为nautilus-dropbox的软件包。 或者,您可以从以下网站下载: https : //www.dropbox.com/downloading?os = lnx
如上所述,大多数相关设置都保存在/home/yourname/.whatever
例如,gnome配置设置保存在
/home/username/.gnome2
所以,要做同步:
第一部分:将配置设置备份到Dropbox。 (这都在“旧”机器上,您可以根据需要设置/配置。)
- 转到您的主目录,找到尽可能多的“dotfiles”和目录。 几乎所有这些都与个人配置设置相关。(在Nautilus中点击Control + H来查看隐藏文件。)
- 您将要将这些配置文件文件复制到Dropbox文件夹。 如果您没有失去他们,请备份。
- 从主目录中删除原始文件,然后从其新主页(在您的保管箱文件夹下)中的文件创建一个链接到主目录。 您可以通过将文件/文件夹拖放到主目录名称,同时按住“Alt”键,然后选择“创建链接”来完成此操作。
第二部分:(在新机器上。)从Dropbox同步配置设置创建链接。
- 在你的“新”机器上,即。 新鲜的Ubuntu安装,删除( 如果必要则备份)您的旧主目录配置文件。 在新计算机上安装Dropbox。 允许它同步,AKA下载您的旧机器设置。
- 在新计算机上重复上面的步骤3 – 将Dropbox同步文件夹中的链接复制到主目录。
瞧。 您现在拥有基于Internet的设置备份和迁移。
看看Stipple,看起来对我来说很有趣:
“将已安装的应用程序,.config文件和其他设置的列表保存到couchDB。将此数据库与使用Ubuntu One的其他计算机同步。此应用程序还可以帮助您在其他计算机上安装这些软件包和.config文件。”
Mackup可以将许多应用备份到云或版本控制。 例如,这很容易扩展,这就是ssh插件的样子