カーネルイメージを/bootディレクトリに手動で移動する

カーネルイメージを/bootディレクトリに手動で移動する

私はGentooで自分のカーネルをコンパイルしました(下)手動)次にbzImage移動しました/boot/vmlinuz-4.0.5。しかし、システムを起動したときにGrub2シェルができました。私は何が間違っていましたか?

また、Grubシェルからシステムを起動しようとすると、次のエラーが発生します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/bootgrub2 shell/bootmake 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

おすすめ記事