Registry files are databases of configurations for applications using the Windows kernel. The centralized approach to registry databases makes it difficult for users to hunt down individual registry entries of applications, and then back them up or transfer them to another machine. The particular locations of the registry entries of applications can be found in the documentation of the applications, where available, or on FAQs or troubleshooting websites that involve modifying the registry values. The Find tool in Regedit, an application in Windows for editing registry entries, also works for hunting down the registry entries of particular programs. However, these registry entries tend to be scattered around different locations of the database, and there may be a number of registry entries, making it a troublesome process to find and use individual registry entries.
An easier, but wasteful, approach is to transfer all the registry values; the entire registry database from a Windows installation to the WINE platform on a Linux machine. Transferring registry entries across operating systems is a simple trick to make some Windows based applications work on a Linux machine. This is not a sure-fire trick to make every Windows application work on a Linux system, but is usually a good idea when applications don’t seem to run well on WINE. What we will be doing is to export the registry entries from a Windows machine, saving the file, then importing the registry entries on a Linux machine. There are some pre-requisites for this operation though.
You will need a Linux machine set up, and have installed WINE on it. WINE is a backronym for Wine Is Not an Emulator and emulates a Windows environment. WINE is different from a Virtual Machine, and the applications run in the same desktop environment as other Linux applications. WINE creates a virtual C drive, and a rudimentary Windows directory structure, without partitioning the hard drive on which WINE is installed. All Windows applications run from a virtual C:\Program Files location.
Before starting the procedure, you will have to install the Windows version on a Windows machine. Continue with any post-installation procedures that the software might have, including activation and verification. After this, you will have to install the same version of the software on the Linux machine, using WINE. Make sure that the software license you have allows you to do this. This procedure will work for the same machine in a dual-boot setup, or multiple machines.
Now you are ready to transfer the registry entries from one machine to another. Note that the same procedure can essentially be used on two Windows machines as well, or for that matter, between two Linux machines, on one of which this operation has been carried out. Go to Start>Run>regedit. The registry editor window will open up. Select the topmost segment in the registry directory, and go to File>Export. Give any file name to the file, and save the file as a .reg file. If you have a lot of applications installed, this will take some time, and the machine will appear to hang. Wait for regedit to export the file. Now, transfer the .reg file to an external storage device, and start up the Linux machine, or boot up the Linux operating system if you are using a dual-boot setup.
Go to the location of your WINE installation. In Ubuntu, go to Applications > Wine > Browse C:/ Drive. On a fresh installation of WINE, there should be only two folders, Program Files and Windows. Navigate to Windows, and run regedit.exe. If you have other applications installed through WINE, backup the existing registry entries in case anything goes wrong. Now, go to File > Import, and select the exported registry entries.
Transferring application data files between machines
This should be the last resort when installing applications intended for Windows machines on a Linux system. If the application is located in C:\Program Files\Applications, transfer it to the identical location in the virtual C: drive created by WINE on your Linux machine. The application will be in the correct location as long as it is installed on the C: drive on the Windows machine. Make sure that the paths are also the same. Windows applications use .dll files which are not always saved in the same location as the application. The most common directory for these .dll files are C:\Windows\System32 and C:\Windows\System. Copy the .dll files from these directories to the same location on the virtual C drive on WINE. If there is no lack of hard disk space on the Linux machine, you can transfer the entire C: drive from the Windows machine to the virtual C: drive on the Linux machine.