rm -rf / usr / *为root,现在怎么办?

我的一个同事通过运行rm -rf /usr/* ,意外地删除了/ usr / *数据。 这是一个大问题。 我们在这台机器上有很多好的数据。 大部分的命令都不起作用。 无论如何,我可以恢复机器吗? 我不是真正的数据恢复专家。

请帮我指出一个解决scheme/程序。 关于那台机器的一些信息如下。 请让我知道是否需要更多信息。

 -bash-3.00# uname -a Linux penguin 2.6.9-5.EL #1 Wed Jan 5 19:22:18 EST 2005 i686 i686 i386 GNU/Linux -bash-3.00# fdisk -l Disk /dev/hda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 9729 78043770 8e Linux LVM -bash-3.00# 

我的build议是:

  1. 谷歌“取消删除Linux”,你会发现一些如http://www.r-tt.com/data_recovery_linux/ 。 您可以使用这个取消删除任何您想要恢复的文档。
  2. 采取措施避免将来出现这种情况。 你想要的是制作分区副本的方法,就像Acronis TrueImage for Linux一样。 如果您运行的是Acronis TrueImage for Linux,则会将完整的硬盘克隆复制到一个文件(为了安全起见,您可以安全离线),因此,如果将来出现任何问题,您可以随时从裸机中恢复。

首先,启动一个Live CD或恢复磁盘并备份您的数据。 你可能也想包含/ etc的系统configuration。

你可以尝试重新安装你所拥有的东西,留下你想保持不动的分区。 只要你没有把你的好的数据保存在任何系统分区(而且希望不在/ usr下),你应该能够在你的安装过程中保留这些数据。

如果一切都失败,请从头开始安装并从备份中恢复。

考虑改变你的同事的访问权限。

我假设你正在使用Redhat,因为这就是我正在使用的:

第1步 – 因为在/ usr(man hier)中不应该有任何实际的数据存储,所以你应该能够重新安装所有的系统二进制文件:

 cd /root rpm -Va > filename rpm -qf `cat filename | awk '{print $3}'` | sort | uniq > filename2 yum reinstall `cat filename2` 

如果你在/ usr中有一些没有被发行版安装的数据,那么忘记我刚才说的使用磁盘的一切将减less你能够恢复被删除数据的机会。

数据恢复的第一条规则: 停止使用磁盘

正如Gravitas所说,反删除是可能的,但是使用磁盘越多,释放扇区被新数据覆盖的机会就越大。 即使只是在闲置的启动系统上logging文件也足以减less你的恢复机会。 上面的build议是好的,但要确保你把它们作为一个从属的磁盘来做。 使用Live CD或通过在另一个系统上连接和安装磁盘。

至于程序。 如果你觉得这是一次性的,那就把它当成是一个教训。 如果您担心可能会重启,请更改root密码并实施严格控制的sudo( http://aplawrence.com/Basics/sudo.html

之后,我不会相信系统,直到从头开始重新安装。 你可能会回到一个可行的状态,但它更安全。

如果你丢失了一两个文件,删除的工具可以工作,但是如果删除了这么大的一部分数据,我不认为追逐这将会是一个有效的时间使用。

复制来自另一个系统的文件的build议可能让你备份和去,但可能会让你的系统处于“不纯”状态,而不是所有的东西都回到它所属的地方。

我的build议是干净安装到另一个磁盘(或另一台计算机),然后手动挂载旧的驱动器(或用一张live CD启动旧电脑)并复制您的重要数据。

然后,把这当作一个警告,并且

  1. 确保你有一个自动,最新的“好数据”的备份,所以你再也不会遇到这种情况。
  2. 审查谁拥有系统的pipe理权限,并制定何时使用以及如何使用的政策。 你的同事是否需要以根的方式去做他们想做的事情?

尝试在其他地方安装与发行版相同的发行版(RHEL4),并在/ usr下手动复制重要的二进制文件和库。 尝试通过rpm -qa(rpm位于/ bin下,并将列表和可变的东西保存在/ var下,以便在一定程度上可能 )得到已安装软件包的列表。 从头开始重新安装是最好的select,但如果是重要的系统,这将会引发火灾。 那么周末就要到了,所以可能会很忙:)

关于预防:如果您创build名为“-i”(不带引号)的文件,将会阻止某人在该目录中rm -rf *,因为它会询问每个文件。 在testing目录中尝试。 你可以使用“touch -i”创build文件(双重hypen表示“不要将任何东西解释为选项”)。

您可以从其他相同的硬件和configuration服务器或机器复制整个/ usr目录。 它会工作。 但是只要确保你的符号链接和我们一样

我的build议是,在尝试重新安装,取消删除或恢复之前,您应该复制此光盘/光盘。 如果你有很好的备份,从备份中启动一张救援CD和恢复/ usr可能是相当安全的,但是如果你问这个问题,我假设你没有好的备份。 🙂

如果您希望在光盘上保留数据,请始终尝试在光盘副本上进行恢复,而不要使用原始光盘。