Guru数据恢复邮件记录-2018


  • 以下内容整理自前实验室服务器管理员们的邮件:

服务器存储与数据恢复记录(2018-01-12)

邮件原文来自 hujian5241:

我们的 sanzi 服务器外挂 40T 存储和 guru 服务器最新外挂的 8T12 存储为 xfs 格式,guru 自带存储为 1.8T24,ext4 格式存储。

这次数据恢复非常幸运的是 16 年给 guru 装机的时候,装机人员没有成功分区,后来我自己通过 gparted 图形交互界面将 guru 自带存储分为了 ext4 格式。ext2/3/4 格式会 180 天滚动的自动备份多份文件结构表,小沈的 dd 命令会破坏文件结构表等重要数据,并且写了 10G 的数据,虽然相对于 1.8T*24 的整个 raid 来说不算很大,但也损坏了自动备份的 25 份文件结构表中的绝大多数。

如果存储容量小,比如我们在测试机上用 1T 硬盘测试的时候,同样用 dd 写了 10G 的数据,就无法恢复了,可能导致所有的结构表的备份都被破坏。


数据恢复的具体操作步骤

1. 升级 e2fsprogs

由于软件限制的原因,ext4 不支持 16T 以上分区(ext4 格式本身支持),因此先升级 e2fsprogs。

1
2
3
4
git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
cd e2fsprogs
./configure
make && make install

2. 查找 ext4 格式自动备份的 superblock 所在 block 位置

命令:

1
mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -n /dev/sda5

说明:

  • -n 参数必须加,否则是格式化;
  • -O 后面参数是针对 > 16T ext4 分区;
  • /dev/sda5 是我们挂载在 /home 下的分区名称。

部分输出结果:

Creating filesystem with 9875249664 4k blocks and 2468814848 inodes
    Filesystem UUID: dc46c4d8-94ef-4813-ad04-ddb7d5e3f40e
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
    2560000000, 3855122432, 5804752896

3. 磁盘检测、校验和修复

命令示例:

1
e2fsck -b 20480000 /dev/sda5

说明:

  • -b 20480000 是上一步命令中找到的 superblock 备份所在的 block 位置之一;
  • 需要挨个试,有的也可能损坏;
  • 建议 不要加 -y 参数,否则会自动修复,无法看到过程中的问题提示;
  • e2fsck 一共 5 个步骤,成功修复过程中没有任何 error 输出。

4. 挂载硬盘

命令:

1
mount -t ext4 /dev/sda5 /home

说明:

  • -t ext4:指定挂载 RAID 的格式为 ext4,别写错。

杨总的碎碎念

Linux 运维水实在非常深,几个工程师也只能说知道一点给点建议(当然也有可能数据恢复风险大,都不敢尝试,也就不愿意讲太多给自己添麻烦)。

看来以后:

  • 至少在对服务器修改架构等操作之前需要备份一下系统,提前一天做好就可以;
  • 对数据的备份需要狡兔三窟,最好线上线下都有一份,以减少系统性风险,假如医学楼真起火了呢【乌鸦嘴呸呸呸】;
  • 代码就更要云笔记存一份,非常方便。

关于百度云备份

百度云备份的话,要不买个年费超级会员吧,年费也只需要 269 元,对容量和传输速度都有很大提升。就相当于买个保险嘛,绝对值得。当然这个账号的管理也要注意,别买了又忘记存。

这次撞大运了,今年不发两篇大文章实在说不过去吧 😄😁


老江的回复

我也希望今年实验室能发大文章!大家一块努力!你说的百度云我想想。

updatedupdated2025-05-092025-05-09