如何从自定义Linux内核切换到分发内核

在业余时间,我帮助管理托管的Debian Linux服务器,该服务器为各种网站提供服务并为少数人托管电子邮件.它没有看到大量的流量,但当然我们想要正确地做事.然而,当我们第一次得到这个服务器时,有人为我们推出了一个自定义内核,这允许我们做我们想做的各种事情(比如LVM,RAID等).这是几年前的事情,当然还有各种各样的安全漏洞已经修复等等,我们宁愿只是在一个保持最新的库存内核上运行.

问题是我们没有列出我们在推送自定义内核时启用的功能列表,并且尝试使用新内核导致无法启动的内核.所以问题是 – 我们如何使用Debian内核库存,同时仍然能够拥有我们所依赖的所有功能?我需要先收集哪些信息,然后采取哪些措施才能实现?

解决方法

首先,您需要评估您的内核究竟需要做什么.这意味着建立一个列表:

>系统中的每个硬件
>硬件相关功能,如LVM和RAID
>网络功能,如路由,VPN,无线支持等.
>文件系统,尤其是根文件系统
>其他特殊的内核级需求

接下来,您应该尝试弄清楚当前内核如何处理它们,然后尝试将其转换为更新的内核.为此,您可以查看:

> lspci和dmesg的输出 – 这将帮助您编目硬件以及当前内核在引导时执行的操作
>加载了哪些模块 – 看看lsmod
>内核配置(如果可用) – 有时会在/proc/config.gz或/ boot中存在

一旦你了解了你的硬件,以及当前内核如何处理它,你就可以从Debian源代码中推出一个新的内核.专注于获得首先启动的内核.一旦您可以使用新内核进入shell,就可以采用增量方法来完成其余功能.根据需要重新编译,添加功能或驱动程序(可能作为加速此过程的模块),然后测试每个新内核.

关于RAID的最后一句话.您应该注意当前的RAID设置,如果它是软件RAID – 较新的内核和系统将使用mdadm来管理此类事物,而较旧的系统倾向于使用raidtab方法.您的方法将改变您在内核中处理RAID的方式,尤其是自动检测位.有关更多信息,请查看优秀的Software RAID Howto.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...