Although I’ve been a Linux/Unix-fanatic for almost two decades, the reality is that from time to time, I need to use MS Office, MS Outlook og MS Project at my day job.
I’ve had Windows 8.1 side by side with Linux for a while now, but I am seriously getting tired of having to boot between the two operating systems. So I had this idea:
Surely, it must be possible to boot the already installed Windows 8.1 through a virtual machine from my Linux desktop.
Indeed, it does! And here’s how to do it!
Start your machine into Windows 8.1, and turn off the «fast boot option» to ensure that Windows unmounts the disks properly when you shut it down.
Now, shut down windows and boot into Linux. The rest of the work will be done from your Linux desktop.
1. As root, add your local user to the disk group
$ sudo usermod -a -G disk <yourusername>
2. After this, you need to log out and log back in. Verify by opening a terminal and typing this:
The list should now show the group «disk» like this:
uid=1001(gz) gid=1001(gz) groups=1001(gz),4(adm),6(disk),27(sudo),108(lpadmin),124(sambashare)
3. Open up a second terminal and log in as root. Download and install virtualbox.
$ sudo su - # apt-get update && apt-get install -y virtualbox
5. Change the permissions on the disk
# chmod 666 /dev/sda
It should look like this:
# ls -lA /dev/sda* brw-rw-rw- 1 root disk 8, 0 mars 23 15:21 /dev/sda brw-rw---- 1 root disk 8, 1 mars 23 15:21 /dev/sda1 brw-rw---- 1 root disk 8, 2 mars 23 15:21 /dev/sda2 brw-rw---- 1 root disk 8, 3 mars 23 15:21 /dev/sda3 brw-rw---- 1 root disk 8, 5 mars 23 15:21 /dev/sda5 brw-rw---- 1 root disk 8, 6 mars 23 15:21 /dev/sda6
6. I need to figure out which partitions my VM needs to access
# fdisk -l Disk /dev/sda: 238,5 GiB, 256060514304 bytes, 500118192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x56e914d2 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1023999 1021952 499M 7 HPFS/NTFS/exFAT /dev/sda2 1024000 303652920 302628921 144,3G 7 HPFS/NTFS/exFAT /dev/sda3 303654910 500117503 196462594 93,7G 5 Extended /dev/sda5 303654912 466757631 163102720 77,8G 83 Linux /dev/sda6 466759680 500117503 33357824 15,9G 82 Linux swap / Solaris
Allright, I need partition 1 and 2, as they are the windows partitions, and I also need the partiton where my GRUB lives, partition 5.
Now create the VMDK RAW file with partitions 1, 2 and 5 as your regular user
$ VBoxManage internalcommands createrawvmdk -filename ~/.config/VirtualBox/windows8.vmdk -rawdisk /dev/sda -partitions 1,2,5 -relative RAW host disk access VMDK file /home/gz/.config/VirtualBox/windows8.vmdk created successfully.
7. Start virtualbox, create a new machine as the following screenshots
8. Configure your machine as the following screenshots
9. Start the virtual machine, select Windows 8 from GRUB, and off you go!
Note: It is crucial that you do NOT boot into Ubuntu through your virtual machine, as this will most likely lead to system file corruption. Select Windows 8 from GRUB, and off you go!