当前位置: 首页 > 知识库问答 >
问题:

Minecraft Basefics(WIN10)world因缺少数据库/清单文件而损坏

景元徽
2023-03-14

我最近遇到了一个非常具体的问题,导致我的Minecraft基岩世界损坏(我的世界中确实缺少整块)。事实证明,这个问题是因为我使用了通过7zip创建的备份,使用命令:

7z.exe a -r minecraftWorlds.7z %LOCALAPPDATA%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftWorlds\*.*

…它没有添加没有扩展名的文件,特别是{worldID}/db目录中的清单文件。

我不得不卸载Windows 10版的《我的世界》,因为它删除了所有资源包并保存了世界。但我觉得我很好,因为我有一个每天备份的脚本。所以我重新安装了《我的世界》并恢复了我的备份,然后加载了我的世界,就像我说的,我的世界中缺少了整个块。

因此,我创建了一个新的世界,并将其保存文件夹与我还原的文件夹进行了比较,这时我注意到我的世界缺少了db子目录中的清单文件。

在我的调查中,我发现了许多可能修复已损坏世界的方法,但它们都与已损坏的<代码>级别有关。dat文件,没有关于db目录中丢失文件的任何信息。

由于这些丢失的MANIFEST文件,MCCToolbox等工具甚至无法打开世界数据文件

那么有什么要做的吗?


共有1个答案

彭弘伟
2023-03-14

首先,使用7-zip备份Minecraft基岩(Windows 10)世界的正确命令是:

7z.exe a -r minecraftWorlds.7z %LOCALAPPDATA%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftWorlds\*

...最后没有“.*”。这将创建存储在您的minecraftWorlds目录中的所有文件的备份。

我做的研究越多,Minecraft世界数据似乎以名为level db的数据库格式保存。这是一个基于键/值对的数据库,加载到内存中并存储在{world ID}/db文件夹中的一系列文件中。

以下是我能够恢复工作MANIFEST文件并恢复我的世界的方式!

您需要一个POSIX操作系统。由于手头没有,我通过Ubuntu 18.04 LTS安装了“linux Windows子系统”,该软件可以从Microsoft商店应用程序免费安装。

安装、配置并启动此应用程序后,基本上会进入bash命令提示符。

  • 首先,安装构建工具
sudo apt-get install git cmake g++ libsnappy-dev
  • 下载并构建level db:
git clone --recurse-submodules https://github.com/google/leveldb.git
cd leveldb && mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .

一旦构建成功,您将需要使用您最喜欢的linux编辑器创建以下c程序,并将文件另存为ldbrpr。抄送:

#include <cstdlib>
#include <leveldb/db.h>

int main(int argc,char *argv[])
{
    if(argc==2)
    {
        leveldb::Options o;
        leveldb::Status s=leveldb::RepairDB(argv[1],o);
        return s.ok()?EXIT_SUCCESS:EXIT_FAILURE;
    }
    else return EXIT_FAILURE;
}

保存文件后,需要对其进行编译。

g++ -o ldbrpr ldbrpr.cc -lleveldb -lpthread -L ~/leveldb/lib -I ~/leveldb/include

执行此命令后,您应该会找到一个名为:ldbrpr的可执行文件

ls -las

现在需要为每个world save文件夹执行此程序。这是通过以下命令完成的:

./ldbrpr /mnt/c/Users/DEV/AppData/Local/Packages/Microsoft.MinecraftUWP_8wekyb3d8bbwe/LocalState/games/com.mojang/minecraftWorlds/{worldsavefoldername}/db

将{world savefoldername}替换为您要恢复的每个世界的文件夹名称。如果您没有运行windows子系统for linux,路径可能会有所不同。如果您在不同的机器或VM上运行这些命令,则需要将全局保存文件夹复制到该实例。

现在,接下来的部分至关重要。Minecraft使用专有版本的level db,因此它看起来只恢复一个数据文件,并将所有其他数据文件放入名为丢失的子目录中。

由于我们的数据文件实际上没有损坏,只有我们的MANIFEST文件,在Windows资源管理器中打开每个世界保存文件夹,并在db子文件夹中,删除*. ldb文件和LOG文件。这应该只剩下两个MANIFEST文件和一个名为丢失的文件夹。现在将db\丢失文件夹中的所有文件复制回db文件夹。

现在启动Minecraft,你的世界应该加载良好。

 类似资料:
  • 问题内容: 我重置了本地flask环境,但是没有通过捕获它的依赖项,pip freeze然后再将其删除。因此,我不得不重新安装整个堆栈的最新版本。 现在,我突然无法使用表单进行验证了。Flask声称CSRF将丢失。 第一次发送Get邮件时,我按预期检索了一个空邮件。现在,我填写表格并提交并form.errors显示: 真奇怪 我想知道Flask-WTF是否已更改,并且使用错误。 我可以清楚地看到存

  • 问题内容: 跑步的时候我得到了。我的项目名为,目前正在开发一个名为的应用。 请注意,此错误是在相对较新的Django提交中添加的:固定#24452-固定了带有嵌套路径的HashedFilesMixin正确性。。 fellow_go / settings.py assistant_go / urls.py 我有一个favicon.ico文件: 奇怪的是,没有错误发生python manage.py

  • 问题内容: 我们有一个Maven多模块项目,其中包含一个父级(HelloWorld)和不同的子级(HelloWorldServices和HelloWorldPresentation),并使用Jenkins进行构建。 运行成功的测试后的错误是 前面的线说 这是我定义父pom JaCoCo插件的方式: 我没有明确提到过surefire。我还尝试了到处都可以找到的将argLine放入配置中的结果,但是所

  • 我有两个主要的Grails项目。项目“A”是在生产中使用Grails 2.0.4开发的,项目“B”仍然是一个原型,是使用GGTS使用Grails 2.2.4开发的。我有一个脚本,当在两个版本的Grails之间切换时,我运行它来快速更改我的和变量。在我决定在GGTS中玩并打开项目“A”之前,这一直运行良好。我最近还将Java从1.6升级。0_18x86到1.7。0_25x64。现在有些东西阻止了Gr

  • 我想知道如何构建我的APK,以便在安装APK时在下安装/复制我的库。 > 我正在使用Android Studio 4.0.1 我构建了一个APK,并在提取它时确认我有一个文件夹,其中包含我的jni库。 我希望在安装APK之后,同一设备上的一些其他应用程序可以访问我在中的库。文件夹似乎是合适的位置,因此我的问题;如果有另一种方法可以让我的库在设备上访问,我是开放的。 基于此讨论,我在文件中设置了,尽

  • 问题内容: 我刚刚下载了Grails 2.0.4,并将其解压缩到/opt/grails/grails-2.0.4/,并确保GRAILS_HOME环境变量正确。但是,每当我尝试运行“ grails”命令时,都会出现以下错误: 我不明白这可能是什么问题。我已经在完全相同的机器上以完全相同的方式成功使用Grails-2.0.1了几个月。我尝试重新下载grails-2.0.4.zip文件,希望它是存档的问