Run Windows Apps on Linux with WinBoat

Jarret B

Well-Known Member
Staff member
Joined
May 22, 2017
Messages
454
Reaction score
519
Credits
19,511
For anyone running Linux who wants, or needs, to run a Windows program, there are few ways to do it and sometimes it doesn't work. Some Windows apps will not run on WINE, or the like, and you are stuck not being able to use it.

Some people will run a virtualized Windows system inside Linux and make it work that way.

WinBoat is another such virtualized system that runs on Docker. This method has a few more alternatives and seems faster.

In this article, I can help you get WinBoat set up, and we will do this as if your system is a newly installed system so that we can go over setting everything up from scratch.

I will go over setting this up in the following operating systems:
  1. Ubuntu/Debian
  2. Fedora/CentOS
  3. Arch Linux
The initial setup is just to install everything needed by WinBoat on each Operating System (OS) and then the last part will start WinBoat and make sure the requirements are all met.

Hardware-wise, you need over 4 GB of RAM, two CPU cores, 32 GB of free drive space (after the installation of WinBoat) and the system must support KVM (virtualization). The rest of the requirements are software and configuration based.

Ubuntu/Debian

For Ubuntu and Debian, the installation is basically the same, with just a few changes between the two.

To start, we need to update the existing packages and the repository list. Once these are done, we need to install a few required packages:

Code:
sudo apt update
sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

Next, we need the encryption keys for Docker:

Code:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Then, we need the Repository added to our Repository list. Here, there is a difference between the Ubuntu and Debian systems:

UBUNTU

Code:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

DEBIAN

Code:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

This should add the Repository to the list and include the proper parameters, such as Ubuntu or Debian as well as the codename for the release (lsb_release -cs).
Now that we've added a new Repository, we need to get its list by updating all the lists:

Code:
sudo apt update

With everything updated from the Repository, we can now get the proper files to install Docker. The following command should install what we need:

Code:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Now that Docker is installed, this also means that the 'docker' group has been created. We need to add the current user to the group, or if needed, you'll need to add another user to the 'docker' group:

Code:
sudo usermod -aG docker ${USER}

We need to make sure the Docker service will start after the reboot:

Code:
sudo systemctl enable docker

Before we reboot the system to make sure the group changes have taken effect and any services, we can finish installing the rest of the requirements.

We need 'flatpak' to install the last software requirement:

Code:
sudo yum install flatpak -y

Once we install 'flatpak', we need to add the 'flathub' repository for it:

Code:
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Now that the 'flathub' repository is ready, we can install the 'FreeRDP' app for accessing our Docker instance:

Code:
flatpak install com.freerdp.FreeRDP

Now, you can reboot the system, and when it restarts back in the Graphical User Interface (GUI), we can continue on with the installation of WinBoat itself.

Fedora

As usual with any distro before installing new software, we need to update the Repository list and any available packages. So, do the following:

Code:
sudo yum update -y

We then need to install some necessary files and add the Docker Repository:

Code:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager addrepo --from-repofile=https:// download.docker.com/linux/fedora/docker-ce.repo

Next, we need to install the Docker packages:

Code:
sudo dnf install docker-ce docker-ce-cli containerd.io

For any prompts that come up, enter 'y' to accept to install the packages.

CentOS

We need to update the repository list and the system, as well as add a few dependencies:

Code:
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Next, we need to add the Docker Repository:

Code:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Before we continue, if you have not set up a subscription, you will get a subscription error. You can fix this by creating an account on Red Hat, or we can disable the subscription check. To do this, you need to edit the file '/etc/dnf/plugins/subscription-manager.conf'. In the file is a line that is 'enabled=1' and needs to be changed to 'enabled=0'.

Now, we can install the Docker packages with the command:

Code:
sudo dnf install docker-ce docker-ce-cli containerd.io

Be sure to answer 'y' to any prompt that comes up.

There is one dependency that CentOS needs for WinBoat. To get it, we need the 'EPEL-Release Repository' and then install the dependency:

Code:
sudo dnf install epel-release
sudo dnf install libXScrnSaver

The rest can be done for both systems.

Fedora/CentOS

Now, we need to enable the Docker service to start at boot and start the service now:

Code:
sudo systemctl start docker
sudo systemctl enable docker

We need to add the current user to the Docker group, or if needed, add the required user to the group:

Code:
sudo usermod -aG docker ${USER}

We need to add the 'FreeRDP' app to use to access the Docker image of our Windows system:

Code:
sudo yum install flatpak -y
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install com.freerdp.FreeRDP

Reboot the system, and then we can install the WinBoat app after the system restarts.

Arch Linux

As usual, the first thing is to update the Repository list:

Code:
sudo pacman -Syu

After the update, you can install 'Docker' as well as 'git', which we need soon.

Code:
sudo pacman -S docker git

Now, you need to start and enable the 'Docker' service to start at next boot:

Code:
sudo systemctl start docker
sudo systemctl enable docker

You will need to add your user account to the 'Docker' group, or another account if you like:

Code:
sudo usermod -aG docker ${USER}

We then need to install 'flatpak' and the 'FreeRDP' app:

Code:
sudo pacman -S flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install com.freerdp.FreeRDP

Unlike the other operating systems, do not reboot at this time; you need to make the package to install it, then you can reboot.

WinBoat Installation

Now that all the dependencies are out of the way, we should be able to install WinBoat with no issues.

Open a web browser of your choice and go to 'https://www.winboat.app/'. If you scroll down, there should be a section allowing you to download WinBoat, shown in Figure 1, for:
  • AppImage
  • Debian
  • Fedora
  • Arch
Figure 1.JPG

FIGURE 1

Choose your OS type and download the file for your distro.

After it is downloaded, you need to open a terminal to the location of the downloaded file.

For Ubuntu/Debian, you need to use the following command to install it:

Code:
sudo dpkg -i <package-name.deb>

For CentOS/Fedora, use the command:

Code:
sudo dnf install <package-name.rpm>

The '<package-name>' will depend o the version number that is available when you download it.

For Arch, it is a little trickier, but not bad. We previously installed 'git', so we need to download the binary package. In a terminal, switch to the 'Downloads' folder, or another if you like. Run the following command to download the package you will need to build:

Code:
sudo git clone https://aur.archlinux.org/winboat-bin.git

This should download the file and place it in the current folder. Now the file should be in the sub-folder 'winboat-bin'. Change into the folder with 'cd winboat-bin'. Once inside the folder, there should be a single file. This file we will build and install, so use the command:

Code:
sudo mkpkg -si

The files should be built and installed. You need to reboot, and the program 'WinBoat' will be on the menu to run.

Everything should be installed now, so we can go through the WinBoat setup that occurs the first time you run it.

WinBoat Setup

When you first run 'WinBoat', you will need to configure the program. After the program starts for the first time, you will see a window similar to Figure 2.

Figure 2.JPG

FIGURE 2

Select 'Next' to start the setup.

The next screen, Figure 3, is the 'License Agreement'. Look through it if you want, and then click on 'I Agree'.

Figure 3.JPG

FIGURE 3

Figure 4 is where the program will check the system to determine that the dependencies are all met. Figure 4 shows that some are not met. If this is the case, you need to fix the options with the 'X' and restart the program. If you do not restart the program, it will not re-detect the dependencies.

Figure 4.JPG

FIGURE 4

Once everything is all green checkmarks, then the 'Next' button will be active and let you click it to continue. On most of these, you can click on 'How?' to give you information about fixing the issue. Click on 'Next' when you have everything installed as needed.

The next thing we will do is set the installation location, in Figure 5. This is the location where the Virtual Machine will be created and stored. As it says, you need at least 32 GB of space available at this storage location. In a bit, you will be asked to set a size for the storage unit to be used. The minimum is 32 GB, so if you want more space, then make sure it is available. Set a location and click on 'Next'.

Figure 5.JPG

FIGURE 5

Next, we will specify the version of Windows, set the language and point to the location of an ISO file for the version of Windows we want to install, as shown in Figure 6. Be aware that you do not need to use an ISO file, and it is best not to use one.


Figure 6.JPG

FIGURE 6

The versions of Windows that are available to use in the Virtual System are:
  • Windows 10 Pro
  • Windows 11 Pro
  • Windows 11 LTSC 2024
  • Windows 11 Enterprise
  • Windows 10 LTSC 2021
  • Windows 10 Enterprise
Make your choices and click on 'Next'.

On the next screen, you will set up a user account and password. The program should detect your username on Linux and fill it in for the username. Figure 7 shows the screen that you need to fill in and then click on 'Next' when done.

Figure 7.JPG

FIGURE 7

The next screen, Figure 8, shows the hardware we will allocate to the virtual system. Here, you can set the number of CPU cores, RAM and disk size. Be sure not to max out any of the hardware so you still have some resources left for the Host Linux system. When done, click 'Next'.

Figure 8.JPG

FIGURE 8

For the next screen, we have the option to share your Linux Home folders with Windows. Figure 9 shows the screen and the warnings. If you get a file that has a virus or malware, you can place this on your Host system.

Figure 9.JPG

FIGURE 9

Make your selection and click on 'Next'.

The next screen is simply a review of all the settings you have made for 'WinBoat'.

After verifying your choices, click on 'Install' and the installation will start. Once the installation is complete, there will appear a button labeled 'Finish'. Click on the button to continue to the last screen.

The last screen is the 'WinBoat' screen, as shown in Figure 10.

Figure 10.JPG

FIGURE 10

Shown in Figure 10 is the resources being used by the virtual Windows system. Here, you can stop or pause the Docker image.

There are other options to the right:
  • Apps
  • Configuration
  • About
The 'Apps' option gives you a list of applications you can run, as shown in Figure 11.

Figure 11.JPG

FIGURE 11

After double-clicking on an item, the app should start.

For the 'Configuration' option, as shown in Figure 12, you can change settings for the virtual system.

Figure 12.JPG

FIGURE 12

The 'About' option is information about 'WinBoat'.

Conclusion

Using 'WinBoat' is an alternative to WINE, but you will need to perform some tweaking to get the audio to pass through to the Host system.

This is a very nice way to run Windows and be able to run Windows apps in Linux. The start-up is a very fast process compared to running Windows natively.

Try it and see how you like it.
 


Follow Linux.org

Members online


Top