小编tlv*_*nce的帖子

恢复 ext4 超级块

最近,我的外部硬盘驱动器机箱出现故障(硬盘驱动器本身在另一个机箱中通电)。然而,结果是,它的 EXT4 文件系统似乎已损坏。

该驱动器具有单个分区并使用 GPT 分区表(带有标签ears)。

fdisk -l /dev/sdb 显示:

   Device Boot      Start         End      Blocks   Id  System
     /dev/sdb1          1  1953525167   976762583+  ee  GPT
Run Code Online (Sandbox Code Playgroud)

testdisk 显示分区完好无损:

1 P MS Data                     2049 1953524952 1953522904 [ears]
Run Code Online (Sandbox Code Playgroud)

...但分区无法挂载:

$ sudo mount /dev/sdb1 a
mount: you must specify the filesystem type
$ sudo mount -t ext4 /dev/sdb1 a 
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
Run Code Online (Sandbox Code Playgroud)

fsck 报告无效的超级块:

$ sudo fsck.ext4 /dev/sdb1            
e2fsck 1.42 (29-Nov-2011)
fsck.ext4: Superblock invalid, trying backup blocks... …
Run Code Online (Sandbox Code Playgroud)

filesystems ext4 data-recovery superblock

57
推荐指数
2
解决办法
24万
查看次数

自动增量备份到外部驱动器

背景

客户需要一个外部驱动器的自动备份解决方案(每周异地)。我通常建议使用rsnapshot(或者可能推出自定义rsync脚本),但这个问题稍微复杂一些。

基于 Arch Linux 的系统是无头的,因此该解决方案必须完全自动化,无需用户干预。

理想情况如下:

  1. 用户插入 USB 硬盘
  2. 进行了完整的增量备份
  3. 硬盘已卸载
  4. 通知用户可以拔下硬盘驱动器

提议

我提出的解决方案包括:

  1. 一个udev规则自动安装驱动
  2. 备份开始于:

    1. 同样的udev规则也触发了一个rsnapshot脚本
    2. 一个inotify的 创建事件检测到新的安装点和触发器rsnapshot
  3. rsnapshot退出,umount是跑在驱动器上

  4. 可以移除通知硬盘驱动器的可能方法:

    1. CD 驱动器打开
    2. 声音通过 PC 扬声器播放

如果在任何时候发生错误,请向用户发送电子邮件并卸载驱动器。

问题

  1. 我的提议看似可行,但是否存在明显缺陷?我怎样才能使它健壮?
  2. 为了安全起见,我如何确保插入的硬盘是用户的?ssh钥匙?驱动器标签?
  3. 是否存在包含此内容的现有(Linux)解决方案?

scripting backup rsync

8
推荐指数
1
解决办法
1562
查看次数