Wine 停止工作了。如何重新安装而不丢失数据

Wine 停止工作了。如何重新安装而不丢失数据

Wine 莫名其妙地停止工作了。我决定简单地完全删除并重新安装 Wine,但在这之前,我想确保我不会丢失过去在 Wine 上保存和安装的大量文件和程序。

我是否可以只备份 .wine 文件夹中的“drive_c”和“dosdevices”,然后完全删除 .wine 目录 (rm -rf ~/.wine),再次安装 wine,然后将备份文件夹放回目录中?我能否正常运行程序?

此外,既然我已经在写这篇文章,我也应该补充一些我所知道的有关 Wine 出了什么问题的信息。

我使用的是 Ubuntu 12.04。大约一周前 Wine 运行良好,然后莫名其妙地停止了工作。

如果我运行 winecfg.exe,进程会运行(根据 top 命令),但屏幕上什么也不会出现。它只是占用了我一个 CPU 的 100%。如果我运行 Winetricks 或尝试在 wine 中运行 .exe 程序,也会发生同样的事情。一个进程出现在 top 中,占用了 CPU,但什么也没发生。

如果我通过终端运行 wine,结果如下:

user@computer:~/Downloads/SpaceEngine 0.97/system$ wine SpaceEngine.exe 
modify_ldt: Invalid argument
modify_ldt: Invalid argument
modify_ldt: Invalid argument
modify_ldt: Invalid argument
modify_ldt: Invalid argument
err:seh:raise_exception Exception frame is not in stack limits => unable to dispatch exception.

我尝试更新 wine,但没有任何效果。所以最好删除安装并重新开始。那么我如何确保不会丢失数据?

答案1

我在 Ubuntu 12.04.4 LTS x86_64 上,内核为 3.11.0-24-generic,wine-1.7.18。我通过添加 before 行解决了这个问题 echo 1 > /proc/sys/abi/ldt16/etc/rc.local重启exit 0后,我可以安装 win16 程序。

答案2

我修复了它。我不知道哪里出了问题 - 但我复制粘贴了整个 .wine 目录作为备份。然后我删除了整个 .wine 目录,重新安装了 wine,并只放回了 drive_c 和 dosdevices 文件夹。

现在效果很好!

我不知道这些答案是否与我的问题相关,或者如果我尝试它们是否会有所帮助 - 但我所做的效果很好。

只需备份并重新安装。

答案3

您很可能正在尝试在最近更新的 64 位 Linux 内核上运行 16 位 Windows 可执行文件。

支持16 位段被暂停由于安全问题,在 64 位 Linux 系统上无法使用。

此事最近被广泛WineHQ 论坛上讨论并且已经已报告错误

目前,还没有万无一失的解决方法。您必须等待 wine 或内核更新。

尽管如此,32 位 Linux 系统并不受到影响。

答案4

只需运行

$ echo 1 > /proc/sys/abi/ldt16

然后通过 wine 启动你的应用程序。这将暂时启用内核中的 16 位支持。

相关内容