CentOS 7救援模式下重置网络配置时无法访问路径的求助
解决CentOS7救援模式下无法访问原系统network-scripts路径的问题
别慌,这种情况我碰到过好几次,核心问题大概率是你没切换到原系统的根目录——救援模式自带了一个迷你临时系统,你直接访问的/etc其实是救援系统的文件,不是你服务器本地系统的!
下面是一步步的解决流程:
1. 确认原系统磁盘的挂载状态
先执行这条命令,检查救援模式是否自动挂载了你的系统盘:
df -h
正常情况下,你的根分区(比如/dev/sda1或者/dev/mapper/centos-root这类)应该被挂载到/mnt/sysimage目录下。如果没看到这个挂载点,手动挂载:
mount /dev/你的根分区设备名 /mnt/sysimage
不知道根分区设备名?用blkid命令查找,带TYPE="xfs"/TYPE="ext4"、且标注了根目录(/)的就是目标分区。
2. 切换到原系统的根环境
这是最关键的一步!执行chroot命令切换到你自己服务器的系统根目录:
chroot /mnt/sysimage
现在执行pwd,应该显示/,这时候你操作的所有路径都是你服务器本地系统的了。
3. 恢复network-scripts配置文件
现在直接去目标路径替换备份文件就行:
# 先备份当前错误配置(可选,但更保险) cp /etc/sysconfig/network-scripts/ifcfg-enp2s0 /etc/sysconfig/network-scripts/ifcfg-enp2s0.bak-error # 把你的备份文件复制回去,假设备份文件在/root/ifcfg-enp2s0.bak(根据实际备份位置调整) cp /root/ifcfg-enp2s0.bak /etc/sysconfig/network-scripts/ifcfg-enp2s0
如果备份在U盘或其他存储设备上,先把设备挂载到/mnt/sysimage/mnt/usb这类目录,再复制文件。
4. 验证并重启服务器
先检查配置文件的权限和内容是否正确:
ls -l /etc/sysconfig/network-scripts/ifcfg-enp2s0 cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
确认无误后,退出chroot环境:
exit
最后重启服务器:
reboot
额外提示
如果挂载时出现wrong fs type, bad superblock这类错误,说明根分区可能损坏。可以尝试用xfs_repair /dev/你的根分区(XFS文件系统)或fsck.ext4 /dev/你的根分区(ext4文件系统)修复后,再重新挂载。
内容的提问来源于stack exchange,提问作者Jason4Ever




