我是 Ubuntu 新手,最近才开始在我的 PC 上使用它。我打算用一台新机器替换那台 PC。我想将我的数据和设置传输到上网本上。我应该考虑哪些方面?
显然我想转移我的数据。如果我仅复制整个主文件夹,我会遗漏什么东西?
这是一台家用电脑(不是公司电脑),因此用户权限和其他安全问题不是问题,只是文件应该可以在新机器上访问!
请注意,新机器是没有光驱的上网本,也不允许我将旧的 SATA 磁盘挂入其中,因此任何数据传输都必须通过家庭网络处理(我可以同时打开新旧机器并连接到家庭 LAN)并且我有一个容量有限(2GB)的 USB 拇指驱动器。
这听起来可能会限制普遍适用性,但实际上它会使它更多的一般的。
答案1
用户设置存储在主文件夹中。因此,如果您将设置复制/home/your-username
到新计算机,应该没问题...
...但有一些注意事项:
- 权限。通常将“程序”(shellscript、自定义构建程序)放在主文件夹中。要保留权限,请使用开关
--preserve=mode
(usingcp
) 或-p
(usingtar
) - UserID / GroupID。即使两个系统上的用户名相同,用户 ID 也不必相同。通常这不是问题,但如果您的脚本/程序/设置依赖于 UserID,则应确保目标系统上的用户 ID 和组 ID 相同。
您可以通过执行 来找到当前的 userID 和 groupIDid
。例如,要更改用户“your-username”的用户 ID,请运行sudo usermod --uid 1234 your-username
。要更改 groupID,您必须运行sudo groupmod --gid 1234 your-username
。
设置(Firefox 配置文件、外观等)通常存储在隐藏文件夹(或文件)中。隐藏文件夹/文件以点为前缀,如.mozilla
Firefox(和其他 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追踪 G是ip 压缩的 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 等),机器的硬件是否不同并不重要。
这是实现此方法的方法。虽然有点长,但技术含量不高。可以进行多种变化。
- 插头新机器的磁盘放入现有机器(或反之亦然)。
- 引导从现有安装中。
- 设置新磁盘:
- 如果磁盘大小相同:启动分区工具(系统/管理/GParted,包
gparted
)并将整个旧磁盘复制到新磁盘。- 您应该为文件系统的副本赋予新的唯一标识符,以避免以后将一台机器的磁盘安装到另一台机器时产生混淆。对于 ext2/ext3/ext4 文件系统,请使用类似新磁盘在
sudo tune2fs -U $(uuidgen) /dev/sdz1
哪里以及分区号在哪里的命令。sdz
1
- 如果您已为卷分配名称,则可能需要分配不同的名称。
- 您应该为文件系统的副本赋予新的唯一标识符,以避免以后将一台机器的磁盘安装到另一台机器时产生混淆。对于 ext2/ext3/ext4 文件系统,请使用类似新磁盘在
- 否则,使用 GParted 或系统/管理/磁盘实用程序在新磁盘上设置分区并格式化它们。如果两个磁盘上的分区大小相同,则可以在 GParted 中复制它们。
- 如果磁盘大小相同:启动分区工具(系统/管理/GParted,包
- 山新安装的根分区现在应该出现在“位置”中。
- (如果您已经复制了整个磁盘,请跳过此步骤。)复制旧安装的数据根分区到新的。请注意,在此步骤中保留权限和文件所有权至关重要,这意味着您必须以超级用户(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
- 如果你使用专有视频驱动程序(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
以生成新的主机密钥。