开发者社区> 问答> 正文

Linux操作系统中,系统配置文件丢失要如何和修复?

Linux操作系统中,系统配置文件丢失要如何和修复?

展开
收起
独步喜多多 2018-02-28 20:08:23 4345 0
2 条回答
写回答
取消 提交回答
  • 系统在引导期间,很重要的一个过程就是init进程读取其配置文件/etc/inittab,启动系统基本服务程序及默认运行级别的服务程序完成系统引导,如果/etc/inittab误删除或修改错误,Linux将无法正常启动。此时,只有通过救援模式才可以解决此类问题。

    /etc/inittab文件丢失引导错误示例

    1、有备份文件的恢复办法进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议系统中的重要数据目录,如/etc、/boot等要进行备份),直接将备份文件拷贝回去,退出重启即可。

    如果是配置文件修改错误,如比较典型的/boot/grub/grub.conf及/etc/passwd的文件修改错误,也可以直接修正恢复。

    假设有备份文件/etc/inittab.bak,则在救援模式下执行:sh-3.1# chroot /mnt/sysimage sh-3.1# cp /etc/inittab.bak /etc/inittab

    2、没有备份文件的恢复办法如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复。

    首先查找到/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果):
    sh-3.1# chroot /mnt/sysimage sh-3.1# rpm -qf /etc/inittab initscripts-8.45.3-1

    退出chroot模式:
    sh-3.1# exit

    挂载存放RPM包的安装光盘(在救援模式下,光盘通常挂载在/mnt/source目录下):
    sh-3.1# mount /dev/hdc /mnt/source

    Fedora系统的RPM包存放在光盘Fedora/RPMS目录下,其他Linux存放位置大同小异。

    另外,因为要修复的硬盘系统的根目录在/mnt/sysimage下,需要使用——root选项指定其位置。

    覆盖安装/etc/inittab文件所在的RPM包:
    sh-3.1# rpm -ivh ——replacepkgs ——root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm

    其中的rpm命令选项“——replacepkgs”表示覆盖安装,执行完成后,即已经恢复了此文件。

    如果想只提取RPM包中的/etc/inittab文件进行恢复,可以在进入救援模式后,执行命令:
    sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm | cpio -idv ./etc/inittab sh-3.1# cp etc/inittab /mnt/sysimage/etc

    注意此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysimage目录下相应位置即可。

    2019-07-17 21:59:37
    赞同 展开评论 打赏
  • 域名投资、域名选择、域名交易、域名行情等@我
    2019-07-17 21:59:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载