一位朋友(非技术人员)有一台运行 CentOS 的 Linux 服务器,无法再启动。他的 IT 人员查看了它,说根分区上的 inode 表基本上已经消失了。他说,由于 inode 表消失了,他们无法进入系统。有没有办法恢复 inode 表以重建文件系统?最重要的是,没有备份,而且它托管着一个巨大的 Mailman 电子邮件列表,他想检索这些列表。需要哪些 Linux 工具才能做到这一点?我可能会自己物理访问系统,所以我想知道检索其中的数据是否是徒劳的。谢谢!
答案1
可能是超级块损坏了,而不是与 inode 有关的任何内容损坏了。幸运的是,Linux 系统上使用的最常见文件系统 (ext[234]) 会在设备上写入许多超级块副本。
为了测试该理论,请从恢复 CD(或系统救援光盘)并执行以下操作
mke2fs -n /dev/sda1
(或任何设备名称)
非常-n
重要!如果省略它,mke2fs
将创建一个新的文件系统。-n
它将显示它本来要使用的参数,但实际上不会写入任何内容。最重要的是,它将显示超级块应该所在的块列表。然后,您可以尝试使用其中一个备选超级块,方法是尝试按如下方式挂载文件系统:
mkdir/测试 mount -o sb=[超级块位置] /dev/sda1 /test