我意外删除了
/lib
我的 Ubuntu 机器上的目录。
我该如何恢复它?
答案1
只需使用实时 DVD/CD sidk 并重新执行安装过程,即可恢复驱动器上的所有内容(/home 下的所有内容除外,其中包含用户帐户及其数据)。但有一个问题:
您必须选择安装方式列表中的最后一个选项,并做出反映您想要的根目录 (/) 位置的选择,以反映您当前的安装,使用相同的格式选项(通常是 ext4),并且确保不要点击格式框。如果您格式化,您将丢失.home directory
和用户帐户。您将看到有关不重新格式化的警告,但您可以放心地忽略它并继续。
您将丢失所有软件更新,但您可以使用终端窗口中的几个命令恢复大部分更新:我将在这里向您展示您最需要的两个简化字符串:
sudo apt-get -qq update
sudo apt-get -qq -y update
限制-qq
了这些过程中屏幕上显示的消息数量。如果您想查看所有内容,请忽略它。告诉您-y
只管apt-get
去做,它不会停下来询问您 (Yn)。
有些软件无法通过这种方式处理。您必须单独处理每个软件。例如,Virtualbox、Chrome、Chromium、Slimjet 和一些其他附加软件需要重新安装。
另一种可能性是将相同版本的 Linux 安装在不同的驱动器上,然后将/lib
文件夹和内容复制到您当前的驱动器上。您可以使用 USB 缩略图驱动器来实现此目的。Ubuntu 警告您,安装至少需要 6.5GB,这可能会影响您 USB 驱动器上已有的内容。要使该方法有效,您必须安装两个驱动器,并使用/media/ubuntu/
文件夹设置来访问驱动器。
我说驱动器为复数,因为您可以在试用模式下从 LiveCD 执行此操作,打开终端,然后输入sudo -su
或sudo -i
。从 LiveCD 中,无需密码即可成为超级用户。然后,您可以使用 mount 命令挂载每个驱动器。我不会在这里解释 mount 命令,但它并不难,您可以在其他地方找到详细信息。
在两个驱动器都安装好的情况下,您使用cp -r
命令从源复制到目标。与 Windows 不同,您无法在两个单独的设备上指定当前目录或文件夹。您的当前目录仅限于一个地方,默认情况下,即您的/home/userid/
。您可以使用 cd 命令将当前目录更改为您想要的,因此假设您要将文件/lib
从 sdb2 复制到 sda1。您可以这样做:
sudo -i
cd /media/ubuntu/sdb2
'假设驱动器已经安装
dir /media/ubuntu/sda1/lib
'查看目标目录是否已存在,如果不存在
mkdir /media/ubuntu/sda1/lib
'再次假设已先安装 sda1
cp -rpf . /media/ubuntu/lib/
'句点表示从当前目录,-rpf 表示 -r 重复遍历子文件夹,p 表示不更改权限,f 表示如果已存在则强制覆盖。
如果你按照以下方式操作,那么事情会变得更简单一些:
cd /media/ubuntu/sdb1
cp -rpf ./lib /media/ubuntu/sda1/
这里的选项pf -p
和-f
可能有些过度,但是在使用 cp 命令的其他情况下它们非常方便,cp 命令当然代表“复制”。
请再次注意句号的使用。如果没有句号,您将复制根驱动器上 /lib 的内容 - 这可能会起作用。但如果从 LiveCD 执行此操作,/lib 的内容可能会因完整安装 Ubuntu 所具有的所有内容而减少。
Linux 的奇妙之处在于 /home 不必与根目录 (/) 位于同一驱动器或分区上。您可以安装第二个驱动器/分区,并在安装过程中将其设置为在原始驱动器上查看 /home,同时在新安装驱动器上查看其他所有内容。
事实上,可以通过这种方式管理多个驱动器和分区的用途。您只需选择“其他”作为安装选项,然后自行管理配置。这还允许您删除分区、创建新分区、更改分区格式和调整分区大小。
但其中涉及一些问题。Linux 按照创建顺序识别任何一个驱动器上的分区。您可以从 sda 驱动器上的三个分区开始,它们可能是 sda1、sda2 和 swap。然后您决定缩小 sda1 和 sda2 并添加第三个分区,该分区应该是 sda3。它完成了,但由于您在执行此操作时遵循的顺序,您最终会得到 sda1、sda3、sda2、swap。您删除 sda3,尝试将 sda2 向下移动,并尝试在 sda2 所在的位置重新创建 sda3。现在您最终得到了 sda1、sda2、sda3、swap。即使您删除了分区,标签 sda3 也已被占用。因此,最好提前计划好这一切,然后按照列表从第一个到最后一个进行操作。交换分区可以放在任何地方。我总是把它放在最后,但其他人把它放在最前面。它的大小通常为 RAM 数量的 1.5 倍,但我不知道为什么。如果 RAM 较少,您会认为需要更多交换空间,如果 RAM 较多,则情况恰恰相反。因为交换需求较少。
答案2
看来您必须以 root 身份执行此操作,所以我认为不可能轻松“恢复”。
您可以尝试的第一件事是使用一些数据恢复工具,例如 TestDisk。
另一个选择是从 USB 驱动器或 CD 启动 Ubuntu Live 会话后直接复制。老实说,这只是我的猜测,它可能行不通。
我能想到的最后一个解决方案是重新安装系统 - 您可以这样做以保存您的数据和一些应用程序,而不必丢失所有内容。