
1 ryd994 2018 年 12 月 4 日 via Android 从你说的流程来说,不能 这个问题 zfs 可解 |
2 Osk 2018 年 12 月 4 日 via Android 我觉得不能,最起码它可能受操作系统缓存的影响。主要是读取的文件本身可能就坏的。 btrfs raid 1 应该能解决这个问题:从磁盘读文件,计算 crc/hash,如果不一致,从 raid 镜像中尝试读取并校验,直到得到完整数据,否则 io error。btrfs 也支持 scrub,读取所有已有数据,利用 raid1 镜像和 crc 自动检测并修正写入不正确的数据或损坏的数据,两块盘只要不是同时坏同样位置的扇区应该都能抢救下。btrfs raid5 目前还不能用,有 bug。 |
4 whileFalse 2018 年 12 月 4 日 我记得扇区是有校验和的。理论上读出错数据是会重读的。 |
5 vempx OP @whileFalse 这个 URE 错误好像是校验和也无法发现的,似乎就是硬盘根本无法得知自己读错了。 |
6 gamexg 2018 年 12 月 4 日 微软的 ReFS 也可解决这个问题。 但是单盘就好别用这个,Refs 再碰到不可修复错误时直接删除出错文件来解决这个错误。 |