ubuntu 中的内核编译,重新启动消息“放弃等待根设备”

ubuntu 中的内核编译,重新启动消息“放弃等待根设备”

我试图从源文件(即 3.19.3 内核版本)编译 Linux 内核,我运行了以下命令进行编译

首先我提取

tar -xvf linux-3.19.3.tar.xz

更改到其目录

cd linux-3.19.9

sudo make menuconfig

没有改变任何东西

sudo make -j4
sudo make install-modules install

我按照给出的指示进行操作这里

重新启动后,它会给出以下消息并丢弃到 initrafms

放弃等待 root 设备。常见问题:

  • 启动参数 (cat /proc/cmdline)
    • 检查rootdelay=(系统等待的时间是否足够长?)
    • 检查root=(系统是否等待正确的设备?)
  • 缺少模块(cat /proc/modules;ls /dev)警告! /dev/disk/by-uuid/50ec5956-06a0-41b1-9315-0a68fd15270a 不存在。

掉壳了!

忙碌盒...

我得到这个屏幕。我应该怎么办?我应该如何编译内核以避免这种错误

答案1

内核编译完成后,必须执行命令depmod -a刷新目录中的模块顺序/lib/modules/<kernel_version>

答案2

我认为您在运行 make 命令之前已更改为 linux-3.19.3 目录。而且看起来这个版本的内核在你编译和安装之前就已经运行了。

尝试使用 grub 启动到较旧的内核(使用救援的相同内核可能无法工作)。

在 Ubuntu 系统上使用普通源代码对我来说从来都不起作用。它可能有效,但我建议您从 Ubuntu 内核的源代码开始:

sudo apt-get source linux-image-3.19.3 
sudo apt-get build-dep linux-image-3.19.3

并将其重建并安装为软件包,以使内核与安装的其余部分更加兼容。

更改为已安装源代码树的根目录并执行以下操作:

fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic

这将为您提供一个可以安装的 debian 软件包dpkg

详情可查这里

相关内容