我编写了一个函数,该函数使用 CRC 校验和检查损坏的存档。
为了测试它,我只是打开了存档并使用十六进制编辑器对内容进行了加扰。问题是我不相信这是生成损坏文件的正确方法。
有没有其他方法可以创建“受控损坏”,因此它不会完全随机但可以模拟真实损坏的档案会发生什么?我从来没有故意破坏某些东西,所以除了随机打乱文件中的数据之外,我真的不确定该怎么做。
是否有任何通用的解决方案来检查文件是否损坏?例如,视频文件是否损坏,或压缩文件是否损坏等。
我有一个应用程序,它将搜索损坏的 FAT 文件系统并修复它。
为了测试应用程序,我需要一个损坏的文件系统。
什么是破坏 FAT 文件系统的良好且可重现的方法?例如,创建坏扇区。
位腐烂如何影响 LUKS 容器及其内部文件系统?
假设您有一个非常适合处理位腐烂的文件系统。现在将其放入 LUKS 容器中。如果位腐烂损坏了容器,我假设解密的文件系统将遭受大量损坏的原始字节/块。
LUKS 如何防范这种情况?
我突然需要恢复一个旧tar.gz文件,但是一旦我执行了:
tar -zxvf filename.tar.gz
Run Code Online (Sandbox Code Playgroud)
我明白了:
gzip: stdin: invalid compressed data--format violated
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud) 我正在编写一个涉及下载和操作文件的脚本,我想在处理文件之前确保文件不完整(例如由于连接断开)。
我经常只是把我的笔记本电脑放在suspend使用上xfce4-power-manager,虽然通常电池充满电直到下一次(当我插入充电器时),但有时我会忘记,一周左右后电池电量耗尽,笔记本电脑关闭自己倒下(有力地)。
在这些情况下,是否存在数据损坏的风险?我会假设没有,因为硬盘驱动器已经同步并在suspend.
此外,应该比较喜欢suspend,hibernate或者一些混合变种?
我有带电池电源的计算机,可以在断电后运行计算机大约一分钟。我想在断电后立即触发挂起到磁盘,以便稍后恢复。initrd(默认 Devuan initrd)在交换分区中寻找挂起签名,并在找到签名时从它恢复。我不确定在将数据写入交换分区时电源完全中断时会发生什么。当电池出现故障或系统在挂起时挂起时,可能会发生这种情况。系统会从损坏的交换分区恢复还是忽略交换分区?我认为第二个选项更好 - 错误卸载文件系统比损坏系统状态更好。
签名是在其他数据之后还是之前写入交换分区?它使用校验和吗?
我使用 Manjaro live CD 中的 KDE 分区管理器工具来缩小现有的 Linux Mint 分区并创建另一个分区来安装 Manjaro。
\n\n一切都很顺利,但是,看起来我的 Linux Mint 分区在这个过程中被损坏了。尝试启动它会将我发送到 initramfs。
\n\n这是输出e2fsck:
$ e2fsck -fy /dev/nvme0n1p6\ne2fsck 1.45.5 (07-Jan-2020)\nThe filesystem size (according to the superblock) is 32907264 blocks\nThe physical size of the device is 22641408 blocks\nEither the superblock or the partition table is likely to be corrupt!\nAbort? yes\nRun Code Online (Sandbox Code Playgroud)\n\n这是输出lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nnvme0n1 259:0 0 238,5G 0 disk \n\xe2\x94\x9c\xe2\x94\x80nvme0n1p1 259:1 0 260M 0 part …Run Code Online (Sandbox Code Playgroud)