It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
I’ve dual-booted Windows and Linux for a long time now, and it took me awhile to get the two setup so they work well together. With GOG supporting Linux, I’ve seen a lot of people trying out Linux, so I thought I would post a bit of a description of my dual-boot setup.

I should say, I'm not an expert, or a sysadmin or anything. This is just what I do, and what works for me. Some Linux purists are probably going to cringe reading this. You're responsible for your own system, and it isn't my fault if you try this and bork things up royally. Blah blah blah.

I’m not going to describe the installation of the OS’s, or any of the software, just the basic setup, and why I have it setup that way.

Partition / Hard Drive Setup
I have three hard drives (2 x msata, 1 x spinny), and I split my Linux install over two of them, so I’m not going to give you my exact setup - it’s a bit more complicated than it needs to be. Basically, I have three partitions - Windows, Linux and Files. I do also have a Linux swap partition, but it doesn’t really come into play here. Windows and Files are both NTFS partitions, and Linux is Ext4. The Files partition is where I store everything that I want to share between the two OS’s. I install almost all of my games, including Steam, to the Files partition. This is for two reasons:

1 - While Linux’s NTFS support is pretty good these days, having write access to a windows OS partition can be problematic. Especially with Windows 8. It just works better to have the files that you want to share between the two OS’s to be on a separate partition.

2 - This way, if / when you reinstall either OS, none of your files are on the OS partition, and you don’t need to worry about copying them somewhere. Reformat the OS partition, reinstall the OS, and all your stuff is still there.

I prefer to use NTFS for my shared partition for stability. There are file system drivers available for Windows that give you read/write access to Ext partitions, but I have found Linux’s NTFS support to be much more stable than Windows support of Ext.

The last bit is actually mounting the Files partition. Here is my actual fstab line for the Files partition:

UUID=74D801BAD8017C1C /mnt/files ntfs-3g big_writes,noatime,uid=1000,gid=1000,hide_dot_files,hide_hid_files 0 2

Obviously, you would need to change the UUID to match your partition. The big_writes option speeds up ntfs access while lowering CPU usage. The uid and gid options make the mounted files belong to the default user. If you have multiple users to deal with, you would have to setup an ntfs-user group, and just mount with that gid. The hide_dot_files gives linux hidden files (prefixed with a '.') the ntfs attribute of hidden making them also hidden in windows. The hide_hid_files hides ntfs-hidden files in Linux.

Profile / Home Setup
I store all of my Documents, Downloads, Pictures, Music and Game files on the Files partition. That way I have access to everything from either OS. In my Linux home folder, I have symbolic links for each of the folders I want to use. For example:

~/Documents points to /mnt/files/Files/Documents

You can create this link using the command:

ln -s /mnt/files/Files/Documents ~/Documents

In windows, you can easily change your profile paths. I have the Documents folder pointing at D:\Files\Documents

This way both Linux and Windows are using the same locations for everything. If I create document in Windows, it will be in my Linux home folder. If I download a file in Linux, it will be in my Downloads folder in Windows. It works out pretty seamless.
Post edited August 12, 2014 by hummer010
Steam and WINE

I install Steam in the Games folder on my Files partition. This way all of the Steam files are accessible from Linux as well. I don’t actually run the windows installation of Steam with WINE. I used to, but I had some funny glitches with the cloud syncing of categories and stuff. I’ve got a generic WINE prefix for Steam. I then use a symbolic link for the SteamApps folder:

ln -s /mnt/files/Games/Steam/SteamApps ~/.wines/steam/drive_c/Program\ Files/Steam/SteamApps

Now my Steam installation using WINE is running the exact same downloaded files as the Steam installation in Windows. This is very seamless. I can start downloading a game in Steam using WINE, exit Steam, reboot to Windows and start Steam, and it will pick up the download right where it left off. If I run Steam using WINE and a game updates, the updates are there in Windows. If a game updates in Windows, the update will be there when using WINE.

Also, by having the home / profile links setup the way I have them, all the saves are shared as well (the need for this is somewhat negated by cloud saves, but not all games have cloud saves). Because Linux and Windows are using the same folder for Documents, and most modern games store the saves in Document, it works. I can play a game in Windows, save it, reboot to Linux, and fire up the same game, and load the same save.

GOG games can work the same way. I install them all to /mnt/files/Games/GOG, which translates to D:\Games\GOG in windows. If the game saves files in the game install directory, that is accessible to both Windows and Linux. If the games saves files to the Documents directory, that is accessible to both Windows and Linux.

Running Steam Games

A lot of games require specific libraries for WINE to run, and some of the conflict with each other. I run most games in their own wine prefix, all stored in ~/.wines. After I create the new wine prefix, I copy the entire Steam folder, minus the SteamApps folder, into the new wine prefix. What’s amazing to me, is that the new copy of Steam will run with needing to enter a password (if you save your password) or even going through Steam Gaurd. Next up, I create a new SteamApps folder, and then a common folder underneath it. Then I use a symbolic link to the actual install folder in /mnt/files/Steam/SteamApps. I copy the game manifest file from the SteamApps on the Files partition to the SteamApps folder in the WINE prefix. I could use a symbolic link there too.

Creating Shortcuts

I don’t generally use .desktop files. Lot’s of people do. If you want to, you can find how-tos on the internet. The main reason I don’t use .desktop files for games is the fact that I have dual graphics cards. I like having the ability to use either graphic card whenever I want, and bumblebee with nVidia graphics allows that. What I do is create bash scripts to launch games, and then I can use ‘primusrun’ on the bash script to start the game on the nVidia card, or just run the bash script to run the game on the Intel card.

GOG games are easy here. My usual bash script for a GOG game would like this:

#!/bin/bash
cd /mnt/files/Games/Arx\ Fatalis
WINEARCH=win32 WINEPREFIX=~/.wines/arxfatalis wine ARX.exe

I would save this to /usr/local/bin/arxfatalis, and make sure it is executable by issueing:

chmod +x /usr/local/bin/arxfatalis

Then I can run the game by on the intel card by typing “arxfatalis”, or run it on the nVidia card by typing “primusrun arxfatalis”

With Steam, things can be a little different. There are three different cases with Steam.

1 - The game does not require the Steam client to be running. This can be handled identically to the GOG games. cd to the directory, and then run the application.

2 - The game requires the Steam client, and automatically starts the Steam client. This can also be handled identically to the GOG games. cd to the directory, and then run the application. The Steam client will be auto-started by the game.

3 - The game requires the Steam client to be running, but doesn’t auto start the client. If this is the case, the bash script would look like this:

#!/bin/bash
cd ~/.wines/skyrim/drive_c/Program\ Files/Steam
WINEARCH=win32 WINEPREFIX=~/.wines/skyrim wine Steam.exe &
sleep 10
WINEARCH=win32 WINEPREFIX=~/.wines/skyrim wine SteamApps/common/Skyrim/SkyrimLauncher.exe

Managing What's Installed Where

This is the toughest part for me. With Steam also being native to Linux, it can be a bit confusing what's installed where. To make it worse, the Steam client doesn't make it easily available what platforms a game runs on. For me, the default is always going to be Linux - if a game comes in a Linux version, that will be installed. If it doesn't then the windows version will be installed.

What I've done to make it a bit easier is to setup my categories in Steam to manage that for me. I really wish Steam gave us the ability to have sub-categories though. my categories are Linux-Installed, Linux-Not Installed, NoDRM, Windows-Installed, Windows-Not Installed, Trash. Any game that I have a NoDRM version of, gets put into NoDRM so I don't accidentally waste the bandwidth of installing a game I have a NoDRM installer for.
Post edited August 12, 2014 by hummer010
It's been a long time since I've done this, is there still a specific order in which to install?
I seem to remember the Windows installer overwriting GRUB in the MBR if you installed it after Linux.
Not insurmountable of course, but irritating.
avatar
Smannesman: It's been a long time since I've done this, is there still a specific order in which to install?
I seem to remember the Windows installer overwriting GRUB in the MBR if you installed it after Linux.
Not insurmountable of course, but irritating.
Windows first, then Linux is definitely easier. It isn't insurmountable though. Depending on the distribution, it is usually just a matter of booting to the install media and reinstalling the bootloader, whether it be grub, syslinux, etc.

Most of the modern bootloadrers are very good at automatically finding the windows installation and adding them to the boot menu.
Post edited August 12, 2014 by hummer010
That is a VERY long guide. I'm new to Linux as well, I'll definitely remember this thread when I'm done playing around with Arch in VMWare

Thanks a lot!
That sounds so complicated. Maybe I should have done it like that. Next time!
Thanks you very much for the detailed guide hummer010. I was just about to install the new Mint 17 and was wondering how to do it without screwing anything up. +1 :)