打印Failed to start Switch Root错误,导致系统进入紧急模式的解决方法

本期为服务器操作系统常见问题第二篇,介绍系统启动时进入紧急模式(emergency模式),打印Failed to start Switch Root报错的应对策略。

问题描述

系统启动时进入紧急模式(emergency模式),打印Failed to start Switch Root报错,具体如下:

过程分析

(1)根据提示,执行vi /run/initramfs/rdsosreport.txt命令查看rdsosreport.txt日志。

从日志中看,系统进入emergency模式的原因是:root文件系统没有挂载或者系统缺少os-release文件,造成initrd-switch-root.service服务启动失败。

查看kernel启动参数,系统启动参数中没有包含“root=”,造成系统启动过程中不会挂载root文件系统。

(2)重启系统,在grub界面按e键编辑当前系统启动选项,linux行中的root启动参数缺失。

(3)按Esc回到grub界面,按e键进入修复模式启动选项的编辑模式,root启动参数存在,按Ctrl+x键通过当前修复模式进入系统。

(4)进入系统后,检查/boot/grub2/grubenv文件,发现grubenv被清空。

问题根因

/boot/grub2/grubenv文件被清空或者损坏。

解决方案

步骤一:通过修复模式进入系统;

步骤二:根据如下方法修复grubenv文件:

Legacy模式:

(1)创建一个空的grubenv文件。

# grub2-editenv /boot/grub2/grubenv create

(2)重新生成grub.cfg文件,在生成grub.cfg的同时会自动写入grubenv文件。

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

UEFI模式:

(1)创建一个空的grubenv。

# grub2-editenv /boot/efi/EFI/实际系统路径/grubenv create

(2)创建 /boot/grub2/grubenv和 /boot/efi/EFI/实际系统路径/grubenv的软链接。

# ln -sf /boot/efi/EFI/实际系统路径/grubenv /boot/grub2/grubenv

(3)重新生成grub.cfg文件,在生成grub.cfg的同时会自动写入grubenv文件。

# grub2-mkconfig -o /boot/efi/EFI/实际系统路径/grub.cfg

步骤三:检查grubenv文件是否生成kernelopts=<paramater>参数。

步骤四:执行reboot重启系统。

编辑于 2024-07-25 16:28・IP 属地山东

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值