我在使用 VMWare 的 VPS 上的 Centos 7 64 位机器上。我正在移动一些文件,我想我可能已将根目录移动到某个文件夹。完成此操作后,我无法 cd 到任何目录并重新启动机器。现在,阅读 SE 上的一些问题,我发现我不应该重新启动机器,但现在它已经完成了,可以做什么?
当我从 VPS 管理的恢复控制台启动时,它会进入紧急模式,这是 Journalctl 中的错误:
systemd[1]: Starting Switch Root...
systemctl[500]: Failed to switch root: Specif ied switch root path /sys
systemd[1]: initrd-switch-root.service: main process exited, code=exit
systemd[1]: Failed to start Switch Root.
systemd[1]: Startup f inished in 872ms (kernel) Iinitral 3.81.9s I
systemd[1]: Unit initrd-switch-root.service entered failed state.
systemd[1]: Triggering OnFailure= dependencies of initrd-switch-root.s
systemd[1]: initrd-switch-root.service failed.
systemd[1]: Started Emergency Shell. systemdI11: Reached target Emergency Mode.
systemd[1]: Received SIGIMIIIM.21 from PIO 263 Iplymouthal.
kernel: random: crng init done
重新启动时,有几个选项可供选择,如下所示,但所有选项都会进入 shell:
知道该怎么做吗?我在此服务器上托管了一些网站,希望将它们恢复。
答案1
好吧,经过几个小时的搜索,我终于把它找回来了。这就是我所做的:
从我原来的问题中所示的 bash 提示符中, ls 显示了一个目录列表,其中包含一个名为sysroot
.cd
进入该目录,瞧,发现它是操作系统文件的 / 。我注意到很多文件夹都丢失了,只有少数是我启动命令时留下的mv
。所以我进入了执行命令的目录mv
,果然以下文件夹位于同一目录中。我尝试将它们移回原处,但移动文件时出现文件系统为只读错误。遵循建议这里按操作系统安装列表后更改ro
为,然后将它们全部移动到。这是rw
e
/sysroot
截屏
等 home lib lib64 丢失+找到 媒体 mnt opt root sbin srv var
重新启动,进度条填满后,它不会超过 Cento 7 进度条。按Escape,发现错误:无法挂载/boot。甚至不会去提示。这是截屏。
遵循了建议这里添加后,通过按操作系统选择列表init=/bin/bash
再次更改ro
为rw
在内核行上e
,然后它启动回到 bash 提示符。从那里再次检查,我错过了bin
旧mv
位置中的文件夹。mv
倒是回到了/sysroot
。然后我检查了/boot
下面的文件夹/sysroot
,但它是空的。不知道文件是否被删除或放错地方,我在网上搜索相同的文件,发现有人发表了评论
/boot 通常位于单独的分区上,因此通过挂载 /mnt/sysimage 您将看不到 /boot 下的文件所以我重新启动并宾果游戏一切正常。直接启动进入登录提示。尝试过 SSH,也可以工作。所有网站也都上线了。很好的结果!感谢您的所有帮助。非常感激。