在业余时间,我帮助pipe理一个托pipeDebian Linux服务器,服务于各种网站,并为less数人提供电子邮件。 它没有看到大量的stream量,但我们当然想要做的事情正确。 然而,当我们第一次得到这个服务器的时候,有人为我们推出了一个自定义的内核,使我们可以做各种我们想做的事情(比如LVM,RAID等)。 现在几年前,当然还有各种各样的安全漏洞已经被修复等等,我们宁愿只从一个持续更新的股票核心中运行。
问题是我们没有我们在自定义内核上运行时启用的function列表,并且尝试使用一个新的function会导致无法启动的内核。 所以问题是 – 我们如何才能使用Debian的内核,同时仍然能够拥有我们所需要的所有function? 我需要先收集哪些信息,然后采取哪些措施才能实现?
首先,你需要评估你的内核需要做什么。 这意味着build立一个列表:
接下来,您应该尝试弄清楚当前内核如何处理它们,然后尝试将其转换为更新的内核。 为此,你可以看看:
lspci和dmesg的输出 – 这将帮助您编目硬件,以及当前内核在启动时的function lsmod /proc/config.gz或in /boot 一旦你了解了你的硬件,以及当前的内核如何处理它,你可以从Debian源码中推出一个新的内核。 专注于获得首先启动的内核。 一旦您可以使用新的内核进入shell,您可以采取增量方法处理其他function。 重新编译,根据需要添加function或驱动程序(也许作为加快这个过程的模块),然后testing每个新的内核。
关于RAID的最后一句话。 你应该小心你当前的RAID设置,如果它是软件RAID – 更新的内核和系统将使用mdadm来pipe理这种事情,而旧的系统倾向于使用raidtab方法。 你的方法会改变你处理RAID内核的方式,特别是自动检测位。 看看优秀的软件RAID如何获取更多信息。
如果构build自定义内核的人使用了debian的方式,那么他们可能会在目录/ boot下命名为config-2。 这将告诉你在构build内核时使用了哪些选项。
既然你不确定,我想我会先抓住一个Debian livecd ,看看livecd上的股票内核是否允许你启动访问你所有的硬件和磁盘。 如果你能从livecd中得到所有的东西,那么你只需要安装内核。
你提到你尝试了一个股票内核,它不会启动。 究竟是什么错误,也许如果你发布的消息,我们可能会提供更多的帮助。
你有/proc/config.gz或/ boot / config-XXX为你当前的内核?
如果你这样做,只是比较你的configuration和Debian之一。
对于它的价值,Debian的configuration几乎可以启用所有的function – 绝对是RAID,LVM等等。只要确保在安装Debian内核的时候initrd就已经被构build好了,因为大多数东西都是模块化的。
我还没有遇到任何需要长时间为Debian服务器构build自定义内核的情况,除非我想因为任何原因添加内核修补程序。
设置你的grub来引导你的自定义内核作为回退系统,以确保即使新内核启动失败,服务器也会恢复。
使用它,你可以安全地为你的硬件体系结构apt-get install linux-image ,最有可能的是linux-image-686或linux-image-amd64并尝试重新引导到内核。