我在 Dell Inc. Precision T3610/09M8Y8 上运行 Ubuntu 20.04.2 LTS,我的 Linux 版本是5.8.0-44-generic
.我已经成功编译和安装 Linuxnet-next
内核几个月了。但是,现在每当我安装使用 make olddefconfig 编译的内核时,都会收到以下错误:
Loading Linux 5.11.0+ ...
Loading initial ramdisk ...
error: out of memory.
启动进入安全模式会显示以下内容
0.602008] VFS: Cannot open root device ''UUID=311542e2-03db-45a0-aa79-991341cb3708'' or unknown-block(0,0); error -6
0.602840] Please append a correct, ''root='' boot option: here are the available partitions:
0.603646] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
0.604488] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.11.0+ #3
0.605314] Hardware name: Dell Inc. Precision T3610/09M8Y8, BIOS A07 04/29/2014
0.606155] Call Trace:
0.606837] dump_stack+0x7d/0x9c
0.606837] panic=0x101/0x2e3
0.606837] mount_block_root+0x299/0x31d
0.606837] mount_root+0x6a/0x6d
0.606837] prepare_namespace+0x13f/0x170
0.606837] kernel_init_freeable+0x23a/0x260
0.606837] ? rest_init+0xba/0xba
0.606837] kernel_init+0xe/0x116
0.606837] ret_from_fork+0x22/0x30
0.606837] Kernel Offset: 0x11c00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
0.606837] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ] ---
我查看了在 GRUB 中成功运行的其他内核,它们都set root='hd0,gpt2'
与我尝试启动但失败的内核相同。
我看过其他帖子,例如https://askubuntu.com/questions/41930/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block0-0/和不同步:VFS:无法在未知块(0,0)上安装根文件系统但这些都没有解决我的问题。解决方案涉及运行以下命令的某些变体:
dpkg --configure -a
update initramfs -u
我认为问题是机器找不到编译内核的 initramfs,因为当我5.11.0-051100-generic
使用 dpkg 从 .deb 安装内核时,一切正常。我还尝试从 5.11 内核复制 .config 文件,但没有成功。几周前我能够成功编译并运行内核,所以我不知道为什么现在每个编译的内核都失败了。
我该如何解决这个问题?有没有办法更新自定义内核的 initramfs (我正在尝试安装 linuxnet-next
分支,但也尝试过通用 linux5.11.0+
分支并收到相同的错误)?
答案1
我安装了 Ubuntu 版本 18.04.5 LTS 并且能够启动到已编译的内核。这似乎是我更新 Ubuntu 20.04.2 时出现的问题