将 Squeeze 升级到 Wheezy 后,我的服务器将不再启动。我只能通过选择以前的内核(2.6.32)来启动。
linux:~# find /lib/modules/3.2.0-4-amd64/ -maxdepth 2
/lib/modules/3.2.0-4-amd64/
/lib/modules/3.2.0-4-amd64/modules.order
/lib/modules/3.2.0-4-amd64/modules.builtin
/lib/modules/3.2.0-4-amd64/kernel
/lib/modules/3.2.0-4-amd64/kernel/sound
/lib/modules/3.2.0-4-amd64/kernel/net
/lib/modules/3.2.0-4-amd64/kernel/mm
/lib/modules/3.2.0-4-amd64/kernel/lib
/lib/modules/3.2.0-4-amd64/kernel/fs
/lib/modules/3.2.0-4-amd64/kernel/drivers
/lib/modules/3.2.0-4-amd64/kernel/crypto
/lib/modules/3.2.0-4-amd64/kernel/arch
linux:~# uname -rms
Linux 2.6.32-5-amd64 x86_64
linux:~# dpkg -l "linux-image*" | grep ^ii
ii linux-image-2.6.32-5-amd64 2.6.32-48squeeze6 amd64 Linux 2.6.32 for 64-bit PCs
ii linux-image-3.2.0-4-amd64 3.2.68-1+deb7u6 amd64 Linux 3.2 for 64-bit PCs
ii linux-image-amd64 3.2+46 amd64 Linux for 64-bit PCs (meta-package)
因此,尽管安装有效,但看来 module.dep 并未被创建。我尝试过 depmod -a,我尝试过在内核上安装 apt-get install --reinstall ,但没有解决这个问题。
答案1
当您运行 depmod 时,它仅计算依赖项并为正在运行的内核创建 module.dep 作为默认行为除非您提供备用内核版本作为参数。
在您的情况下,由于您使用版本 2.6.32-5-amd64 启动,因此您需要运行:
$sudo depmod -a 3.2.0-4-amd64
为了让它创建文件 /lib/modules/3.2.0-4-amd64/modules.dep
从 :http://www.computerhope.com/unix/depmod.htm
depmod 生成内核模块依赖项和关联映射文件的列表。
depmod [-b basedir] [-e] [-E Module.symvers] [-F System.map] [-n] [-v] [-A] [-P 前缀] [-w] [版本]