GalGame 存储与备份导论
galgame吧
全部回复
仅看楼主
level 7
neteroster 楼主
最近在吧里看到看到一些朋友因为硬盘损坏导致珍藏的 Gal 丢失,深感痛心。
也有一些同学发帖询问备份 Gal 的方式,底下回复质量参差不齐,很难有参考意义。
我在各种文件,包括 ACGN 制品备份上研究了算是有好几年了,希望通过本贴抛砖引玉,让大家更好的存储自己心爱的作品以便未来某时的需要。
注:本文将不讨论“备份、存储 GalGame 是否有必要、有意义”这一问题。大家可以根据需要自行参考。
注 2:不愿意阅读背景,只希望了解方法的同学可以从 2. 开始阅读。
注 3:关键点用 【】 标注。
2023年08月25日 03点08分 1
level 7
neteroster 楼主
0. 引言与目的
本文的目的在于简述“如何以适当方式备份 GalGame 及其附属制品”这一问题。本文主要讨论存储即备份策略问题,虽然将会提到部分的具体的实现细节,但详细实现需要由读者自行处理。
1. 存储与备份的基本问题
* 使得目标文件准确无误存储与适当介质上并在任何有需要的时候读取使用,为之“存储”。
* 使得目标文件准确无误的归档于不同于其存储位置的某处,并在其“存储”损毁时有能力进行还原,为之“备份”。
许多有经验的同学都会有意识地使用一部分存储与备份技巧,然而大部分用户却缺乏对存储、备份“完整性”的认识。
所谓“完整性”,也可以说是“准确性”。举个例子,一个文件存储在硬盘上,虽然可以读取,但是很多时候我们却经常忽略了一个基本问题:“我们读取的文件是
正确的
吗?”,换句话说,“我们读取的文件就是我们存储时的那个吗?”。答案是不一定。具体将在下面部分详细讨论。
2023年08月25日 03点08分 2
好啊,楼主比我讲的好多了,我本来也想开一个这种帖子的,现在就不在你这班门弄斧了
2023年08月25日 04点08分
level 7
neteroster 楼主
2. 存储 GalGame
GalGame 通常是一系列可执行文件与资源文件的组合。
2.1 一般的存储方案
一般用户有可能会选择【直接将未经任何归档处理的 GalGame (即散文件形式,无归档无压缩)直接置于硬盘中分类存储】,这样当然有很多好处,其中最明显的优势就是随开随玩,增删改方便。
这样做也包含了一些缺点,显著的包括:
* 如无额外备份,文件部分损毁时,无法准确获得正确的 GalGame 本体,进而导致游戏无法启动或闪退、游戏资源无法正确呈现等问题。(关于文件为何可能部分损毁,可参阅附录。)
* 传输时,由于零散文件多,显著降低传输效率(特别是对于机械硬盘参与的传输过程)。
2.2 推荐的存储方案
通常来说,【如果存在额外的备份,或者存储的文件并不是那么重要,那么 2.1 中一般的存储方案是可以接受的】。
然而,如果无额外的备份,【通常推荐使用 WinRAR 压缩工具对目标 GalGame 进行压缩,在这过程中最重要的是使用 WinRAR 中 RAR 格式的的“恢复记录”功能,通常建议添加 10% 左右】。
WinRAR 的“恢复记录”功能几乎是当前 Windows 平台唯一可用的,较为现代的文件纠删码功能,其内部使用 Reed-Solomon 纠删码,也是在各种通信系统和带校验存储系统中久经考验的纠删码。
添加恢复记录使得目标压缩文件在部分损毁时仍然可以通过纠删码中的冗余数据恢复正确的目标数据。另外,通过使用压缩文件保存目标文件,我们还获得了自动的“可校验性”:解压时压缩软件自动通过验证文件哈希判断目标文件的完整性。
【推荐工作流】:
1. 获得 GalGame 文件后,立即使用 WinRAR 归档文件,并添加 10% 恢复记录并存储。如果存储在不受信任的介质(例如网盘),可以进一步添加密码。
2. 需要游玩时,解压获得源文件即可。
3. 如果文件出现部分损毁,由于 WinRAR 也带有校验功能,解压时将会出现提示。用户注意到损坏提示后,使用恢复记录功能尝试恢复文件。若成功,继续解压完成原流程,若无法恢复则可确认文件不可恢复性的损毁,若有备份源,可从备份源恢复游戏。
2023年08月25日 03点08分 3
我来补充一点,在进行加密压缩的时候,记得勾选“文件名加密”,否则的话是有可能直接通过里面的文件来破解压缩包的。而且也有可能直接通过里面的文件名,就知道里面是违禁文件
2023年08月25日 04点08分
@望天型巨树 感谢补充[哈哈],确实如果存在百度云这样的网盘最好是文件名也要加密,不然很容易和谐
2023年08月25日 05点08分
我查到资料了,如果使用的是zip压缩,并且压缩算法选择了ZipCryto,那么就能直接根据压缩包里的某个已知文件,明文破解,秒破整个压缩包!
2023年08月29日 08点08分
@望天型巨树 虽然现在一般的压缩软件压缩zip格式,都是使用ace256加密算法,但是不排除有哪些奇葩的压缩软件,而且zip也不能勾选文件名加密,所以就不推荐使用了。
2023年08月29日 08点08分
level 7
neteroster 楼主
3. 备份 GalGame
【推荐的备份方案】:如果采用 2.2 推荐的存储方案,备份时可以直接将压缩包复制到任意其他介质。这样一来,备份仍然是可校验、有冗余的。如果采用 2.1 中的方式存储,则首先使用 2.2 中的推荐存储方案获得压缩文件,再进行备份即可。
如果使用这种方案,备份的使用与还原较为简易,在这里不再叙述。
2023年08月25日 03点08分 4
level 7
neteroster 楼主
4. 不推荐的方案
不推荐任何没有经验的用户自行搭建 RAID 平台获得所谓的“存储安全性”,理由如下:
* RAID 不是备份,这一点已经被广泛讨论。最简单的例子是,假如你的存储设备感染病毒,那么即使 RAID 也无法保证文件安全。
* 一般的硬件 RAID,以及部分软件 RAID,都无法校验文件完整性。硬盘或内存出现静默错误时,文件将损毁而用户将不会获得任何提示信息。
* 若策略不当,没有仔细考虑硬盘的 URE 以及 RAID 关系,可能具有较大概率造成 RAID 恢复时存储文件全部损坏。
* 使用硬件 RAID 需要花费额外成本,在操作上也比较复杂。
几乎唯一的例外是使用例如 ZFS 或 BTRFS 等先进文件系统搭建软 RAID,这些文件系统带有完整性校验功能,而且在存储安全性上做过充分考虑。尽管如此,备份仍是必要的。
2023年08月25日 03点08分 5
关于raid磁盘阵列,可以参考硬件茶谈的这期视频BV1VJ411s7T5。关于zfs和raidz,可以参考这期视频BV17T411Z77G。但是除非你有几十T的文件需要妥善保存,否则不建议搞这些东西,对一般玩家来说太复杂了
2023年08月25日 05点08分
@望天型巨树 是的,很多人错误理解 RAID 的用途。RAID 最根本的考量其实是高可用而不是备份或者说数据安全。即使具有大量数据(例如超过50T),不需要高可用的话 RAID 也非必要。自动化的增量备份通常足够。
2023年08月25日 06点08分
level 7
neteroster 楼主
5. 附录与进阶
5.1 为什么存储的文件可能会发生损坏?
许多原因可能造成这一点,例如即使现代的机械硬盘仍然有概率出现 URE,即无法由硬盘本身修正的数据错误,这会导致文件的静默损毁。
固态硬盘也可能出现无法恢复的损坏,如果主控处理得当,用户将在文件操作时获得 IO 错误的提示。当然,也无法排除某些主控直接返回错误数据的情况。
其他的可能性包括计算机软件无意或恶意地修改存储的文件导致损坏等。
另外,若处理不当,文件在传输,特别是涉及网络的传输时更容易损坏。具体原因不在此详细叙述。
当然,事实上文件的损坏概率并不高,所以 2.1 的方案是可以接受的。但是对于需要长时间存储并可能经过大量传输的备份,必须考虑文件的损坏。
5.2 对于进阶用户可以考虑的方案
对于存储设备具有 GNU/Linux 或 BSD 系操作系统的用户,可以通过使用 ZFS 文件系统存储目标文件,这样可以在不压缩文件的同时获得即时的存储完整性的保证。ZFS 还具有快照、块克隆、文件系统传输等现代功能,可以方便存储与备份。
对于有一定命令行软件使用能力的用户,可以考虑使用开源备份软件 restic 备份目标文件。它在备份中提供加密、备份校验、快照管理、自动去重等重要的现代备份功能,并且可以备份到多种介质包括各种本地文件系统与在线存储。
6. 结语
GalGame 对很多玩家来说都是很重要的东西,希望我们都能妥善的管理自己喜爱的 GalGame。
2023年08月25日 03点08分 6
也有木马病毒以及杀毒软件误杀的原因。[睡觉]我15年前的部分游戏本体,不用压缩包,很多已经丢失exe文件了
2023年08月25日 03点08分
@IKAº 是的,这也是很重要的原因。所以对于要长期保存的文件,最好还是要打包且加点 WinRAR 的恢复记录,最好还有备份。
2023年08月25日 03点08分
1