Answers:
/etc
在64位软件包编译的配置要求之间存在细微差别的情况下,我不只是复制,还可以进行复制,然后diff
将复制的副本与新安装的64位系统配合使用,但是系统可以使用。更改的数量可能并不大,因此手动执行所需的更改并不会造成很大的困难。
但是/etc
,按照您的建议进行复制应该可以正常工作-为了避免出现偏执,我只会做更长的时间。/home
从一个安装迁移到另一个安装时,主要要关注的复制领域是完全安全。
如果您只是想转移到64位以使用更多的RAM,而不是因为您特别需要使用64位应用程序,则可以只使用具有32位用户空间的64位内核。Debian实际上在其i386存储库中提供了a64内核软件包,因此可以像一样简单地完成操作aptitude install linux-image-2.6-amd64
,但是不幸的是Ubuntu不能这样做,因此您必须编译自己的内核,如果您不这样做,可能不值得花时间+麻烦。具有技术经验(即,这很简单,但仅(如果您之前已经编译了自己的内核,那么请熟悉该过程)。如果您确实使用32位用户域运行64位内核,那么单个应用最多仍只能访问〜3Gb(在某些情况下仅为〜2Gb),但整个系统(所有进程加在一起,再加上内核的东西,例如IO缓存和缓冲区)可以使用尽可能多的内容。为此,每个VMWare VM都算作一个应用程序-我以这种方式运行一台较旧的VM主机(这些VM总共使用约7Gb的内存以及64位内核,32位用户域和32位VMWare)。我将机器的CPU升级到具有64位功能的CPU并添加了额外的RAM,而不是完整的64位主机OS升级-我想类似的VM解决方案也将以相同的方式工作。
我上个月将计算机从32bit 10.10重新安装到64bit 10.10,而没有丢失任何数据。唯一的技巧是在重新安装64位ubuntu 10.10时选择磁盘大小调整工具,而不是格式化整个磁盘。
一旦涉及系统设施,在64位内核上运行32位用户区可能会引起问题。例如,在64位内核上使用32位libalsa几乎可以工作,但是非常不可靠且不稳定,因为用64位和32位体系结构编译时,在asound.h中定义的ioctl数据结构具有不同的大小和排列。
因此,在64位内核上调用32位实用程序时,使用jackd -d alsa -X alsaraw(或其等效的jackd2)将因失败的断言而中止。由于缓冲区计数被错误地解释,因此标准音频操作的可靠性将大大降低。
通常,任何内核数据结构都必须以在32位和64位内核之间大小不变的方式声明,或者32位代码必须聪明地使用与内核体系结构相对应的不同结构定义。
因此,总的来说,您最好从头开始重新安装并转移主分区/目录。
etckeeper
在旧系统和新系统上使用,并在旧系统上安装了所有其他软件包(dselect
和dpkg -l
)之后,将与dist config文件相比的更改合并到新系统中;)...