• 记录一次Linux内核级的折腾


    事情的起因是这样的:

    我自己的笔记本是Windows系统,装了一台Linux虚拟机 Centos7 系统。


    1. 今天跑程序的时候,不知某种原因,导致整个物理机和虚拟机都没有反应了,无奈只能断电重启;

    2. 断电重启后,重启 Linux 虚拟机,发现已经打不开了,直接进入了 安全模式(emergency mode),通过 journal -xb 查看日志,提示是由于无法 mount /sysroot,并且 fstab 文件消失不见了(惊呆了)。只有一个空的 fstab.empty 文件。。。

    3. 无法编辑 fstab 文件,于是然后网上查了将近 40 分钟,尝试一堆方法,最后通过 xfs_repair -L /dev/mapper/centos-root 解决了 mount /sysroot;但是问题还没有解决。。。

    4. 解决 sysroot 后,出现了选择启动内核的界面,选择一个内核,出现了 centos7 gnome 界面,本以为问题解决了(很开心),但是等了半天,发现界面一直在转圈,始终无法进入登录界面(沮丧)

    5. 通过 ARTL + C命令切换到后台,返现报无法配置 selinux policy,于是又网上查了半天,最后通过内核启动界面按 e 进入内核启动项编辑模式,在 fi 的下一行的最后加上 selinux=0 ;CRTL + x 重新进入内核,这次倒是不报 selinux 的问题了,但是依旧无法进入登录页面,还是直接跳转到了安全模式(回到原点)

    6. 继续查看 journal -xb ,看见了 mount 我自己的一个盘出现了问题,于是又开始网上搜索,经过漫长搜索与试验后,无效。。。。。

    7. 死马当活马医,想起来我还有一个内核,版本比较第一个小号,以前也出现过高内核无法进入的问题,于是我选择了低内核进入,果然直接进入了 gnome;问题还没完。。。

    8. 上面问题的原因是因为我自己的盘被格式化 ext4 格式,但是高版本内核居然没有 ext4 格式支持(cat /proc/filesystems),简直是坑,而低版本内核里有 ext4 格式支持,因此可以 mount 上;好吧,知道了这个问题,我的完美主义开始发作了,想着干净一点,把那个高版本内核卸载掉。。。然后卸载了,重启,发现直接进入了 grub 界面,连 boot 都进不去了(哭死);后来想想应该是没有设置默认 boot 项,因此把高的卸掉后,直接找不到了

    9. 好吧,又是一番网络检索,无数次实验,在一篇文章中找到了解决方法,直接贴在下面了:

    CentOS7启动故障 进入grub>提示符_weixin_34174422的博客-CSDN博客

    # 首先确定 boot 的位置
    
    我的在这个位置:
    ls  (hd0,msdox1) /grub2
    
    也有的人在这个位置,怎么寻找,大家可以看我连接得那篇帖子,
    ls (hd0, msdox1)/boot/grub 
    
    set  root=(hd0,msdos1)
    
    set prefix=(hd0,msdos1)/grub2
    
    
    # 这里得 /dev/mapper/centos-root 指根分区,如果不是 lvm管理得,要用 /dev/sdx之类的
    linux16  /vmlinuz-xxxx .e17.x86_64  root= /dev/mapper/centos-root
    
    intrad16 /initramfs-xxxx.e17.x86_64.img
    
    boot

    10. 按照文档最后指示,要重建 grub.cfg 执行 

    grub2-mkconfig -o /boot/grub2/grub.cfg

    命令,但是我执行后报错了,简直了。。。也不说经过了,后来也是通过 xfs_repaire -L /dev/sda1 解决的

    11. 修改完这个之后,我再一次进入了 grub 界面,我以为又失败了,于是又重新执行了上面第 9 步的操作,后来没有再进入安全模式,直接进入了 gnome

    12  总结一下,就是手残。。。

  • 相关阅读:
    访问者模式-Visitor Pattern
    jsp页面包含的几中方式
    Java Excel API的使用
    Java中导入、导出Excel
    【Oracle】OVER(PARTITION BY)函数用法
    myeclipse编辑jsp页面卡死
    myeclipse 最佳设置
    echarts学习总结
    java中 json和bean list map之间的互相转换总结
    泛型设计<T, PK extends Serializable>
  • 原文地址:https://www.cnblogs.com/1q94/p/14039608.html
Copyright © 2020-2023  润新知