From 916c1e6bd8d1572f1fd63763b725965d9428ef32 Mon Sep 17 00:00:00 2001
From: Rohan Barar
Date: Mon, 2 Sep 2024 10:00:59 +1000
Subject: [PATCH 1/7] Fixed #223
---
docs/libvirt.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/docs/libvirt.md b/docs/libvirt.md
index 992819e..8b5818b 100644
--- a/docs/libvirt.md
+++ b/docs/libvirt.md
@@ -52,6 +52,19 @@ Together, these components form a powerful and flexible virtualization stack, wi
sudo reboot # Reboot the system to ensure the user is added to the relevant groups.
```
+ Note: Due to a known bug in `rpm-ostree`, which affects various distributions such as Silverblue, Bazzite, Bluefin, Kinoite, Aurora, UCore, and others, the commands provided earlier may not properly add your user to all required groups. If the `groups $USER` command does not show your user as being part of the necessary groups, you'll need to manually add these groups to `/etc/group` if they are present in `/usr/lib/group`.
+
+ To resolve this:
+ 1. Identify which groups are missing from the output of `groups $USER`.
+ 2. Use the following snippet to add each missing group to `/etc/group`. Ensure you replace "kvm" with the name of the missing group.
+
+ ```bash
+ grep -E '^kvm:' /usr/lib/group | sudo tee -a /etc/group
+ sudo usermod -aG kvm $USER
+ ```
+
+ 3. Reboot your system to ensure that the user is correctly added to the relevant groups.
+
6. If relevant to your distribution, disable `AppArmor` for the `libvirt` daemon.
``` bash
sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/ # Disable AppArmor for the libvirt daemon by creating a symbolic link.
From a5ae665582d065b08ebc7f79639dcad06671402e Mon Sep 17 00:00:00 2001
From: Rohan Barar
Date: Mon, 2 Sep 2024 10:15:15 +1000
Subject: [PATCH 2/7] Clarified OOBE\BYPASSNRO Instructions
---
docs/libvirt.md | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/docs/libvirt.md b/docs/libvirt.md
index 8b5818b..a1541fa 100644
--- a/docs/libvirt.md
+++ b/docs/libvirt.md
@@ -596,21 +596,20 @@ Once you get to the point of selecting the location for installation, you will s
-The next hurdle will be bypassing the network selection screen. As the `VirtIO` drivers
-for networking have not yet been loaded, the virtual machine will not be able to be connected to the internet.
-- For Windows 11: Press "Shift + F10" to open the command prompt. Type 'OOBE\BYPASSNRO' (without the surrounding quotation marks) and press Enter. The system will restart and now allow you to click `I don't have internet`.
+The next hurdle will be bypassing the network selection screen. As the `VirtIO` drivers for networking have not yet been loaded, the virtual machine will not be able to be connected to the internet.
+- For Windows 11: When prompted to select your country or region, press "Shift + F10" to open the command prompt. Enter `OOBE\BYPASSNRO` and press Enter. The system will restart, allowing you to select "I don't have internet" later on. It is crucial to run this command as soon as possible, as doing so later in the installation process will not work, and you may be required to create a Microsoft account despite not having an internet connection.
-- For Windows 10: Simply click `I don't have internet`.
+- For Windows 10: Simply click "I don't have internet".
-Following the above, choose to `Continue with limited setup`.
+Following the above, choose to "Continue with limited setup".
From 08cd44f17b92dd427828ad7a9b58a6b988d62ff7 Mon Sep 17 00:00:00 2001
From: Rohan Barar
Date: Mon, 2 Sep 2024 10:34:18 +1000
Subject: [PATCH 3/7] Added Fallback Shared Folder Configuration Instructions
---
docs/libvirt.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/docs/libvirt.md b/docs/libvirt.md
index a1541fa..43b6c75 100644
--- a/docs/libvirt.md
+++ b/docs/libvirt.md
@@ -680,6 +680,24 @@ Scroll down to `Remote Desktop`, and enable `Enable Remote Desktop`.
At this point, you will need to restart the Windows virtual machine.
+## Configuring a Fallback Shared Folder
+When connecting to Windows through FreeRDP, your home folder will be shared automatically. However, this sharing setup does not apply when using Windows via virt-manager. To configure a fallback shared folder, follow these steps:
+
+1. Navigate to "Virtual Hardware Details", then "Memory" and then check the box for "Enable shared memory".
+
+2. Add filesystem hardware by going to "Virtual Hardware Details" and selecting "Add Hardware" followed by "Filesystem". Choose `virtiofs` as the driver, enter the path to the shared folder, and provide a name for the shared folder in the target path (e.g., "Windows Shared Folder").
+
+3. Install [`WinFSP`](https://github.com/winfsp/winfsp/releases/) on Windows.
+
+4. Enable and start a 'VirtIO Filesystem' service within Windows by running the following commands within a PowerShell prompt.
+ ```PowerShell
+ sc.exe create VirtioFsSvc binpath= "C:\Program Files\Virtio-Win\VioFS\virtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio Filesystem Service"
+ sc.exe start VirtioFsSvc
+ ```
+
+5. Reboot Windows.
+
+## Installing Windows Software and Configuring WinApps
You may now proceed to install other applications like 'Microsoft 365', 'Adobe Creative Cloud' or any other applications you would like to use through WinApps.
> [!NOTE]
From 1c35e76f25fb342bf21ca80c23955d7b0834d98c Mon Sep 17 00:00:00 2001
From: Rohan Barar
Date: Mon, 2 Sep 2024 10:49:06 +1000
Subject: [PATCH 4/7] Added Static IP Address Configuration Instructions
---
docs/libvirt.md | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/docs/libvirt.md b/docs/libvirt.md
index 43b6c75..6019c05 100644
--- a/docs/libvirt.md
+++ b/docs/libvirt.md
@@ -680,7 +680,7 @@ Scroll down to `Remote Desktop`, and enable `Enable Remote Desktop`.
At this point, you will need to restart the Windows virtual machine.
-## Configuring a Fallback Shared Folder
+## (Optional) Configuring a Fallback Shared Folder
When connecting to Windows through FreeRDP, your home folder will be shared automatically. However, this sharing setup does not apply when using Windows via virt-manager. To configure a fallback shared folder, follow these steps:
1. Navigate to "Virtual Hardware Details", then "Memory" and then check the box for "Enable shared memory".
@@ -697,6 +697,41 @@ When connecting to Windows through FreeRDP, your home folder will be shared auto
5. Reboot Windows.
+## (Optional) Configuring a Static IP Address
+1. Identify the Windows MAC address.
+ ```bash
+ virsh dumpxml "RDPWindows" | grep "mac address"
+ ```
+
+2. Edit the virtual network configuration.
+ 1. Identify the correct network name.
+ ```bash
+ virsh net-list # Will likely return "default"
+ ```
+
+ 2. Edit the configuration file.
+ ```bash
+ virsh net-edit "default" # Replace "default" with the appropriate network name if different
+ ```
+
+ 3. Update the `` section in the configuration file using the MAC address you obtained earlier. In the below example, "RDPWindows" has MAC address "df:87:4c:75:e5:fb" and is assigned the static IP address "192.168.122.2".
+ ```xml
+
+
+
+
+
+
+ ```
+
+ 4. Restart the virtual network.
+ ```bash
+ virsh net-destroy "default" # Replace with the correct name on your system
+ virsh net-start "default" # Replace with the correct name on your system
+ ```
+
+ 5. Reboot Windows.
+
## Installing Windows Software and Configuring WinApps
You may now proceed to install other applications like 'Microsoft 365', 'Adobe Creative Cloud' or any other applications you would like to use through WinApps.
From f2afc993391a3a5f00ee9f6cf764393a8880db8f Mon Sep 17 00:00:00 2001
From: "pre-commit-ci[bot]"
<66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date: Mon, 2 Sep 2024 00:52:15 +0000
Subject: [PATCH 5/7] [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---
docs/libvirt.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/libvirt.md b/docs/libvirt.md
index 6019c05..3865044 100644
--- a/docs/libvirt.md
+++ b/docs/libvirt.md
@@ -729,7 +729,7 @@ When connecting to Windows through FreeRDP, your home folder will be shared auto
virsh net-destroy "default" # Replace with the correct name on your system
virsh net-start "default" # Replace with the correct name on your system
```
-
+
5. Reboot Windows.
## Installing Windows Software and Configuring WinApps
From e224e233ccb79c823f2516e06b8c52ca1d605a38 Mon Sep 17 00:00:00 2001
From: Rohan Barar
Date: Mon, 2 Sep 2024 12:09:44 +1000
Subject: [PATCH 6/7] Implement Exec Path Check in ExtractPrograms.ps1
---
install/ExtractPrograms.ps1 | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/install/ExtractPrograms.ps1 b/install/ExtractPrograms.ps1
index b1587ea..85939e8 100644
--- a/install/ExtractPrograms.ps1
+++ b/install/ExtractPrograms.ps1
@@ -192,7 +192,9 @@ function AppSearchWinReg {
# Get corresponding application names for unique installed executable files.
foreach ($exePath in $exePaths) {
- $exeNames += GetApplicationName -exePath $exePath
+ if (Test-Path -Path $exePath) {
+ $exeNames += GetApplicationName -exePath $exePath
+ }
}
# Process extracted executable file paths.
From 3a0acff38fe9a0f413f309ae039714234f2fb37f Mon Sep 17 00:00:00 2001
From: Rohan Barar
Date: Mon, 2 Sep 2024 12:15:02 +1000
Subject: [PATCH 7/7] Revise Exec Path Check in ExtractPrograms.ps1
---
install/ExtractPrograms.ps1 | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/install/ExtractPrograms.ps1 b/install/ExtractPrograms.ps1
index 85939e8..5662f16 100644
--- a/install/ExtractPrograms.ps1
+++ b/install/ExtractPrograms.ps1
@@ -180,6 +180,7 @@ function AppSearchWinReg {
# Initialise empty arrays.
$exeNames = @()
$exePaths = @()
+ $validPaths = @()
# Query windows registry for unique installed executable files.
$exePaths = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\*" |
@@ -193,12 +194,13 @@ function AppSearchWinReg {
# Get corresponding application names for unique installed executable files.
foreach ($exePath in $exePaths) {
if (Test-Path -Path $exePath) {
+ $validPaths += $exePath
$exeNames += GetApplicationName -exePath $exePath
}
}
# Process extracted executable file paths.
- PrintArrayData -Names $exeNames -Paths $exePaths -Source "winreg"
+ PrintArrayData -Names $exeNames -Paths $validPaths -Source "winreg"
}
# Name: 'AppSearchUWP'