Fedora 15 中意外删除 /lib 目录

Fedora 15 中意外删除 /lib 目录

我不小心删除了 Fedora 15 机器上的 /lib 目录,我不知道如何修复这个问题。任何有关如何恢复目录以及符号链接的帮助将不胜感激。

答案1

/lib 是一个系统目录,将包含在安装过程中以及稍后使用 rpm 或 tarball 安装的任何其他软件包所安装的必要库文件。您是否有主机的备份,是否位于 RAID 或 LVM 分区上?为此,程序会有所不同。然而 /lib 是一个系统目录,它在正常模式下的可用性对于主机的功能运行至关重要。

我强烈建议寻找 live-cd 并使用 cd 启动系统并进入救援模式。另外,查找同一网络上是否有任何机器与之前安装了 Fedora 15 相同的映像。如果没有,请单独设置一台与 fedora 15 相同的机器。为了便于解释,我们将其称为远程计算机。您可以使用此远程计算机通过符号链接复制 /lib 整个结构,并且稍后完全使用 rsync 进行复制。确保安装了 rsync 包。另外,请确保您已在远程计算机上安装并运行 ssh,并允许 root 登录。

注意:如果您没有其他计算机,则唯一的选择是重新安装操作系统,并且可以选择不覆盖任何 Linux 安装的数据。这样,您将确保之前安装后计算机上的所有本地数据都是安全且未受影响的。并且不要重新创建任何分区。如果您确实有另一台计算机,请继续下一步,因为这可以使您的系统恢复并使其更早地启动和运行。

在本地计算机上完成 CD 启动和救援模式后,设置网络并了解要救援的计算机的 IP 地址以及可以复制 /lib 的位置。识别本地硬盘上的/lib分区。它是一个单独的分区还是从/挂载的。通常是/下的目录结构,而不是单独的分区。如果直接位于本地磁盘根分区的 / 下,请确保将 root 分区挂载在 /mnt/localroot 下。在 /mnt/localroot/lib 下,您会发现损坏的 /lib 树结构。但是,请确保您不使用 /mnt/localroot,而仅使用 /mnt/localroot/lib/。请小心尾随斜杠和路径。

mkdir /mnt/localroot
mount /dev/sda1 /mnt/localroot
ls -ld /mnt/localroot/lib

在 shell 提示符下,找到 rsync 二进制文件并开始将 /lib 内容从远程计算机拉取到本地安装的 lib 目录(位于 /mnt/localroot/lib/)。

/usr/bin/rsync --delete -avz -e /usr/bin/ssh <remote-machine-ip-address>:/lib/ /mnt/localroot/lib/

同步完成后,再次运行相同的 rsync 命令。之后,重新启动系统,取出启动光盘,然后尝试以正常模式从grub启动,并查看日志中每个服务都正常启动,没有任何错误。

答案2

如果您有另一个具有类似 Fedora 15 设置的系统,您可以从 livecd 启动您的系统,并同步其他系统的内容以重新填充您的 /lib 目录(rsync -avH 即可完成)。您的某些命令可能不起作用,那么您需要再次安装这些软件包。

答案3

我建议/lib在这种情况下,恢复是最容易采取的角度。

所以首先你必须停止使用有问题的 Fedora,并在其上运行带有一些恢复程序的 Live CD,例如这里(这是一个很好的指南),并恢复到一个单独的 HD(因为您不想破坏恢复的潜力),然后在您获得一个程序的结果并且满意后,将其复制回 Fedora问题,如果没有尝试另一个程序。

您可能无法恢复目录中的每个 lib 文件,但您可以稍后安装它。

如果您无法恢复,请备份已更改为您喜欢的任何系统文件,并在安装阶段使用“升级”选项再次安装 Fedora 盒子,这将仅安装与您的基本系统关联的已删除文件。

答案4

其他答案已经解释了如何通过重新启动到 Live CD/USB 来恢复系统。您将无法彻底关闭系统,因此请按Alt+ SysRq+S然后Alt+ SysRq+ U Alt+ SysRq+B彻底卸载文件系统,然后直接重新启动。有很小的可能你甚至不需要这个,但这取决于你有什么可用的。

首先,您需要能够以 root 身份执行某些进程。这意味着有一个 root shell 正在运行,或者有一个具有静态链接 shell 的 root 帐户以及一种登录控制台或通过 ssh 登录的方法。然后您可以做什么将取决于您可以使用的静态链接工具。如果您有静态链接(例如在 sash 中或来自 Busybox),您可以安装包含来自另一个版本的 Fedora 的mount副本的 USB 记忆棒或 NFS 文件系统。lib如果您仍然有可用的 rpm 软件包,请重新安装提供库的软件包,从 libc 开始;据我所知,Fedora 的rpm二进制文件是静态链接的。

也可以看看移动了 bin 和其他文件夹!如何让他们回来?,一种不同的情况,但有足够的共同点,答案可能会提供有用的补充。

相关内容