
葡萄酒神秘地停止工作了。我決定簡單地完全刪除並重新安裝 wine,但在執行此操作之前,我想確保我不會丟失我過去在 Wine 上保存和安裝的大量文件和程式。
我可以只備份 .wine foider 中的“drive_c”和“dosdevices”,然後完全刪除 .wine 目錄(rm -rf ~/.wine),再次安裝 wine,然後將備份的資料夾放回目錄?我能正常運作程式嗎?
另外,既然我已經在寫這篇文章了,我不妨補充一下我所知道的 Wine 出了什麼問題。
我使用的是 Ubuntu 12.04。大約一周前,Wine 工作正常,但神秘地停止工作了。
如果我執行 winecfg.exe,則該進程會執行(根據 top 命令),但螢幕上不會顯示任何內容。它只佔用了我的一個 CPU 的 100%。如果我執行 Winetricks 或嘗試在 wine 中執行 .exe 程序,也會發生相同的事情。頂部出現一個進程,佔用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。我透過添加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 位元支援。