You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改rc.local后无法进入CentOS7虚拟机,如何恢复系统访问?

我之前也踩过一模一样的坑!别慌,咱们一步步来把问题解决掉:

第一步:进入单用户模式修复有问题的rc.local

这是最关键的一步,因为现在系统卡启动没法正常登录,只能通过单用户模式修改错误配置:

  • 重启你的CentOS7虚拟机,在系统启动到GRUB引导界面时(如果没看到GRUB,赶紧按任意键暂停,CentOS7默认会隐藏这个菜单),选中你平时启动的内核选项,按e进入编辑模式
  • 找到以linux16开头的那一行,把末尾的ro改成rw init=/sysroot/bin/sh
  • 按下Ctrl+X启动系统,这时候会进入一个极简的shell环境
  • 输入chroot /sysroot切换到真实的系统根目录,现在你就可以操作正常的系统文件了
  • 编辑出问题的rc.local文件:vi /etc/rc.d/rc.local,把你之前添加的那些导致卡顿的命令全部注释掉(开头加#)或者直接删除
  • 保存退出后,输入exit退出chroot环境,再输入reboot重启系统,这时候应该就能正常进入系统了
第二步:确保rc.local拥有执行权限

CentOS7里/etc/rc.d/rc.local默认是没有执行权限的,很多人添加命令后忘了这一步,也会导致启动异常:

  • 正常进入系统后,执行命令:chmod +x /etc/rc.d/rc.local
  • 以后再往rc.local里加命令时,一定要先测试命令在终端里能正常运行,再添加进去,避免再次踩坑
第三步:设置系统开机自动联网,方便后续SSH连接

解决完启动问题后,咱们把自动联网搞定,以后就不用手动连了:

  • 先查看你的网卡名称:nmcli device status,找到显示ethernet类型的设备名(比如ens33)
  • 编辑网卡配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33(把ens33换成你的网卡名)
  • 找到ONBOOT选项,把它改成ONBOOT=yes,如果没有这个选项就手动添加一行
  • 保存退出后,重启网络服务:systemctl restart network,或者直接重启系统,下次开机就会自动联网了

这样之后,你就能用Putty或者其他SSH工具正常连接系统,再也不用怕没法远程修复了!

内容的提问来源于stack exchange,提问作者Luiza Rodrigues

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:58:52