vdmfec - 云端在线

这是 vdmfec 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


vdmfec - 阻止文件的 ECC

概要


虚拟机 [-v] [-d] [-b 块大小] [-n N] [-k K] [文件]
vdm_编码 [-v] [-b 块大小] [-n N] [-k K] [文件]
vdm_解码 [-v] [-b 块大小] [-n N] [-k K] [文件]

商品描述


虚拟机 读取输入流并添加纠错块,以便大的连续
输出流的部分可能已损坏,并且数据已恢复。 例如,
磁盘通常会立即丢失整个扇区,或相关的扇区组,甚至
整个曲目。 使用此程序写入软盘的数据可能会被恢复
许多读取错误。

使用的算法是基于 Vandermonde (VDM) 的前向纠错 (FEC) 码
由于 Luigi Rizzo,GF(2^8) 中的矩阵。 给定 FEC 参数 K 和 N,其中 N 更大
比 K,对于每 K 个输入块写入 N 个块,这样任何 K 个块都是
足以重建数据。 也就是说,每组 N 中最多有 N - K 个块
块可能会丢失而不会丢失数据。

通过改变 K.N 和
blocksize 控制写入的数据总量。 根据您的错误类型
期望,不同的设置可能或多或少有用。 例如,您可能不希望
每个轨道上都有两到三个坏扇区(如果你这样做了,是时候更换
软盘!),但您可能会在两个或三个连续磁道上看到三个坏扇区
(软盘错误往往成群结队)。

配置


-v 打印有关编码或解码过程的信息性消息以 斯特德,
包括膨胀系数。 用 -vv 获取有关每个块的信息
读或写。

-d 解码输入而不是编码它。 使用此选项等效于
调用程序作为 vdm_解码.

-b 块大小
将 FEC 块大小设置为块大小字节。 块大小可能有“k”或“K”
附加,在这种情况下,块大小设置为块大小 * 1024 字节。 这个
通常应该是输出媒体块或扇区大小的倍数(例如,512、
1024、18K 等),并且在版本 26 中必须至少为 1 个字节。默认为 1024。

-n N -k K
设置 FEC N 和 K 参数。 N 必须大于 2 且小于或等于
256. K 必须大于 0 且小于 N。默认 N=18,K=14。

请注意,N、K 和块大小参数不会写入输出! 你必须
指定 运行解码器时的参数。 (其实解码器是有能力的
明确检测到无效的 K 值,但不正确的块大小或 N 值将
导致坏块和解码失败。)

解码器能够从不可查找的媒体(例如管道)中读取,但是,缓冲区
未检测到欠载将导致故障。 此外,当从管道读取时
必须读取整个文件。 从可查找流中读取会更快,因为只有 K
需要读取 N 个中的好块。

编码器存储用于检测无序块的块和块 ID,但
这些错误(有时可能由于文件系统损坏而发生)没有得到纠正。
唯一可以纠正的错误类型是 in 地方 数据损坏。 在
特别是,丢失的块(如丢失的数据包)会导致解码失败,即使 K
好块可用。 该程序主要用于恢复由于以下原因丢失的数据
读取磁盘等固定媒体上的错误; 其他几个程序和库是
可以使用 FEC 来处理其他(通常是网络数据包)错误。

示例


考虑有 80 个磁道、2 个磁头和每磁道 18 个 512 字节扇区的软盘(标准
1.44MB 软盘)。

bzip2 < 文件 | vdmfec > /dev/fd0

使用 -b1k -n18 -k14 的默认参数,最多可存储 ~1.1MB 的压缩输入
数据,一次写入一个(双面)磁道 (18K),并允许 4 个坏簇(8
扇区)每个轨道。

vdmfec -d /dev/fd0 | bunzip2 > 文件

恢复原始文件。

vdm_encode -b18k -n80 -k70 file.img > /dev/fd0

写入整个软盘,最多存储约 1.23MB 的数据,并允许在 10 个磁盘上出现多个错误
不同的双面轨道。

vdm_decode -b18k -n80 -k70 /dev/fd0 > file.img

恢复数据,读取不少于70条磁道。 请注意, vdm_decode 以
失败时的非零状态,以便构造如

vdm_decode /dev/fd0 > moo && tar -xvf moo

是可能的。

dd if=/dev/tape ibs=1024 conv=noerror,同步 |
vdm_decode > 文件

这可能是从某些不可查找的媒体中恢复数据所必需的。 你当然可以
只需将编码输出写入普通文件,如

tar -cf - 目录 | 压缩包| vdm_encode -v > dir.tgz.vdm

REPORTING BUGS


向 Tom Holroyd 报告错误tomh@po.crl.go.jp>.

使用 onworks.net 服务在线使用 vdmfec



最新的 Linux 和 Windows 在线程序