Running a Windows virtual machine on Linux using an Existing Windows Installation

I’ve been a Linux user for years. At home I’ve kept a file server which runs off Linux, but that was “classic Linux” — without a graphical user interface, using the command line, and doing things the “hard way”. My main desktop PC was still running Windows, and had to because the one game I play regularly, Fortnite, was not available on Linux.

Well, someone recommended that I check out GeFORCE NOW, which is a virtualized environment you can use within Linux to play a large number of games in the cloud. I’ve always been skeptical about that type of play, largely because the capacity of the system to provide a good gaming experience had not previously been available. However since I live alone and have a good broadband connection I tried it out and loved it. It’s indistinguishable from playing the game from your own computer.

So, since most of the apps I use are open-source or otherwise available for Linux, I decided to switch from Windows to Ubuntu 24.04. My PC has two hard drives as well as a NVME drive which hosts the Windows system, so I decided to delete and transfer what I could from a 1TB drive and installed Ubuntu on there. It was a breeze and I was quickly up and running. Ubuntu has very good hardware support so most things just worked, and the only thing I had to hunt down was a driver for the Logitech G13 gamepad I constantly use. I’ve been running this for about 3 weeks now and I have no desire to go back.

However, today I came up against an obstacle. On Windows I used Bitvise SSH client to connect to this server, and Bitvise saves its files in its own binary format. I found myself in a situation where I would have to go back to Windows to use Bitvise to connect to my server. Also while my current situation does not require that I have access to a Windows machine, that can change all too easily. So I decided to create a Windows virtual machine (VM from now on), but instead of using a virtual hard drive file, I would simply use the disk on which Windows is already installed. That makes a lot more sense. It’s just more efficient.

I found one set of instructions to help me do that, but it dates back to 2021 and hasn’t been updated more recently, so I spend some time figuring out the more current way to go about it.

How to run a Windows VM from an existing Windows disk

For this you will naturally need a computer running Linux, preferably something Debian-based like Ubuntu. You will also need to install VirtualBox on that computer (downloads here). You should also disable Bitlocker encryption from your Windows drive before proceeding. I didn’t have it enabled on my drive so I don’t know how that would affect the installation.

Set up your user

Your user will need to be part of two groups: “disk” (to enable raw disk access) and “vboxusers”.

sudo usermod -aG disk,vboxusers [user]

Also let’s create a folder “vms” in your home directory in which you will keep your VMs:

mkdir vms

Set up your Windows disk

First, find out where your Windows drive is mounted. By default when you install Ubuntu on a computer with FAT32 or NTFS drives, they will be accessible to Linux.

lshw -short -class disk,volume

This will show you a list of your hard disks and their partitions. Look for a disk that contains a “Windows FAT volume”, a “reserved partition” and one or more “Windows NTFS volumes” and note the entry in the Device column for the disk (not partition). Usually this will be “/dev/nvme0” (if you have a NVME disk) or “/dev/sda”.

Next, we’re going to create a special file that points to that disk using a utility that is installed with VirtualBox. Enter this as your regular user (not root):

VBoxManage createmedium disk --filename=vms/[disk file].vmdk --variant=RawDisk --format=VMDK --property RawDrive=[Windows drive]

This file points at the location of the Windows drive.

Create a VM

Now we’ll start using VirtualBox itself. But before we do, let’s install the VirtualBox Extension Pack (download from here). To install the file just double-click on it on the file. It will launch VirtualBox and the installation will take place.

In the VirtualBox dashboard, click on the Create a new virtual machine (VM) link.

  1. In the VM Name field, enter a name for the virtual machine
  2. The VM Folder should be “/home/[user]/vms”
  3. In the OS field select Microsoft Windows
  4. In the OS Version field select the version of Windows installed on your Windows disk.Win12
  5. Click on the Next button at the bottom right of the New Virtual Machine window.
  6. Under Specify virtual hardware, adjust the Base Memory and Number of CPUs. Bring the Disk Size slider to the lowest value. Note that using 16GB (or more) of RAM is highly recommended otherwise you’ll find the VM experience very taxing, but keep in mind that this memory will not be available to your Linux apps while the VM is running.
  7. Select Use EFI
  8. Click on the Next button.
  9. Click on the Finish button.

Attach The Windows Disk to the VM

Now we’ll attach the pointer file we created in step 1 to the VM.

  1. In the Machines tab of VirtualBox Manager, right-click on the new VM and click on Settings.
  2. In the [VM]-Settings window, select the Storage tab.
  3. You’ll see a .vdi file which we won’t be using. Click on the Add Attachment button at the bottom right of the Devices box (see below) and select Hard disk from the dropdown menu. Attach Disk
  4. In the Hard Disk selector window, click the Add button.
  5. Select the .vmdk file you created earlier in the file selection dialog box.
  6. With the .vmdk file selected, click on the Choose button.
  7. In the [VM]-Settings window, select the .vdi file, and click on the Remove Attachment button (next to the Add Attachment button).
  8. Click OK to save your VM configuration.

Run Your VM

Nothing left to do but to run the VM and make sure it works, so in the Machines tab of VirtualBox Manager, right-click on the VM you just edited and select Start > Start with GUI.

You should be able to log into your Windows installation.

If you have tried in the past to install Linux and modified the UEFI partition of your boot disk… well, you will then have to navigate around the disk using the GRUB CLI to fix your boot sequence. This is beyond the scope of this particular tutorial, but instructions are easily found online. I had to do this myself.

Something else that came to mind as I was writing this was to try and see if I can do the same thing using QEMU instead of VirtualBox, which I will also write a tutorial for if I can manage to do it.

Keep in mind that virtualization at the local level can be a bit tricky and resource-intensive. It’s also one of the rare things that can completely freeze up your system and force you to reboot it — that’s called a kernel panic.

A song about Jeffrey Epstein

I ain’t no songwriter, me. However this idea popped up in my head to make a song about the Jeffrey Epstein story, and even without using the word Trump at any point! Because, well, Epstein hosted pretty much everyone in the Who’s Who of high society. I purposely composed this to be sung to the tune of The Village People’s YMCA, a song hilariously co-opted by Trump. I’ve only done one stanza and the refrain so far so feel free to contribute in the comments!

JEFF (to the tune of YMCA)

[Stanza]

RICH MAN, there’s no need to feel down, I say
RICH MAN, you want to screw around, I say
RICH MAN, don’t you fear getting found
While you’re raping tons of young girls

RICH MAN, there’s a guy you should know, I said
RICH MAN, you can even bring blow, you can
Stay there in the lap of luxury
But smile for a pic with Jeffrey!

[Chorus]

It’s time to go and see J-E-F-F
It’s time to go and see J-E-F-F
You don’t need no flowers,
You don’t need no pearls
You can hang out with all the girls…

 

On the passing of Scott Adams

Scott Adams passed away earlier this week. He was the author of the Dilbert cartoon strip which used to run in newspapers everywhere who, once the heyday of his creation started to fade, let his life spiral into a cesspit of bigotry and hate so awful that it completely ruined his reputation and, to some extent, his existing work.

Sometimes success goes right to someone’s head and causes an interesting feedback loop — “if I am successful then it must be that I am much more intelligent than everyone else”. I mean, we pretty much get told all our lives that the reverse is true, so it’s not necessarily outrageous to believe that. The problem comes when that person then uses that logic to validate beliefs they have for whatever reason, but which are extreme and socially unacceptable in nature.

Most successful people would take a cue from the social reaction and see that there’s a problem with the beliefs. But some of them do not. Some of them think that no, they’re right and society at large is wrong. Not only that, but because they’re clearly so intelligent — society has already validated this by making them successful! — they see it as their duty to reform the world, to set them on the right path by being as open and offensive as they can be.

And boy did Scott Adams take that duty seriously. His descent into racist, sexist, transphobic madness is well documented here if you’re not already familiar with it:

That I think is what happened to Scott Adams.

And it basically caused his death as well — he was too smart to go to an ordinary person doctor. Those people treat losers! No, he was the vanguard, the illuminati! He was too intelligent to get chemo and radiation or maybe have a tumectomy or whatever else was possible medically. No siree. He went straight to the old panacea, ivermectin, a veterinary dewormer. It was just as effective for prostate cancer as it is for anything but getting rid of worms.

Scott Adams lived by his own rules, and he died by his own rules. Truly he was the architect of his own downfall.

My daily bread

I haven’t contributed a recipe in a while, so here’s something I make almost every day.

Fluffy, tasty naan

Naan so delicious you'll want to just eat it by itself

  • Cast iron pan

Yogurt mixture

  • 1/4 cup plain kefir yogurt
  • 1 extra-large egg
  • 1/4 cup ghee or melted butter

Yeast

  • 2 tbsp honey
  • 1/2 cup hot water (40-50C)
  • 1 1/4 tsp yeast

Dry ingredients

  • 3 cup all-purpose wheat flour
  • 2 tsp table salt

Other ingredients

  • 1 tsp Avocado oil
  • 1 tbsp melted butter

Blooming the yeast

  1. Add the 2tbsp of honey into a small bowl.

  2. Add the hot water to the honey and mix well to dissolve.

  3. Sprinkle the yeast on top, and mix it into the honey solution.

  4. Let the mixture sit for 10 minutes while the yeast blooms. The yeast will rise to the top like foam.

Mix the other wet ingredients

  1. Pour the yogurt in a separate bowl.

  2. Add the egg and mix together.

  3. If you added the yogurt and egg straight from the fridge, you will need to bring up the temperature of the mixture to room temperature. This will prevent the butter from re-hardening into clumps when you pour it in.

  4. Once your yogurt mixture is warm, pour in the melted ghee/butter and mix.

Prepare the dry ingredients

  1. Put your flour in a medium-large mixing bowl.

  2. Add the 2 tsp salt and mix well.

Mix the wet and dry ingredients

  1. Once your yeast has bloomed, pour its contents into the yogurt mixture and mix them well.

  2. Pour the wet ingredients into a little "well" in the flour mixture.

  3. Mix everything together. Use a spatula at first, but when all the liquid has been absorbed just knead the dough with your hands. You need to get the point where the dough ball is slightly moist to the touch without sticking to your hand. Add additional flour if needed.

  4. Put the avocado oil on top of the dough, just enough to make sure it stays moist. If it's very humid where you live you may not need to do that, but in my well-ventilated Montreal apartment in the winter it's needed. I use an avocado oil spray for this.

  5. Cover the dough and let it rise for 1 hour.

Divide the dough

  1. After the dough has risen, knead it lightly again to get the excess air out.

  2. Divide the dough into individual pieces. How many pieces is really up to you, I used to make 8 pieces but now I make 6 because I like my naan relatively thick and chewy.

  3. Cover and let sit for 10 minutes.

  4. Warm your cast-iron pan while the dough is resting. Contrary to what you may have heard, this is done at a fairly low temperature, on an electric range use 3/10. My range uses a weird system that goes from "low" to 7 so I use small element setting 2.

Stretch out and cook your naans

  1. For each of your little balls of dough, stretch and roll it out as large as your pan will accept. It's never going to turn out exactly round, but that's the beauty of naan.

  2. Put the naan in the pan and let it cook for 90 seconds.

  3. Flip the naan over and cook it for 1 minute. As a tip, I usually use that minute to roll out the next naan, it's pretty much perfect timing for doing this.

  4. Brush the melted butter on the top side of the naan and let it cool for a couple of minutes.

  5. Put your naans away into a container that doesn't let moisture escape. Your naans will be good for about a day, after that they tend to dry up and not be so good.

This is not a diet naan. I deliberately use butter because of the taste and texture. The original recipe called for vegetable oil which would be healthier but not as delicious. Any oil with a neutral taste should do the trick, I would recommend avocado oil if you’re made of money. You may be tempted to use hemp oil figuring that its nutty taste will complement the bread taste, but I tried using it just to keep the dough moist and I found it distinctly unpleasant for reasons I don’t quite understand.

I got the idea of using honey to bloom the yeast one night when I wanted to add a little sweet taste to the bread, and it worked so well I never bloomed the yeast with just sugar again. You will taste a difference between different honeys. 

It’s important to use fine salt in the flour, as opposed to coarse salt or kosher salt. Fine salt distributes evenly through the flour with mixing, but larger grained salt doesn’t, and that makes naans that have weird salty spots.

Snack
Indian
bread, butter, naan

Rosemont Montreal Whisky

I’m no stranger to doing things “for a bit of a lark”, especially when alcohol is concerned. I don’t drink much anymore but I do cook, and it so happened that for about a week now I’ve wanted to make Poulet Vallée d’Auge but needed some Calvados as the recipe calls for it. Of course my local spirits store didn’t have it, so I thought I’d check out the web site, and it turns out that calvados is pretty expensive. Cheapest I found was something like $84 a bottle, and I didn’t feel like spending that much, so I looked for an alternative. I could have settled for a mickey of Cheminaud brandy but that didn’t tickle my fancy. I started to look at whiskys and this one caught my eye.

Rosemont Whisky bottle

Of course as someone who tends to like all things Montreal, this had my curiosity.

Surprisingly for a Canadian whisky, this is not a rye. It is made from 80% corn, 10% wheat and 10% barley from St-Constant, on Montreal’s South Shore. It’s not a single malt, it’s a blend, and it’s a bit pricey for a blend ($48.25 for a 750ml bottle). However, at this point I felt it was worth a try for the curiosity if nothing else. Frankly I was only picking up booze for cooking, and if this is sold at the SAQ it can’t be so bad that I couldn’t use it for cooking. The 3 years barrel aging had me a little skeptical, but again I felt it would probably do the job for the dish, and, well, a native Montreal whisky was worth trying. If only for a bit of a lark.

Buying this kinda reminded me of April 2013. On March 31st I had begun to walk the West Highland Way with my great friend Jay. I had spent months preparing for this, as much as I could do after my fire-related accident and skin graft. In fact I had prepared for this walk so well that I had greatly weakened my right heel, to the point where at some time during the hike it fractured. We weren’t able to do the whole walk and used a combination of a train and a lift from a very helpful man we met at the bothys near Ardlui who took us to Crianlarich to remove 30km from the route and, to be honest, compensate for my bad planning. The estimations I had made to determine where we were going to stay along the way were horribly, horribly off for the first two days of the hike. We took a train from Crianlarich to Tyndrum to shorten the trip and the 3 remaining days of walking went as scheduled… but the whole time my right foot kept getting more painful. I had picked up some diclofenac in Switzerland on the way in and I was taking triple doses just to deal. By the time we reached Fort William I could barely walk, but we were done with the hiking and heading to Ireland for a car tour so I just dealt with it.

Anyway, one thing we hadn’t done while we were in Scotland was visit a distillery (!), but there is one in Fort William at the end of the Way, the Ben Nevis distillery. At the time for some reason they weren’t doing tours but we went to the shop and I saw bottles of Loch Lomond Scotch Whisky. I knew I had to get a bottle of that. I taught myself to read at 5 with Tintin comics, and if you’re also a fan you’ll remember that Loch Lomond whisky is Captain Haddock’s drink. He’s always drinking the stuff. I wasn’t impressed by the “8 years aged” marking but it was quite cheap. And it was a bit of a lark. Well it was pretty awful and just tasted unfinished, but that didn’t stop Jay and I from drinking the whole bottle a week later in Belfast the night before we flew back to our homes.

What’s the point of this whole story? To be honest I kinda lost track of that early in the anecdote. This whisky (Rosemont) has me “feeling ways about stuff” and I feel that’s an important quality in a decent whisky.

And, well, Rosemont is a decent whisky. It’s quite smooth even when drunk neat. In fact, if I’m quite honest, it tastes a little light. However it does not have that “unfinished” taste that I detected in the Loch Lomond. It is not peated and reminds me of a highland kind of whisky. Strong hint of vanilla with a caramel finish, no unpleasant aftertaste. It has a relatively dark robe.

A glass of Rosemont Whisky, next to the bottle

This one has my seal of approval. This is not a mind-blowing whisky, but it’s also not priced like one, and if you’re looking for something Canadian that tastes pretty good and won’t break the bank, I encourage you to give it a try.

Further thoughts on the trade war

A few additional thoughts on the trade war.

First, we should simply send the US Ambassador back home and not approve any replacement.

For some reason people don’t seem to be keen on the idea of placing export duties on goods. It is a good idea because Donald Trump will just give exemptions from tariffs to companies linked to himself and his friends. By using export duties we make sure that there are no exemptions, and that we get the money. It sends the message that if Trump is going to hold tariffs over everyone’s heads, we’ll make sure that they hurt Americans first.

The money from export duties can be used to fund economic support measures that may be necessary to prevent economic harm for us Canadians.

One other measure I didn’t mention is that the federal and provincial governments should be forbidden from doing any business with American companies associated with Elon Musk — Tesla, SpaceX, Neuralink, Starlink, etc. as Musk appears to be looting and pillaging the US Treasury at this time, so any exposure to the entities linked to him may open us up for eventual ICC liabilities.

The pause in energy exports should be implemented soon, or subject to large export duties. This would ensure that we can still profit from trade with the USA without conceding anything, because that’s how you need to deal with a two-bit wannabe mob boss like Trump.

While we’re at it, we should also add Elon Musk to the list of “persona non grata” in Canada. We already have to deal with our own billionaire assholes, we definitely don’t need to import more.

How Canada can win the trade war

So Donald “frontotemporal dementia” Trump has decided to launch a trade war on Canada.

He is using fentanyl as a pretext in order to avoid having to involve Congress in this action, even though for the past 3 years US seizures of fentanyl coming in from Canada have added up to a few kilograms of the stuff. There is far, far greater cause for Canada to take action against the United States for the thousands of firearms that cross the border into Canada yearly. But that is neither here nor there.

There’s a trade war and Trump is imposing 25% tariffs on Canadian goods coming into the USA, except for oil which for some reason is only subject to 10% tariffs. This essentially cancels the previous North American free trade agreement which was negotiated by… Donald Trump.

Trump is a chaos agent who’s good at two things: breaking stuff, and running businesses into the ground. In other words, we’re not dealing with a rational force here. The doddering old fool has already said various times that he wants Canada as the 51st state. But of course that won’t be happening, and certainly not under Trump. I will personally pick up a rifle in anger to defend my country against Americans if it comes to that. And this country will fight until the last bullet has been fired. We would expect Americans to do the same if we invaded them.

Anyway, the point is that Donald’s goal is completely insane, and therefore we cannot rely on the tools with which people usually “fight” trade wars. You cannot negotiate with terrorists like Donald Trump, period. They are neither honest nor sane.

Therefore we, as Canadians, need to approach this with the idea that we need to squeeze the American economy until the Yanks do something about their crazy old fool. I don’t know, “regime change” or something.

Prime Minister Trudeau has already declared targeted retaliatory tariffs concentrating on goods manufactured in red states, which is smart, but is nothing near enough.

We need to go on the offensive and use our knowledge of current events in the USA to better target those industries that most need Canadian goods. And we need to pull the rug from under Donald’s feet.

As such I would suggest a multi-pronged approach to strike America where it would hurt the most, and make money doing it.

1- fight the US import tariffs with Canadian export duties. Trump figured that politically he can instantly kick inflation up 25% and survive. However if we impose 25% export duty on things going to the United States they will effectively rise in price by 50%, which is not tenable for the US economy. Also we get the first 25% of tax revenue, not the USA.

2- stop all energy exports to the USA. That includes electricity and oil.

3- implement 100% excise duty on any and all goods and services from companies where Elon Musk is CEO. That means Tesla vehicles, Starlink service, anything spent on X in terms of ad campaigns, etc. There are plenty of other EV manufacturers out there, and unlike Tesla they can build cars properly.

It’s only by fighting aggressively and proactively that we can defeat Donald and the Oligarchs. Let’s not waste this opportunity.

Elon Musk has always been a Neo Nazi.

Elon Musk “is aligned with the German neo-nazi party, opened the faucet of anti-semitism on the platform he purchased, follows neo-nazis, collaborates with neo-nazis openly, highlights neo-nazis, agrees with neo-nazi sentiment”. This has been made clear BY ELON in the posts that he’s made in Xitter, by his the moderation “policies” he’s brought to Xitter, and by his constant messing with the accounts of anyone who dares disagree with his fourth-reich ideas on the platform.
So why is anyone surprised by Elon literally doing a Hitler salute at the end of his speech on inauguration night? I’d like to say the signs were always there, but they’re not just signs, they’re fucking billboards.