我在 Gentoo 上编译了自己的内核(如下手册)然后我将其bzImage
移至/boot/vmlinuz-4.0.5
.但是当我启动系统时,我得到了 Grub2 shell。我究竟做错了什么?
另外,当我尝试从 Grub shell 引导系统时,出现以下错误:kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0, 0)
。我还在该硬盘上安装了 Windows 10。
最初,/boot
它是一个 2MB 的单独分区,但我发现我不需要这样做,并且我删除了对该分区的任何引用(基本上,我删除了有关 的/etc/fstab
行)。鉴于我重新启动系统后,我得到了.我从 Ubuntu Live CD 启动并构建了内核,之后我手动将内核移动到.我手动完成它,因为(它应该处理这项工作)会将其复制到错误的位置。fstab
/boot
grub2 shell
/boot
make install
这些是我用来从 Ubuntu Live CD 构建内核的命令:
ubuntu@ubuntu:/media/ubuntu/a243b31a-80dd-4a49-8de2-f4417816981d/usr/src/linux$ make menuconfig
ubuntu@ubuntu:/media/ubuntu/a243b31a-80dd-4a49-8de2-f4417816981d/usr/src/linux$ make && make modules_install
ubuntu@ubuntu:/media/ubuntu/a243b31a-80dd-4a49-8de2-f4417816981d/usr/src/linux$ cp arch/bzImage ../../../boot/vmlinuz-4.0.5
然后我重新启动。
答案1
bzImage
早些时候,当我手动将文件复制到 时,我遇到了同样的错误/boot
。然而跑步make install
为我解决了这个问题。make install
生成initramfs
图像。该initramfs
文件名为
initramfs-4.12.0-rc3+.img
在我的系统上
拥有vmlinuz
和initramfs
文件后,您需要运行grub2-mkconfig
命令
grub2-mkconfig -o /boot/grub2/grub.cfg
它会自动生成grub.cfg
文件并将内核与initramfs
文件关联起来,如下所示
--class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.12.0-rc3+-advanced-1cd90ed5-08a6-4ca3-8b96-65b5a30382ae' {
load_video
insmod gzio
insmod part_msdos
insmod xfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' f33e4ffc-4d5b-44be-aedd-7aacc6241ed9
else
search --no-floppy --fs-uuid --set=root f33e4ffc-4d5b-44be-aedd-7aacc6241ed9
fi
linux16 /vmlinuz-4.12.0-rc3+ root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=en_US.UTF-8
initrd16 /initramfs-4.12.0-rc3+.img