我有一个用作服务器的 Ubuntu 桌面。今天早上我不小心把所有的根都移到了../
root@server:/tmp/UPS/up/upsilon# mv /* ../
mv: impossibile spostare "/dev" in "../dev": Dispositivo o risorsa occupata
mv: impossibile spostare "/proc" in "../proc": Dispositivo o risorsa occupata
mv: impossibile spostare "/run" in "../run": Dispositivo o risorsa occupata
mv: impossibile spostare "/sys" in "../sys": Dispositivo o risorsa occupata
mv: impossibile spostare "/tmp" in una sottodirectory di sé stessa, "../tmp"
root@server:/tmp/UPS/up/upsilon# ls
-bash: /bin/ls: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我是通过 ssh 远程连接的。现在,我无法再访问了。我也无法查看 Webmin。
那么,现在我无法重新启动系统正确吗?我必须物理访问系统控制台并键入以下命令:
../bin/mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*}
Run Code Online (Sandbox Code Playgroud)
对?
我的根目录去哪里了,我怎样才能找回它?上面的命令会起作用吗?
Oli*_*Oli 12
您没有移动根目录(您不能),您只是将其中的几乎所有内容移动到您所在路径的父目录中。
使事情复杂化的是,您还移动了,mv因此无法按预期工作。如果您仍然在上次启动 mv 时所在的目录中,则以下内容应该可以工作(只要您在询问后没有重新启动!)。
../bin/mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*} /
Run Code Online (Sandbox Code Playgroud)
如果您没有任何这些,只需从命令中省略它们。
如果您没有访问权限(在此状态下您将无法进行全新登录),则必须在外部挂载文件系统(通过 LiveCD 之类的东西并挂载文件系统,然后移动文件)到正确的地方。Braiam 的回答应该对这部分有所帮助。
Bra*_*iam 10
如果您已经重新启动或注销,您可以在 liveCD/USB 中启动以修复您的系统。我将省略您知道如何创建 Live 系统并使用 Ubuntu 启动的部分(替代 cd 也可以使用,只需放入根 shell):
首先,您应该将系统安装到某个地方,因此:
mkdir /mnt/system
mount /dev/sda1 /mnt/system
Run Code Online (Sandbox Code Playgroud)
我假设/dev/sda1是你的根。如果您已经分开,/bin或者/usr您也应该安装它们:
mount /dev/sda2 /mnt/system/usr
Run Code Online (Sandbox Code Playgroud)
现在,您应该到达灾难发生前所在的目录:
cd /mnt/system/tmp/UPS/up/upsilon
Run Code Online (Sandbox Code Playgroud)
现在使用 Oli 给出的命令,我将大肆复制:
mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*} /mnt/system/
Run Code Online (Sandbox Code Playgroud)
现在验证一切正常:
# ls /mnt/system/
bin boot etc home media mnt opt root sbin selinux usr var etc...
Run Code Online (Sandbox Code Playgroud)
重新启动您的系统,并在未来更加谨慎。