最近,我的外部硬盘驱动器机箱出现故障(硬盘驱动器本身在另一个机箱中通电)。然而,结果是,它的 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) 客户需要一个外部驱动器的自动备份解决方案(每周异地)。我通常建议使用rsnapshot(或者可能推出自定义rsync
脚本),但这个问题稍微复杂一些。
基于 Arch Linux 的系统是无头的,因此该解决方案必须完全自动化,无需用户干预。
理想情况如下:
我提出的解决方案包括:
udev
规则自动安装驱动备份开始于:
udev
规则也触发了一个rsnapshot
脚本rsnapshot
后rsnapshot
退出,umount
是跑在驱动器上
可以移除通知硬盘驱动器的可能方法:
如果在任何时候发生错误,请向用户发送电子邮件并卸载驱动器。
ssh
钥匙?驱动器标签?