![在 Fedora 上从文件系统故障恢复后无法运行某些命令](https://linux22.com/image/1528978/%E5%9C%A8%20Fedora%20%E4%B8%8A%E4%BB%8E%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%95%85%E9%9A%9C%E6%81%A2%E5%A4%8D%E5%90%8E%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C%E6%9F%90%E4%BA%9B%E5%91%BD%E4%BB%A4.png)
我的笔记本电脑由于过热突然断电,之后我遇到了一些文件系统故障问题,通过从 fedora live cd 启动并运行 fsck 解决了这个问题。
之后我能够成功启动我的系统,它几乎可以正常工作,除了我无法运行很多命令,如 fsck - ifconfig -smartctl - shutdown - reboot - ip 结果总是这样的:
[root@lap-tita mtita]# fsck
bash: fsck: command not found...
Install package 'util-linux' to provide command 'fsck'? [N/y] y
* Waiting in queue... Failed to install packages: util-linux-2.28.2-
2.fc25.x86_64 is already installed
[root@lap-tita mtita]# smartctl
bash: smartctl: command not found...
Install package 'smartmontools' to provide command 'smartctl'? [N/y] y
* Waiting in queue... Failed to install packages: smartmontools-1:6.5-
1.fc25.x86_64 is already installed
[root@lap-tita mtita]# shutdown
bash: shutdown: command not found...
Install package 'systemd' to provide command 'shutdown'? [N/y] y
* Waiting in queue... Failed to install packages: systemd-231-
14.fc25.x86_64 is already installed
[root@lap-tita mtita]# reboot
bash: reboot: command not found...
Similar command is: 'reboot'
[root@lap-tita mtita]# ifconfig
bash: ifconfig: command not found...
Install package 'net-tools' to provide command 'ifconfig'? [N/y] y
* Waiting in queue... Failed to install packages: net-tools-2.0-
0.40.20160329git.fc25.x86_64 is already installed
[root@lap-tita mtita]#
我不知道是否还有其他命令无法再运行,但现在我不知道是什么原因造成的,特别是我确定硬盘没有损坏,现在文件系统是干净的
答案1
它找不到这些命令的可执行文件。我认为这里发生的情况有三种可能性:
可执行文件已损坏
这些可执行文件的文件已损坏,现在已丢失。如果是这种情况,您需要备份未损坏的数据并重新安装服务器。然后将数据恢复到新安装中。
卸载 /lib 分区
如果您有一个单独的 /lib 分区,但该分区未挂载,则可能会导致此类行为,因为当该分区未挂载时,可执行文件将无法访问。要解决此问题,您只需挂载它即可。您必须对服务器有一定的了解,才能知道您是否有单独的分区以及应该挂载哪个分区。
PATH 环境变量错误
最后,如果您使用的用户的 PATH 环境变量未设置为在正确的位置查找可执行文件,则可能会出现此问题。您可以运行echo $PATH
或env | grep -E "^PATH="
查看它设置为何。root 用户的 PATH 示例如下:
/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11