我下载、配置并安装了从 kernel.org 下载的内核。第一次启动这个新内核时,此错误屏幕显示可能指向丢失或错误提及的根设备。但我没有明确提及,安装脚本做到了。因此,如果这是错误,有人可以告诉我如何修复吗?
或者如果原因可能是其他原因,请告诉它可能是什么?
注意:我使用 VirtualBox 来完成所有这个过程。不希望我的笔记本电脑在这个实验中变得无法启动。
笔记:
- Grub 条目很好,因为它对于在此系统上运行的另一个内核是相同的,并且其他内核工作正常。
- DEVTMPS 只是创建一个警告,我认为程序员只关心错误,而不是警告,所以希望这也不是主要原因。
- TSC 给出了一个错误,我调查了一下,它可能是一个时钟模式,与根设备没有什么关系。
- 同样,UUID 不是问题,因为其他工作内核 grub 条目正在使用相同的 ID 并正确启动。
答案1
您缺少访问根文件系统所需的驱动程序之一。 initramfs 中的代码正在寻找要挂载的块设备,但失败了,因此问题出在访问该设备上。您不会收到更明确的消息,因为 initramfs 中的代码只能看到它有权访问的内容,而问题是它无权访问所需的根设备。
您可以make localmodconfig
在内核源目录中运行来配置内核,包括当前正在使用的所有驱动程序。更好的是,使用您的发行版的内核(不这样做的唯一常见原因是您的硬件太新而无法支持),或者至少使用您的发行版的内核配置。由于您使用的是 Ubuntu,请注意您可以找到更新的预编译内核如果你需要它们。
如果您确实想配置自己的内核,这里有一个清单,列出了您需要包含哪些内容才能启动。请注意,我只列出了常见要求,这并不是详尽的列表。
SCSI
,BLK_DEV_SD
(→scsi_mod
,sd_mod
) 对于大多数硬盘和类似设备(具有 SCSI 或类似 SCSI 的命令集,包括 ATA);- 硬盘控制器的右侧
ATA_xxx
、PATA_xxx
、SATA_xxx
或SCSI_xxx
其他(例如ata_generic
,libata
和对于 Intel PC 芯片组上的 AHCI 控制器);ahci
MD
,BLK_DEV_MD
以及正确的 RAID 模式(→md_mod
和例如raid1
)(如果适用);MD
,BLK_DEV_DM
(→md_mod
,dm_mod
) 对于 LVM;MD
、BLK_DEV_DM
、DM_CRYPT
以及 dm-crypt 所需的加密算法(→md_mod
、dm_mod
、dm_crypt
例如aes_generic
、sha256_generic
以及cbc
更多);EXT4_FS
(→ext4
) 或其他文件系统。
这些可以内置到内核中或编译为模块。如果您编译为模块,请不要忘记将模块包含在 initramfs 中。如果你使用Ubuntu 的内核构建基础设施,当您安装内核包时,一切都会自动完成。
答案2
找到了!!!这是我的硬盘控制器的驱动程序,编译前配置内核时没有添加SATA AHCI。现在我添加、重新编译和中提琴!新安装的内核启动。 :)