首先我要说的是,我是一个非常缺乏经验的普通用户。昨晚,我试图将目录下的所有文件移动到另一个位置,但却不小心做了以下事情:
mv stuff /* /home/user/Downloads
我通过 SSH 连接到远程虚拟机,从该命令开始,一切都开始崩溃。终端上的任何命令都无法识别,ls 和 cd 都无法识别,什么都没有,控制台左侧通常会显示类似以下内容的内容
迪米特里斯#>_
已经转向
#> _
我重启了机器,现在它启动到
grub 救援>_
我试过了ls
,我得到了三个hd()
:
hd(0), hd(0,msdos1), fd(0)
- 第一个有一个无法识别的文件系统(可能是因为我将所有内容都移动到了 /home/user/Downloads,所以正常的 hd 被弄乱了)
- 第二个有一些目录:
- 第三个的第一个扇区无法读取。
我可以做些什么来恢复上次更改吗?或者其他什么?或者这是一个致命的错误?
我很乐意销毁虚拟机并再次创建,但我不想丢失我的 /var/www/ 目录。
答案1
基本上,由于您移动了启动所需的所有文件(例如... /boot
),您当前的计算机无法启动。但是,其他计算机可以。
由于您知道做了什么,因此您可能能够恢复计算机的先前状态。配置您的虚拟机以在 Ubuntu Live ISO 上启动,选择尝试 Ubuntu并手动挂载“混乱”的分区:
# Create mount points (home only if necessary).
sudo mkdir /mount/old /mount/old/home
# Mount the former / partition on /mount/old.
sudo mount /mount/old /dev/sdaX # sdaX being your destroyed / partition.
# Mount the former /home partition (if you have one) on /mount/old/home.
sudo mount /mount/old/home /dev/sdaY # sdaY being your former /home partition, if necessary.
如果您想获取有关分区的更多信息,请键入sudo fdisk -l
。这将为您提供虚拟驱动器的分区方案。尝试根据文件系统和大小识别您的分区。在大多数情况下通常在某些情况下,该/
分区是一个大ext4
分区。如果您的/home
分区与 共享同一个分区/
,则从以下命令中将其删除。
/mount/old
从那里,尝试在和中还原更改/mount/old/home
,然后执行umount
这些更改,并在虚拟驱动器上重新启动。在umount
执行之前,您还可以转到/mount/old/var/www
或/mount/old/home/user/Downloads/var/www
以恢复数据。
# Find all files owned by root in the former Downloads directory, and move them back to the root (mounted on /mount/old)
sudo find /mount/old/home/user/Downloads -type d -maxdepth 1 -user root -exec mv {} /mount/old \;
# Un-mount everything.
sudo umount /mount/old/home /mount/old
# Power off! Remove the ISO and power the machine back on.
sudo poweroff
这似乎是最明显的解决方案,但我不知道 GRUB 的配置是否能够处理最近的更改。你仍然可以尝试一下!
答案2
我认为你的虚拟机上的 Ubuntu 是没用的,你最好重新安装 Ubuntu。但在这之前,你可以用另一种方式读取虚拟机的硬盘。
这里关联了解如何操作,并查看您的文件。
“或者您可以创建一个全新的 Window VM 并将 vmdk 作为第二个磁盘添加其中。”
我认为您正在寻找的文件夹:/var/www/ 它位于 /home/user/Downloads 上
答案3
我刚刚遇到了类似的问题!我能够修复它。我在使用 Ubuntu 16.04 LTS。
我所做的是:sudo mv / /opt
当我在 /Downloads 目录中时。但它可以像将我的所有根文件夹移动到 /opt/* 一样工作,但由于文件繁忙等原因,有一些例外。
紧接着,我开始遇到 UI 和 cmd 中的故障,等等>ls
'ls' comand is not defined
。
有帮助的是从新的 Ubuntu USB 启动,选择try Ubuntu w/o isntallation
,转到终端,然后/media/<YOUR_HARD_DRIVE_ID>
然后类似sudo mv /media/<YOUR_HARD_DRIVE_ID>/opt/* /media/<YOUR_HARD_DRIVE_ID>/
希望有帮助