zoukankan      html  css  js  c++  java
  • Linux内核升级导致无法启动,Kernel panic

    问题原因:内核的某次升级,导致系统无法启动。

    首先进入recovery模式:引导界面选择-->Ubuntu高级-->出现的选项中选择能够启动的recovery模式(几个内核版本分别试一下)-->确认后就能看到一个界面出现很多选项,选择第一个recovery模式-->OK。(大概步骤就是这样,自己摸索一下就出来了)

    然后就进入系统了。在这里操作如下

    1,查看/boot/下的文件

    abi-4.4.0-31-generic memtest86+.bin
    abi-4.4.0-98-generic memtest86+.elf
    config-4.4.0-31-generic memtest86+_multiboot.bin
    config-4.4.0-98-generic System.map-4.4.0-31-generic
    grub System.map-4.4.0-98-generic
    initrd.img-4.4.0-31-generic vmlinuz-4.4.0-31-generic
    initrd.img-4.4.0-98-generic vmlinuz-4.4.0-98-generic

    发现存在两个版本的内核,原因应该是某次自动更新??不知道

    2,尝试修改/boot/grub/grub.cfg

    定位到某个menuentry(你自己需要启动的那个系统),如下是我无法启动的系统的menuentry

    menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c9ddf11a-a984-4854-91af-bcaed3e6c9b9' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos9'
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 c9ddf11a-a984-4854-91af-bcaed3e6c9b9
    else
    search --no-floppy --fs-uuid --set=root c9ddf11a-a984-4854-91af-bcaed3e6c9b9
    fi
    linux /boot/vmlinuz-4.4.0-31-generic root=UUID=c9ddf11a-a984-4854-91af-bcaed3e6c9b9 ro quiet splash $vt_handoff
    initrd /boot/initrd.img-4.4.0-31-generic
    }

    标红的版本,将自己系统中的高版本修改为低版本。如我的系统版本原来是31,不知道为什么升级成了98,修改回来。

    重启就能启动了。

    Ubuntu升级内核后无法启动

     Ubuntu升级内核后常常产生新的内核grub无法启动,只能进入Ubuntu图标,加载进度条没有反应,呈现紫葡萄色背景的界面不动。而通过grub的原先内核版本启动,仍然能够启动。原因是新升级的内核与显卡等不兼容,需要更新显卡驱动。另外如果不想麻烦,可以直接内核降级,回到升级之前的版本:

        找出系统已经安装的内核版本,在终端里输入命令:

        dpkg --get-selections | grep linux-image

        然后会显示系统中已安装的内核,例如:

        linux-image-3.0.0-32-generic           instal
        linux-image-3.0.0-12-generic           install
        linux-image-generic               install

        卸载新的内核版本,在终端里输入命令:

        sudo apt-get removelinux-image-3.0.0-32-generic

        上面命令和含义是:

        dpkg --get-selections [<表达式> ...]把已选中的软件包列表打印到标准输出;

        grep linux-image 匹配查找;

        uname -a 查看已安装的linux内核版。

        发现只有原先的内核版本了

        最后update-grub一下,重启,就可以直接进入。

  • 相关阅读:
    day 48
    40 协程 多路复用
    JQuery
    JS DOMBOM
    psotgres、timescaledb
    crontab命令
    Go语言结构体和方法
    Go语言锁的使用
    Go语言map数据结构
    ZOJ 3777 Problem Arrangement
  • 原文地址:https://www.cnblogs.com/ljdblog/p/7805179.html
Copyright © 2011-2022 走看看