2

Wine has mysteriously stopped working. I have decided to simple entirely remove and re-install wine, but before I do this I want to make sure that I will not loose any of the multitudes of files and programs I have saved and installed on Wine in the past.

Can I just backup "drive_c" and "dosdevices" inside the .wine foider, then entirely remove the .wine directory (rm -rf ~/.wine), install wine again, and then just plop the backed-up folders back in the directory? Would I be able to run the programs normally?

Also, since I am already writing this, I might as well add what I know about what went wrong with Wine.

I am on Ubuntu 12.04. Wine worked fine about a week ago, and mysteriously stopped working.

If I run winecfg.exe, the process runs (according to top command), but nothing appears on screen. It just takes up 100% of one of my CPUs. The same exact thing happens if I run Winetricks or try and run a .exe program in wine. A process appears in top, takes up CPU, but nothing happens.

If I run wine through terminal, the results are as follows:

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.

I tried updating wine, but that did nothing. So might as well just wipe the install and start again. So how do I be sure I don't loose data?

2

I'm on Ubuntu 12.04.4 LTS x86_64 with 3.11.0-24-generic kernel, wine-1.7.18. I solved this issue by adding echo 1 > /proc/sys/abi/ldt16 to /etc/rc.local before exit 0 line. After reboot I can install win16 programs.

1

I fixed it. I don't know what went wrong - but I copy-pasted the whole .wine directory as a backup. Then I deleted the whole .wine directory, re-installed wine, and put back in ONLY the drive_c and dosdevices folders.

Works great now!

I don't know if either of those answers are relivant to my problem, or would have helped had I tried them - but what I did worked fine.

Just backup and re-install.

1

You are most probably trying to run a 16-bit Windows executable on a recently updated 64-bit Linux kernel.

Support for 16-bit segments was suspended on 64-bit Linux systems because of a security issue.

This matter has recently been extensively discussed on the WineHQ forum and has been reported as a bug.

At the moment, there is no fail proof workaround. You will have to wait for either a wine or kernel update.

Nonetheless, 32-bit Linux systems are not affected.

0

Simply run

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

and then start your application via wine. This temporarily enables 16bit support in the kernel.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.