意外删除了 /lib 目录

意外删除了 /lib 目录

我意外删除了/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 -susudo -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 会话后直接复制。老实说,这只是我的猜测,它可能行不通。

我能想到的最后一个解决方案是重新安装系统 - 您可以这样做以保存您的数据和一些应用程序,而不必丢失所有内容。

相关内容