我想将Ubuntu桌面的配置迁移到具有不同硬件的新盒子。最简单的方法是什么?/ etc /包含机器和硬件的特定设置,因此我不能盲目地复制它。安装的软件包存在类似的问题。
编辑:这是从x86到x86-64的移动。
我想将Ubuntu桌面的配置迁移到具有不同硬件的新盒子。最简单的方法是什么?/ etc /包含机器和硬件的特定设置,因此我不能盲目地复制它。安装的软件包存在类似的问题。
编辑:这是从x86到x86-64的移动。
Answers:
首先,如果您要继续运行32位二进制文件,那么您实际上并没有在更改处理器体系结构:即使x86处理器也能够执行其他操作,您仍将在运行它。在这种情况下,我建议克隆安装或仅移动硬盘,如将linux安装移动到新计算机中所述。
另一方面,如果要使用64位系统(用Ubuntu术语:amd64
体系结构),则需要重新安装,因为不能amd64
在i386
系统上安装软件包,反之亦然。(这将在Multiarch出现时改变)。
许多自定义项位于您的主目录中,您可以将其复制到新计算机上。由于处理器体系结构的变化,无法轻松复制系统设置。
在Ubuntu 10.10及更高版本上,尝试使用OneConf。
OneConf是一种用于在Ubuntu One中记录软件信息并根据需要与其他计算机同步的机制。在Maverick中,存储已安装软件的列表。最终可能会扩展为包括一些应用程序设置和应用程序状态。其他工具,如点画可以提供更高级的设置/控制。
您希望在新安装中复制的主要内容之一是已安装的软件包集。在基于APT的发行版上,可以使用aptitude-create-state-bundle
命令(aptitude
软件包的一部分)在新计算机上创建一个包含已安装软件包及其debconf配置列表的归档文件aptitude-run-state-bundle
。(感谢直觉告诉我有关的信息aptitude-create-state-bundle
。)另请参见Ubuntu列表中明确安装的软件包以及此处引用的Super User和Ask Ubuntu问题,特别是 Telemachus的答案,有关如何手动执行此部分。
对于您已经改变的事情 /etc
,您需要对其进行检查。许多问题与特定的硬件或网络设置有关,因此不应复制。其他设置与个人首选项有关-但是您应该尽可能按用户设置个人首选项,以便将设置保存在主目录中。
如果事先计划,则可以使用etckeeper 进行/etc
版本控制(etckeeper quickstart)。您无需了解任何有关使用etckeeper的版本控制的知识,只要您想利用它来做一些奇特的事情,就只需开始学习。
/home
,/etc
,/var
,/usr
和所有的),只是编辑的几个文件etc
是需要编辑。如果要切换到其他体系结构,这不是一个选择,因为您需要重新安装所有二进制软件包。
/etc
使用有意义的提交消息分别提交每个更改(而不是依赖于自动提交挂钩),并在与系统管理员首选项或站点范围的配置不同的分支上提交计算机特定的更改。但是,即使是基本用法也可以帮助您跟踪对所做的更改/etc
,以便可以将其复制到新计算机上。
aptitude-create-state-bundle
?
aptitude-create-state-bundle
。谢谢,这是一种重现APT管理状态的自动方法(比不重现APT源或debconf设置的手动方法更好)。您可能要一个答案添加了 相关的 问题为好。
除了手动配置的内容,以下是获取所有内容的方法:
dpkg --get-selections > packages.txt
debconf-get-selections > debconf.txt
对于与拱有关的任何内容(例如linux-image),都需要根据需要编辑这些文件,但是我认为不会太多。
将这些文件复制到新系统,然后运行:
debconf-set-selections < debconf.txt
dpkg --set-selections < packages.txt
apt-get dselect-upgrade
您还需要将/ home和任何其他数据目录复制(最好使用rsync)到新系统。
剩下的只有主要软件包的配置文件(例如apache,bind,cronjobs等)。
aptitude search '~i !~M'
以节省手动安装的软件包列表; 有关更多信息,请参见此答案。
如果您使用的是将所有驱动程序作为模块的通用内核,那么在Linux上,关于驱动程序,注册表以及对主板更改敏感的许多Windows伏都教并不是那么严重,这是Ubuntu的常见情况。这些是/ etc中唯一依赖于我所知道的硬件的东西:
如果GPU是相同的,驱动器控制器是相同的类型,并且您没有一堆依赖于网络接口名称的自制脚本,那么我认为不会出现重大问题。
/etc/default/grub
以的值存储在中GRUB_CMDLINE_LINUX_DEFAULT
)应添加到此列表中。