CentOS开机提示Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown-block,vm exsi 修复centos虚拟机内核操作
<p>故障:</p><p> CentOS开机提示Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown-block</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206143221550-1306867584.png"></p>
<p> </p>
<p>故障背景:</p>
<p>在没有关闭应用和系统的前提下,直接点了虚拟机关闭电源选项,再开机就报如上错误</p>
<p>原因分析:</p>
<p>根据提示信息分析,可能因为意外关机导致系统内核信息混乱。</p>
<p>解决方法:</p>
<p>(1)如果开机有多个内核选项,这是最简单的方法<strong>:</strong>开机启动时按Esc,然后选择下面的其他版本的内核启动即可。(成功进入系统后,你可以选择改变开机默认选择的内核)。</p>
<p>(2)如果开机没有多内核选项可选:那就需要修复内核(查看快照发现只有一年前的,基本不可用)</p>
<p> </p>
<p>下面为vm exsi 修复centos虚拟机内核操作</p>
<p>1.下载故障虚拟机对应的centos镜像</p>
<p>在报错界面有内核版本:3.10.0-1160.25.1.el7.x86_64,可以根据内核反推centos版本</p>
<p>我这边由于这个应用有好几台主机,所以登陆了其他机器查看centos版本</p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/redhat-<span style="color: rgba(0, 0, 0, 1)">release
CentOS Linux release </span><span style="color: rgba(128, 0, 128, 1)">7.9</span>.<span style="color: rgba(128, 0, 128, 1)">2009</span> (Core)</pre>
</div>
<p>下载镜像渠道可以参考:https://blog.csdn.net/a350904150/article/details/129833998</p>
<p>最先查看的是官网,发现旧版本已经不提供了,顿时心凉了一半</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206144736785-226671516.png"></p>
<p> </p>
<p>好在后来在阿里云上找到了资源,我只用来修复内核,下载最小版本即可</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206145042623-1863192722.png"></p>
<p> </p>
<p>2.上传镜像文件,配置虚拟机加载镜像</p>
<p> (1)在vsphere 控制口找到虚拟机所在的存储磁盘,上传镜像文件</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206145835960-1594380250.png"></p>
<p>(2)设置故障虚拟机配置为开机加载dvd镜像</p>
<p> 镜像文件选择刚刚上传的镜像</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206150031307-556174454.png"></p>
<p> </p>
<p> </p>
<p>3.进入Linux rescue模式</p>
<p>(1)设置虚拟机bios引导优先级为cdrom,并开机</p>
<p>如果是内核损坏,这步可以省略,因为bios发现硬盘加载不了会自动加载cdrom</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206152433202-1524360371.png"></p>
<p>(2)打开Remote Console </p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206152722023-1063119129.png"></p>
<p> (3)开机</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206152835655-921317219.png"></p>
<p> (4)进入bios,切换到boot,并把cdrom调至第一位,后按F10保存退出</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206153008391-1079257354.png"></p>
<p> (5)选择troubleshooting</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206153107007-1375939710.png"></p>
<p>(6)选择rescue a centos system</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206153216178-1456657063.png"></p>
<p> (7)选1进入修复模式</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206154924232-1970750004.png"></p>
<p> </p>
<p> </p>
<p> 4.开始修复</p>
<p>chroot /mnt/sysimage 的意思是把真实的系统文件切换成根目录(就是进入真实的系统环境),因为rescure模式把真实系统文件挂载到了 /mnt/sysimage目录</p>
<p>这里不需要切换</p>
<p>(1)挂载光驱cdrom到/mnt/cdrom路径下</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p /mnt/cdrom<br>mount -t iso9660 /dev/cdrom /mnt/cdrom<br>cd /mnt/cdrom<br>ls</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206155521907-1493164233.png"></p>
<p> </p>
<p>(2)内核修复</p>
<p>修复内核所需的文件在挂载光盘的Packages目录下面</p>
<div class="cnblogs_code">
<pre>cd Packages<br>ls |grep kernel-<br>rpm -ivh ./kernel-3.10.0-862.el7.x86_64 --root=/mnt/sysimage/ --force</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206160325580-1817258828.png"></p>
<p> (5)退出恢复模式,关闭系统</p>
<div class="cnblogs_code">
<pre>exit</pre>
</div>
<p>(6)按步骤一重新设置bios引导顺序,开机即可</p>
<p> </p>
<p>参考文档:https://blog.csdn.net/e_wsq/article/details/87075346</p>
<p>他后来有修复grub程序步骤,我执行提示 command not found,所以没有修复grub程序</p>
<p>不过后来重启系统,卡了半天还是正常开机了,所以一般来说不用修复grub程序</p>
<p>我猜测他那个为老版本命令,新版变成了 grub2-install </p>
<p>如果要修复一定要指定/boot的盘符,即/dev/sda1</p>
<p><img src="https://img2023.cnblogs.com/blog/1219004/202312/1219004-20231206162406874-1519926784.png"></p>
<p> </p>
<p> </p>
<p>5.关于内核操作</p>
<p>有时候升级几次后内核文件占用较大,需要腾空间。操作如下:</p>
<p>第一步、打开终端提升权限:</p>
<p>su #提升权限</p>
<p>第二步、查询当前使用内核</p>
<p>uname -a #查询当前使用的系统</p>
<p>第三步、查询系统中所有内核</p>
<p>rpm -qa | grep kernel</p>
<p>或者可以用这个命令查看:cat /boot/grub2/grub.cfg | grep menuentry</p>
<p>查看当前默认内核:grub2-editenv list</p>
<p>设置默认启动内核:grub2-set-default 'CentOS Linux (3.10.0-1160.92.1.el7.x86_64) 7 (Core)'</p>
<p>第四步、删除你不需要的内核</p>
<p>yum remove 你要删除的内核 #把老版本的内核remove,千万不要把正在使用的内核删掉</p>
<p>第五步、更新grub引导菜单</p>
<p>grub2-mkconfig -o /boot/grub2/grub.cfg #重新编译引导</p>
<p>第六步、重启系统</p>
<p>init 6 #重启使用“reboot”也可以<br><br>参考文档:https://blog.csdn.net/lushanglou/article/details/131640964</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/allay/p/17879546.html
頁:
[1]