断电后,我的 CentOS 服务器开始出现问题,许多系统命令都损坏了。结果,我在执行 rm 或 mv 等关键命令时收到“无法执行二进制文件”的消息。使用 linux 救援 CD,我设法替换了一些文件,让我回到了大多工作状态,但我仍然遇到不太重要的命令(如 sed 或 tar)的问题。我不想单独查找和替换每个可能损坏的文件,而是想直接将这些系统命令完全替换或修复为默认状态。我曾尝试从 CentOS 光盘运行升级过程,但这只导致我的 initrd 文件出现问题,并没有纠正我的系统命令的任何问题。有人能建议我在哪里可以找到一个软件包来重新安装这些文件,而不必重新安装 CentOS 吗?
答案1
正如@Ency 所建议的:
rpm --verify --all
将会向您展示所有发生的变化。
但是,我建议安装“yum-verify”,如果尚未安装,则使用以下命令:
yum verify --verify-filenames='*bin/*'
这与“rpm --verify”非常相似,但您可以将其限制到某些目录,并且默认不显示配置文件更改。
输出实际上并没有告诉您某些东西来自哪个包,因此您需要使用:
rpm -qf /full/path/to/file
或者
yum provides /full/path/to/file
查看该文件属于哪个包
然后你可以使用:
yum reinstall packagename
重新安装 RPM,即使是相同的版本。
不过,我建议备份您需要的文件(/home
、、/etc
`/var/ 等)并从头开始重新安装所有内容。从您的描述来看,我怀疑您不会发现系统上隐藏的所有问题。