1. 当CentOS7突然罢工:紧急救援模式初体验
那天早上我像往常一样启动节后复工的CentOS7虚拟机,结果迎接我的不是熟悉的登录界面,而是一串令人心跳加速的红色报错。屏幕最上方赫然显示着"Welcome to emergency mode!",后面跟着几行让人摸不着头脑的I/O错误提示。这种场景相信不少运维同行都遇到过——系统突然拒绝合作,而你甚至不知道从哪开始排查。
先说说我看到的第一个关键报错:"blk_update_request: I/O error, dev fd0, sector 0"。这个错误信息极具迷惑性,它让我的第一反应是存储设备出了问题。毕竟在Linux系统中,I/O错误通常意味着磁盘故障或文件系统损坏。但有趣的是,这个报错提到的设备是fd0——也就是软盘驱动器。现在都2020年代了,谁还会在虚拟机上配置软驱?这就像在现代公寓里发现了一个转盘电话,既突兀又可疑。
紧接着系统又抛出了更关键的线索:"Failed to switch root...os-release file is missing"。这才是真正的问题所在,但当时我的注意力完全被前面的I/O错误吸引走了。这就是典型的"障眼法"错误——系统用一个看似严重但实际无关的问题,掩盖了真正的致命伤。
2. 拨开迷雾:从错误引导到真相大白
2.1 那些年我们被误导的排查方向
我的第一次错误排查完全走偏了方向。看到I/O错误后,我立即做了以下几件事:
- 给虚拟机创建快照(这个习惯救了我无数次)
- 挂载CentOS安装ISO进入救援模式
- 执行xfs_repair修复根分区
结果可想而知——问题纹丝不动。这时候我才开始仔细审视那个fd0设备的报错。通过检查虚拟机配置确认根本没有软驱设备后,我做了个大胆的决定:直接删除这个不存在的设备引用。在救援模式下,我编辑了/etc/fstab,移除了所有与fd0相关的配置,然后重新生成grub配置:
grub-mkconfig -o /boot/grub2/grub.cfg
<
3049



被折叠的 条评论
为什么被折叠?



