您尚未登录。

#1 2020-01-08 18:34:02

zjykzk
会员
注册时间: 2020-01-08
帖子: 6

kernel panic: failed to execute init (error -2)

升级grub和内核,分别到2.0.4和5.4.7, 系统无法启动.

开始提示

[Firmware Bug]: TSC_DEADLINE disabled due to Errata: please update microcode to version: 0x22 (or later)

安装intel-ucode,通过命令 mkinitcpio -P 重新生产initramfs.img,重启以后仍然出错:

显示如下的内容

Wechat-IMG410.jpg

设置内核参数init=/bin/sh,依然无效. 怎么debug init呢?

求助

最近编辑记录 zjykzk (2020-01-08 19:01:14)

离线

#2 2020-01-08 21:03:21

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: kernel panic: failed to execute init (error -2)

和 intel-ucode 没关系。你的 initramfs 是不是生成得有问题?

离线

#3 2020-01-09 08:01:21

yw662
大会员
所在地: localhost
注册时间: 2018-10-10
帖子: 424

Re: kernel panic: failed to execute init (error -2)

可以看一下引导参数吗


ecmascript是世界上最好的语言

离线

#4 2020-01-09 09:49:58

zjykzk
会员
注册时间: 2020-01-08
帖子: 6

Re: kernel panic: failed to execute init (error -2)

yw662 说:

可以看一下引导参数吗

以下是主要的grub参数,感谢

menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4c893a16-780a-4ef2-92be-88ce2bc2fb75' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd1,msdos2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos2' --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2  4c893a16-780a-4ef2-92be-88ce2bc2fb75
        else
          search --no-floppy --fs-uuid --set=root 4c893a16-780a-4ef2-92be-88ce2bc2fb75
        fi
        echo    'Loading Linux linux ...'
        linux   /boot/vmlinuz-linux root=UUID=4c893a16-780a-4ef2-92be-88ce2bc2fb75 rw  loglevel=3 quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-4c893a16-780a-4ef2-92be-88ce2bc2fb75' {
        menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-4c893a16-780a-4ef2-92be-88ce2bc2fb75' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod ext2
                set root='hd1,msdos2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos2' --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2  4c893a16-780a-4ef2-92be-88ce2bc2fb75
                else
                  search --no-floppy --fs-uuid --set=root 4c893a16-780a-4ef2-92be-88ce2bc2fb75
                fi
                echo    'Loading Linux linux ...'
                linux   /boot/vmlinuz-linux root=UUID=4c893a16-780a-4ef2-92be-88ce2bc2fb75 rw  loglevel=3 quiet
                echo    'Loading initial ramdisk ...'
                initrd  /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-linux.img
        }
        menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-4c893a16-780a-4ef2-92be-88ce2bc2fb75' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod ext2
                set root='hd1,msdos2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos2' --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2  4c893a16-780a-4ef2-92be-88ce2bc2fb75
                else
                  search --no-floppy --fs-uuid --set=root 4c893a16-780a-4ef2-92be-88ce2bc2fb75
                fi
                echo    'Loading Linux linux ...'
                linux   /boot/vmlinuz-linux root=UUID=4c893a16-780a-4ef2-92be-88ce2bc2fb75 rw  loglevel=3 quiet
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initramfs-linux-fallback.img
        }
}

离线

#5 2020-01-09 09:53:28

zjykzk
会员
注册时间: 2020-01-08
帖子: 6

Re: kernel panic: failed to execute init (error -2)

依云 说:

和 intel-ucode 没关系。你的 initramfs 是不是生成得有问题?

我是通过命令

mkinitcpio -P

生成的

执行下列命令,

# mkdir /tmp/foo
# cd /tmp/foo
# zcat /boot/initramfs-linux.img  | cpio -i
# chroot . /bin/sh

输出找不到/bin/sh的错误,不过这个是不是正常情况呢?

因为,initramfs里面没有动态链接库的

感谢!

离线

#6 2020-01-09 13:56:05

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: kernel panic: failed to execute init (error -2)

呃,你怎么把 Intel 和 AMD 的微码都用上了?应该只用一个的。

initramfs 里没有 /bin/sh 和动态链接库是有问题的。你看看它里边都有哪些文件呢?你看我的有这么多文件呢: https://cfp.vim-cn.com/cbf7f/text

离线

#7 2020-01-09 16:37:21

zjykzk
会员
注册时间: 2020-01-08
帖子: 6

Re: kernel panic: failed to execute init (error -2)

依云 说:

呃,你怎么把 Intel 和 AMD 的微码都用上了?应该只用一个的。

initramfs 里没有 /bin/sh 和动态链接库是有问题的。你看看它里边都有哪些文件呢?你看我的有这么多文件呢: https://cfp.vim-cn.com/cbf7f/text


我生成的是这样的 https://cfp.vim-cn.com/cbf7g/text

怎么差那么多,我执行的命令是

mkinitcpio -P

离线

#8 2020-01-09 16:41:46

zjykzk
会员
注册时间: 2020-01-08
帖子: 6

Re: kernel panic: failed to execute init (error -2)

依云 说:

呃,你怎么把 Intel 和 AMD 的微码都用上了?应该只用一个的。

initramfs 里没有 /bin/sh 和动态链接库是有问题的。你看看它里边都有哪些文件呢?你看我的有这么多文件呢: https://cfp.vim-cn.com/cbf7f/text

方便看看你的mkinitcpio的配置文件吗

离线

#9 2020-01-09 17:14:01

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: kernel panic: failed to execute init (error -2)

看起来你就是缺少了 /usr/lib 下的 so 文件们,导致可执行文件一个也跑不起来。
我也不知道为什么会缺它们,你可能需要追踪 mkinitcpio 的执行过程来确定问题所在。
我的 mkinitcpio.conf 很简单啊: https://cfp.vim-cn.com/cbf7h/conf

离线

#10 2020-01-10 05:08:15

yw662
大会员
所在地: localhost
注册时间: 2018-10-10
帖子: 424

Re: kernel panic: failed to execute init (error -2)

我重新看了一下报错,这个好像的确不是找不到的报错,而是找到了但是不能运行的报错


ecmascript是世界上最好的语言

离线

#11 2020-01-10 05:09:22

yw662
大会员
所在地: localhost
注册时间: 2018-10-10
帖子: 424

Re: kernel panic: failed to execute init (error -2)

反正问题就是你的initcpio东西不全……虽然说为什么不全就很奇怪了


ecmascript是世界上最好的语言

离线

#12 2020-01-10 08:26:46

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: kernel panic: failed to execute init (error -2)

微码更新肯定只用一个,你哪个CPU用哪个
mkinitcpio -p linux 请使用这个命令生成,如果你使用linux内核包。你可能改了什么由软件包提供的preset吧


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#13 2020-01-14 11:19:29

zjykzk
会员
注册时间: 2020-01-08
帖子: 6

Re: kernel panic: failed to execute init (error -2)

把需要的文件一个一个在mkinitcpio.conf的FILES配置上去搞定了

感谢大家

离线

页脚