美文网首页
记一次Ubuntu 16.04 [ELF header smal

记一次Ubuntu 16.04 [ELF header smal

作者: qboy0000 | 来源:发表于2019-08-29 16:10 被阅读0次

    不知道什么原因,其中一台虚拟机无法正常启动,启动报
    error: ELF header smaller than expected.

    注:由于修复过程没有截图,以下所使用图来自其他的人截图。
    由于不知道怎么回事,Google出来说可以利用Boot Repair来进行修复。

    1. 下载Ubuntu 镜像,这里我使用国内的阿里的镜像https://opsx.alibaba.com/mirror
    2. 进入试用模式,打开终端,安装boot-repair
    sudo add-apt-repository ppa:yannubuntu/boot-repair 
    sudo apt-get update
    sudo apt-get install -y boot-repair
    boot-repair
    
    boot repair
    选择Recommended repair
    修复重启,以为万事大吉时,重启出现以下错误:
    error: file '/boot/grub/i386-pc/extcmd.mod' not found.
    Entering rescue mode...
    grub rescue>'
    

    注: 网上更多的是/boot/grub/i386-pc/normal.mod 应该可以用相同的方法吧,未出来现这个问题,若下次出现再试。

    好吧,google之后说重装grub,好吧,再次用上下载的镜像进入试用模式,打开终端。

    sudo mount /dev/sdXY /mnt
    sudo grub-install --root-directory=/mnt /dev/sdX
    sudo apt-get install --reinstall grub2
    

    /dev/sdX是Ubuntu安装的硬盘,比如我的是sda ,/dev/sdaXY是该硬盘上的第几块分区,比如我的是sda1,可以使用fdisk -l查看硬盘信息

    本以上命令会正常执行,却报出:
    grub-install error: cannot delete XXXX Structure needs cleaning
    好吧,看来问题不少啊。用下面的两行代码来修复吧。

    sudo umount /dev/sda1
    sudo fsck.ext4 /dev/sda1
    

    好像少了一个参数,只能一路按着 y 键。
    执行完之后再执行重装grub2 好了。再次重启就可以正常进入系统了。

    不要问我为什么,其实我也不知道为什么。
    参考:

    1. https://blog.csdn.net/laocaibcc229/article/details/79274412
    2. https://blog.csdn.net/shiliangwang/article/details/7855770
    3. https://unix.stackexchange.com/questions/330742/cannot-remove-file-structure-needs-cleaning
    4. https://askubuntu.com/questions/197833/recovering-moved-mod-files-using-grubrescue

    相关文章

      网友评论

          本文标题:记一次Ubuntu 16.04 [ELF header smal

          本文链接:https://www.haomeiwen.com/subject/gxiiectx.html