导读

这篇详细的指南将向你展示如何在 Linux 和 Windows 之间共享 Steam 的游戏文件以节省下载的总用时和下载的数据量。我们将展示给你它是怎样为我们节约了 83% 的数据下载量。

假如你决心成为一名 Linux 平台上的玩家,并且在 Steam 上拥有同时支持 Linux 和 Windows 平台的游戏,或者基于同样的原因,拥有双重启动的系统,则你可以考虑看看这篇文章。我们中的许多玩家都拥有双重启动的 Linux 和 Windows。有些人只拥有 Linux 系统,但同时拥有当前还没有被 Linux 平台上的 Steam 支持的游戏。所以我们同时保留这两个系统以便我们可以在忽略平台的前提下玩我们喜爱的游戏;幸运的是 Linux 游戏社区应运而生,越来越多在 Windows 平台上受欢迎的 Steam 游戏也发布在 Linux 平台上的 Steam 中。我们中的许多人喜欢备份我们的 Steam 游戏,使得我们不再苦苦等待游戏下载完成。这些游戏很大程度上是 Windows 平台下的 Steam 游戏。

现在,很多游戏也已经登陆了 Linux 平台上的 Steam,例如奇异人生(Life is Strange)、古墓丽影 2013(Tomb Raider 2013)、中土世界:魔多阴影(Shadow of Mordor)、幽浮:未知敌人(XCOM: Enemy Unknown)、幽浮 2、与日赛跑(Race The Sun)、公路救赎(Road Redemption)、燥热(SUPERHOT)等等,并且这份名单一直在增长。甚至还有杀出重围:人类分裂(Deus Ex: Mankind Divided)和疯狂的麦克斯(Mad Max)!!!在一些游戏的 Windows 版发布之后,现在我们不必再等候多年,而只需等待几月左右,便可以听到类似的消息了,这可是大新闻啊!

下面的实验性方法将向你展示如何使用你现存的任何平台上游戏文件来在 Steam 上恢复游戏的大部分数据。对于某些游戏,它们在两个平台下有很多相似的文件,利用下面例子中的方法,将减少你在享受这些游戏之前的漫长的等待时间;我们将一步一步地尝试利用 Steam 自身的备份与恢复功能或者以手工的方式来达到我们的目的。当涉及到这些方法的时候,我们也将向你展示这两个平台上游戏文件的相同和不同之处,以便你也可以探索并做出你自己的调整。

下面的方法中,我们将使用 Ubuntu 14.04 LTS 和 Windows 10 来执行备份与恢复 Steam 的测试。

1、Steam 自身的备份与恢复

当我们尝试使用 Windows 平台上 Steam 中《燥热(SUPERHOT)》这个游戏的备份(这些加密文件是 .csd 格式)时,Linux 平台上的 Steam 不能识别这些文件,并重新开始下载整个游戏了!甚至在做了验证性检验后,仍然有很大一部分文件不能被 Steam 识别出来。我们在 Windows 上也做了类似的操作,但结果是一样的!

现在到了我们用某些手工的方法来共享 Windows 和 Linux 上的 Steam 游戏的时刻了!

2、手工方法

首先,让我们先看看 Linux 下这些游戏文件所处的位置(用户目录在 /home 中):

这是 Linux 平台上 Steam 游戏的默认安装位置。 .local 和 .steam 目录默认情况下是不可见的,你必须将它们显现出来。我们将推荐使用一个自定义的 Steam 安装位置以便更容易地处理这些文件。这里 SUPERHOT.x86_64 是 Linux 下原生的可执行文件,与 Windows 中的 .exe 文件类似。

下图展示的位置包含我们需要的大部分文件(在 Windows 和 Linux 平台上相同):

下面我们来看看这些 .acf 格式的文件: appmanifest_322500.acf 便是那个我们需要的文件。编辑并调整这个文件有助于 Steam 识别在 common 这个目录下现存的非加密的原始文件备份:

为了确认这个文件是一样的,用编辑器打开这个文件并检查它。我们越多地了解这个文件越好。这个链接是来自 Steam 论坛上的一个帖子,它展示了这个文件的主要意义。它类似于下面这样:

“AppState”

{

“appid” “322500”

“Universe” “1”

“name” “SUPERHOT”

“StateFlags” “4”

“installdir” “SUPERHOT”

“LastUpdated” “1474466631”

“UpdateResult” “0”

“SizeOnDisk” “4156100762”

“buildid” “1234395”

“LastOwner” “”

“BytesToDownload” “909578688”

“BytesDownloaded” “909578688”

“AutoUpdateBehavior” “0”

“UserConfig”

{

“Language” “english”

}

“MountedDepots”

{

“322503” “1943012315434556837”

}

}

在 Linux 平台上卸载游戏后我们再进行测试。现在让我们看看在 Windows 10 上相同的游戏安装目录里包含哪些内容:

我们复制了 SUPERHOT 目录和 .acf 格式的清单文件(这个文件在 Windows 的 Steam 上格式是一样的);在复制 .acf 文件和游戏目录到 Linux 中 Steam 它们对应的位置时,我们需要确保 Steam 没有在后台运行。在转移完成之后,我们运行 Steam 并看到了这个:

所以下图显示只需要有 235.5 MB 的文件需要下载,而不是整个 867.4 MB,这意味着超过 70% 的文件已经被 Steam 识别了:) !相对来说,节省了一笔大量的时间开销。当然不同的游戏可能有所不同,但对于那些网速居于平均水平或以下的玩家来说,这种方法绝对值得一试,尤其是考虑到当前那些 40-50 GB 大小的重量级游戏。

我们还进行了其他几种尝试:

(1)我们尝试使用 Linux 下原有的清单文件(.acf)和来自 Windows 的手工备份文件,但结果是 Steam 重新开始下载游戏。/li>

(2)我们看到当我们将 SUPERHOT_Data 这个目录中的 SH_Data 更换为 Windows 中的对应目录时,同上面的一样,也重新开始下载整个游戏。

理解清单目录的一个尝试

清单目录绝对可以被进一步地被编辑和修改以此来改善上面的结果,使得 Steam 检测出尽可能多的文件。在 Github 上有一个项目,包含一个可以生成这些清单文件的 python 脚本。任何 Steam 游戏的 AppID 可以从SteamDB 上获取到。知晓了游戏的 ID 号后,你便可以用你喜爱的编辑器以下面的格式创建你自己的清单文件 appmanifest_.acf。在上面手工方法中,我们可以看到 SUPERHOT 这个游戏的 AppID 是 322500,所以对应的清单文件名应该是 appmanifest_322500.acf。

下面以我们知晓的信息来尝试对该文件进行一些解释:

“AppState” // 应用(游戏)的状态

“appid” “322500” // 游戏的 AppID

“Universe” “1”

“name” “SUPERHOT” // 游戏的名称

“StateFlags” “4”

“installdir” “SUPERHOT” // 安装目录的名称

“LastUpdated” “1474466631”

“UpdateResult” “0”

“SizeOnDisk” “4156100762”

“buildid” “1234395”

“LastOwner” “” // 唯一的帐号拥有者的

“BytesToDownload” “909578688” // 将这个数字除以 1073741824(1024 x 1024 x 1024) 便可以计算出还需要下载的数据大小,以 GB 记。

“BytesDownloaded” “909578688” // 已下载数据的大小, 以 Bytes 记。

“AutoUpdateBehavior” “0” // 当这个设为 0 时,该游戏将自动升级。

“UserConfig” // 用户的配置信息

{

“Language” “english”

}

“MountedDepots” // 这个部分大多与游戏的 DLC 相关。

{

“322503” “1943012315434556837”

}

}

通过计算下载的数据的大小,你可以将它与 Steam 展现的信息进行比较并进行更多的调整。

linux更换steam目录,在 Linux 和 Windows 之间玩转 Steam 游戏相关推荐

  1. 在 Linux 和 Windows 之间玩转 Steam 游戏

    导读 这篇详细的指南将向你展示如何在 Linux 和 Windows 之间共享 Steam 的游戏文件以节省下载的总用时和下载的数据量.我们将展示给你它是怎样为我们节约了 83% 的数据下载量. 假如 ...

  2. linux怎么显示目录层次结构,Linux基础(层级结构、基础命令)

    一.Linux简介 linux的前生是unix.linux操作系统是由Linus Torvalds和世界各地的程序员们共同开发. 优点在于它的开源免费.构造简单,性能稳定. 二.linux和windo ...

  3. linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录

    原标题 : 每天一个linux命令(2):cd命令 Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命 ...

  4. linux修改挂载目录名字,linux下修改mount挂载目录名

    有时根据情况需要更改mount挂载目录名来保持多个机器的统一,方便我们的分布式操作,下面是具体的操作细节. 修改前: 文件系统       容量  已用  可用 已用%% 挂载点 /dev/mappe ...

  5. 修改linux ftp共享目录权限,linux系统下修改文件夹目录权限

    文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主 ...

  6. 街机linux有安卓好吗,Ubuntu下用xmame玩街机游戏

    Ubuntu下用xmame玩街机游戏 xmame是Windows下mame的Linux版,gxmame是xmame的图形化前端.mame号称是模拟效果最好.支持roms最多的模拟器,不过这个我就不清楚 ...

  7. linux只剩 目录挂载,linux(centOS7)的基本操作(五) 磁盘、分区、挂载、卸载

    linux的磁盘类型和分区简介 linux的磁盘分为IDE和SCSI,目前以后者居多. 1. IDE磁盘的分区:hd+盘号+分区数字 盘号 |-a:基本盘 |-b:基本从属盘 |-c:辅助主盘 |-d ...

  8. linux名词解释目录文件,linux的常识及术语解释

    linux的常识及术语解释 本站整理   发布时间:2009-03-10 10:42:18   作者:jb51.net   我要评论 一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 . ...

  9. linux确定刻录机目录,在Linux操作系统下使用DVD刻录机(转)

    在Linux操作系统下使用DVD刻录机(转)[@more@] 现在,越来越多的用户开始装备DVD刻录机.在Windows平台上使用DVD刻录机应该不存在什么问题,那么在Linux平台又应该如何使用DV ...

最新文章

  1. html经过一段时间自动交换图像,Dreamweaver交换行为:实现图像交换
  2. Caddi Programming Contest 2021(AtCoder Beginner Contest 193) 题解
  3. linux中副规则_Linux中的命名规范
  4. weblogic-wslt初探
  5. 如何在DOS下不显示输入字符
  6. CDH6.2.1安装Kafka出现的问题
  7. 概率论与统计学——学习资料(更新..........)
  8. html5在线拍照,h5调用html5拍照上传功能
  9. 数值计算值第四期:解线性方程组的扰动分析
  10. t999主页劫持/篡改木马
  11. Date对象之获取和设置月份getMonthsetMonth
  12. 比较大小教案计算机小朋友们,一年级数学下册第单元教案.doc
  13. 我国4种托盘的标准尺寸,托盘高度一般多少
  14. Davinci DM6446开发攻略——DSP开发工程建立
  15. 让思想在四维世界自由穿梭评《 时空投影:第四维在科学和现代艺术中的表达》...
  16. Linux系统Sudo命令的使用说明
  17. 自动控制理论基本概念
  18. java编写火车订票系统_毕业设计(论文)-基于JavaWeb技术的火车订票系统.doc
  19. 【元数据】饿了么元数据管理实践之路
  20. 45个英文论文写作神网站!

热门文章

  1. list @size 验证_python爬虫21 | 对于b站这样的滑动验证码,不好意思,照样自动识别...
  2. 将一维数组转换成矩阵
  3. Win10使用CMD命令关闭防火墙
  4. 【线程池】自行准备linux环境,带你手写线程池,只需仅仅150行代码|内存池|API|连接池|应用协议丨C/C++Linux服务器开发
  5. 计算机毕业设计django基于python图书馆借阅系统(源码+系统+mysql数据库+Lw文档)
  6. Spring Cloud学习:07消息总线(Spring Cloud Bus)
  7. AJAX 学习笔记[四] AJAX 对服务器返回的XML 的处理
  8. 微信小程序 获取绑定手机号码
  9. java游戏界面制作_软件设计之基于Java的连连看小游戏(二)——游戏基础界面的制作及事件的添加...
  10. 微软大佬带你深入解析websocket丨tcp自定义协议的设计丨服务器高并发场景的优化