我有一台运行 Ubuntu 10.04 的家庭服务器。我想更换主板和 CPU,但不必重新安装操作系统。很久以前我读到过,这种方法在 Windows XP 上也行得通,但稳定性有问题。不过,我预感在现代 Linux 上应该不会出现任何问题。
我对吗?
答案1
对于大多数现代 Linux 设置来说,这应该总体上是可以正常工作的。直到上周重建我的家庭服务器(从 Debian/Lenny 迁移到 Ubuntu/10.04 并安装一组闪亮的新驱动器以进行重建)之前,它处于第三个 CPU+主板组合,并且两个 CPU+主板开关工作正常。此外,当工作文件服务器不久前死机时,我们只是将驱动器移植到另一个完全不同的盒子中,除了我将要提到的网络设备编号问题外,一切都运行正常(检测到所有相关硬件,软件 RAID 阵列组装良好,等等)。
由于设备枚举的差异,可能需要进行一些重新配置工作。例如,主板的板载 LAN 控制器很可能会变成eth1
与以前的主板相同的eth0
控制器,在这种情况下,您需要进行一些更改,以相应地配置 eth1 和任何防火墙/路由规则,或者重新配置 udev 以从旧 NIC 中删除对 eth0 的保留,并将新 NIC 设置为该名称(为此要更改的文件似乎/etc/udev/rules.d/70-persistent-net.rules
在 Ubuntu 的默认安排下)。
驱动器的命名/编号可能存在类似的问题,特别是当您有多个驱动器时,但 Ubuntu 默认通过 UUID 识别分区,内核的 LVM 和 RAID 支持也通过 UUID 来识别其卷,所以在大多数情况下这应该不是问题。
我不会指望出现任何会导致完全停止启动的问题(您将运行一个相当新的 10.04 内核,因此不必担心新主板的硬件太新而导致内核无法正确识别),并且如果出现任何此类问题,它们可能可以在首次启动后或从 LiveCD 中通过一些小技巧修复,但无论如何我还是建议您对重要数据/配置进行全新备份,以防万一。
在上面,我假设您使用的是 Ubuntu 原版内核之一。如果您运行的是自定义内核+模块,则需要更加小心,因为您可能遗漏了新主板所需的东西,但旧主板没有遗漏,但如果您安装了自定义内核,那么您就会知道这里需要注意的相关事项!
Windows XP 或更高版本通常可以经受住主板切换(经过多次重启,也许还要访问一两次 SafeModeLand 来整理驱动程序),因为在这方面它不像 NT 时代那么挑剔,只要您使用标准的 Windows 驱动程序作为 I/O 控制器而不是主板特定的驱动程序,但它比 Linux 的安全性要差得多。CPU/主板技术的飞跃(从单核单 CPU 到 SMP 和/或多核)意味着需要不同的 HAL(或者只是不同的最佳 HAL),这将导致 Windows 无法启动或无法正确使用新硬件。
和任何操作系统,如果您使用当前主板的 RAID 控制器(这将是一个“假 RAID”安排)进行 RAID,而不是将其作为标准 PATA 和/或 SATA 控制器运行,那么一切都将不复存在,您很可能需要重新安装。正如 Bob 所建议的,从 64 位降级到 32 位也需要重新安装。而且对于任何操作系统,拥有第二台机器是一个有用的安全网,以防您需要上网获取修订的驱动程序或研究导致主机暂时停止运行的其他问题。
答案2
我同意 JNK 的观点……这在几乎所有 Windows 机器上都行不通。它们太挑剔了,你几乎马上就会遇到 BSOD。然而,Linux 更容易被原谅。我将我的硬盘移到了另一台机器上,并从它启动了一次(不久前!),kudzu 将所有东西都检测为新硬件并为其安装了驱动程序。我的系统运行良好,而且非常稳定。当然,在尝试任何类似的事情之前,你应该先备份,即使你的数据应该是安全的。
答案3
这应该可以很好地与 Ubuntu 配合使用。启动时会检测到所有硬件,并加载适当的“驱动程序”(内核模块)。当然,这是假设您没有做任何愚蠢的事情,例如将 32 位 CPU 放入运行 64 位 Ubuntu 的盒子中。
答案4
成功!不是突然发生的,但发生了以下事情:我换成了四核 AMD(主板坏了),不想完全重新加载我最近的 Ubuntu 内核。Linux 启动了,但只到达了启动画面而没有登录。在 GRUB 菜单上,我尝试了恢复/安全以及有限的图形模式选择,但 GRUB 终端仍然没有找到解决方案。在我要登录的启动画面上,虽然我什么都看不到,但我还是输入了我的用户名,然后按 Enter,然后输入密码,然后按 Enter,登录就开始了。接下来是普通的桌面背景,但没有图标或按钮 :(。按键 Cnt-Alt-T 没有弹出终端。**然后我尝试了 gnu 快捷键 Alt-F2 并暂停 2 秒,弹出了一个漂亮的命令提示符 :)。它说欢迎并建议升级,请输入 do-upgrade-我在 3 小时升级后做了这件事,一切正常。忽略错误。祝你好运。