You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-edge/how-to-share-windows-folder-to-vm.md
+21-21Lines changed: 21 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
---
2
-
title: Share a Windows folder with Azure IoT Edge for Linux on Windows | Microsoft Docs
3
-
description: How to share a Windows folder with the Azure IoT Edge for Linux on Windows virtual machine
2
+
title: Share Windows folder with Azure IoT Edge for Linux on Windows
3
+
description: How to share a Windows folders and files with the Azure IoT Edge for Linux on Windows virtual machine.
4
4
author: PatAltimore
5
5
ms.reviewer: fcabrera
6
6
ms.service: iot-edge
7
7
ms.custom: linux-related-content
8
8
services: iot-edge
9
-
ms.topic: conceptual
10
-
ms.date: 11/1/2022
9
+
ms.topic: how-to
10
+
ms.date: 06/04/2024
11
11
ms.author: patricka
12
12
---
13
13
@@ -22,22 +22,22 @@ This article shows you how to enable the folder sharing between the Windows host
22
22
## Prerequisites
23
23
- Azure IoT Edge for Linux on Windows 1.4.4 LTS update or higher. For more information about EFLOW release notes, see [EFLOW Releases](https://aka.ms/AzEFLOW-Releases).
24
24
- A machine with an x64/x86 processor.
25
-
- Windows 10/11 (21H2) or higher with [November 2022](https://support.microsoft.com/en-us/topic/november-15-2022-kb5020030-os-builds-19042-2311-19043-2311-19044-2311-and-19045-2311-preview-237a9048-f853-4e29-a3a2-62efdbea95e2) update applied.
25
+
- Windows 10/11 (21H2) or higher with [November 2022](https://support.microsoft.com/topic/november-15-2022-kb5020030-os-builds-19042-2311-19043-2311-19044-2311-and-19045-2311-preview-237a9048-f853-4e29-a3a2-62efdbea95e2) update applied.
26
26
27
-
If you don't have an EFLOW device ready, you should create one before continuing with this guide. Follow the steps in [Create and provision an IoT Edge for Linux on Windows device using symmetric keys](how-to-provision-single-device-linux-on-windows-symmetric.md) to install, deploy and provision EFLOW.
27
+
If you don't have an EFLOW device ready, you should create one before continuing with this guide. Follow the steps in [Create and provision an IoT Edge for Linux on Windows device using symmetric keys](how-to-provision-single-device-linux-on-windows-symmetric.md) to install, deploy, and provision EFLOW.
28
28
29
29
## How it works?
30
30
31
31
The Azure IoT Edge for Linux on Windows file and folder sharing mechanism is implemented using [virtiofs](https://virtio-fs.gitlab.io/) technology. *Virtiofs* is a shared file system that lets virtual machines access a directory tree on the host OS. Unlike other approaches, it's designed to offer local file system semantics and performance. *Virtiofs* isn't a network file system repurposed for virtualization. It's designed to take advantage of the locality of virtual machines and the hypervisor. It takes advantage of the virtual machine's co-location with the hypervisor to avoid overhead associated with network file systems.
32
32
33
33
:::image type="content" source="media/how-to-share-windows-folder-to-vm/folder-sharing-virtiofs.png" alt-text="Screenshot of a Windows folder shared with the EFLOW virtual machine using Virtio-FS technology.":::
34
34
35
-
Only Windows folders can be shared to the EFLOW Linux VM and not the other way. Also, for security reasons, when setting the folder sharing mechanism, the user must provide a _root folder_ and all the shared folders must be under that _root folder_.
35
+
Only Windows folders can be shared to the EFLOW Linux VM and not the other way. Also, for security reasons, when setting the folder sharing mechanism, the user must provide a *root folder* and all the shared folders must be under that *root folder*.
36
36
37
37
Before starting with the adding and removing share mechanisms, let's define four concepts:
38
38
39
39
-**Root folder**: Windows folder that is the root path containing subfolders to be shared to the EFLOW VM. The root folder isn't shared to the EFLOW VM. Only the subfolders under the root folder are shared to the EFLOW VM.
40
-
-**Shared folder**: A Windows folder that's under the _root folder_ and is shared with the EFLOW VM. All the content inside this folder is shared with the EFLOW VM.
40
+
-**Shared folder**: A Windows folder that's under the *root folder* and is shared with the EFLOW VM. All the content inside this folder is shared with the EFLOW VM.
41
41
-**Mounting point**: Path inside the EFLOW VM where the Windows folder content is placed.
42
42
-**Mounting option**: *Read-only* or *read and write* access. Controls the file access of the mounted folder inside the EFLOW VM.
43
43
@@ -49,25 +49,25 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
49
49
50
50
1. Start by creating a new root shared folder. Go to **File Explorer** and choose a location for the *root folder* and create the folder.
51
51
52
-
For example, create a *root folder* under _C:\Shared_ named **EFLOW-Shared**.
52
+
For example, create a *root folder* under *C:\Shared* named **EFLOW-Shared**.
53
53
54
-
:::image type="content" source="media/how-to-share-windows-folder-to-vm/root-folder.png" alt-text="Screenshot of the Windows root folder.":::
54
+
:::image type="content" source="media/how-to-share-windows-folder-to-vm/root-folder.png" alt-text="Screenshot of the C:\Shared folder that includes EFLOW-Shared folder.":::
55
55
56
56
1. Create one or more *shared folders* to be shared with the EFLOW virtual machine. Shared folders should be created under the *root folder* from the previous step.
57
57
58
58
For example, create two folders one named **Read-Access** and one named **Read-Write-Access**.
59
59
60
-
:::image type="content" source="media/how-to-share-windows-folder-to-vm/shared-folders.png" alt-text="Screenshot of Windows shared folders.":::
60
+
:::image type="content" source="media/how-to-share-windows-folder-to-vm/shared-folders.png" alt-text="Screenshot of Windows shared folders Read-Access and Read-Write-Access.":::
61
61
62
-
1. Within the _Read-Access_ shared folder, create a sample file that we'll later read inside the EFLOW virtual machine.
62
+
1. Within the *Read-Access* shared folder, create a sample file that we'll later read inside the EFLOW virtual machine.
63
63
64
-
For example, using a text editor, create a file named _Hello-World.txt_ within the _Read-Access_ folder and save some text in the file.
64
+
For example, using a text editor, create a file named *Hello-World.txt* within the *Read-Access* folder and save some text in the file.
65
65
66
66
1. Using a text editor, create the shared folder configuration file. This file contains the information about the folders to be shared with the EFLOW VM including the mounting points and the mounting options. For more information about the JSON configuration file, see [PowerShell functions for IoT Edge for Linux on Windows](reference-iot-edge-for-linux-on-windows-functions.md).
67
67
68
68
For example, using the previous scenario, we'll share the two *shared folders* we created under the *root folder*.
69
-
-_Read-Access_ shared folder will be mounted in the EFLOW virtual machine under the path _/tmp/host-read-access_ with *read-only* access.
70
-
-_Read-Write-Access_ shared folder will be mounted in the EFLOW virtual machine under the path _/tmp/host-read-write-access_ with *read and write* access.
69
+
-*Read-Access* shared folder is mounted in the EFLOW virtual machine under the path */tmp/host-read-access* with *read-only* access.
70
+
-*Read-Write-Access* shared folder is mounted in the EFLOW virtual machine under the path */tmp/host-read-write-access* with *read and write* access.
71
71
72
72
Create the JSON configuration file named **sharedFolders.json** within the *root folder**EFLOW-Shared* with the following contents:
73
73
@@ -91,9 +91,9 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
91
91
]
92
92
```
93
93
94
-
1. Open an elevated _PowerShell_ session by starting with **Run as Administrator**.
94
+
1. Open an elevated *PowerShell* session by starting with **Run as Administrator**.
95
95
96
-
1. Create the shared folder assignation using the configuration file (_sharedFolders.json_) previously created.
96
+
1. Create the shared folder assignation using the configuration file (*sharedFolders.json*) previously created.
@@ -104,7 +104,7 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
104
104
Connect-EflowVm
105
105
```
106
106
107
-
1. Go to the _Read-Access_ shared folder (mounted under _/tmp/host-read-access_) and check the content of the _Hello-World.txt_ file.
107
+
1. Go to the *Read-Access* shared folder (mounted under */tmp/host-read-access*) and check the content of the *Hello-World.txt* file.
108
108
109
109
>[!NOTE]
110
110
>By default, all shared folders are shared under *root* ownership. To access the folder, you should log in as root using `sudo su` or change the folder ownership to *iotedge-user* using `chown` command.
@@ -114,15 +114,15 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
114
114
cd /tmp/host-read-access
115
115
cat Hello-World.txt
116
116
```
117
-
If everything was successful, you should be able to see the contents of the _Hello-World.txt_ file within the EFLOW virtual machine. Verify write access by creating a file inside the _/tmp/host-read-write-access_ and then checking the contents of the new created file inside the _Read-Write-Access_ Windows host folder.
117
+
If everything was successful, you should be able to see the contents of the *Hello-World.txt* file within the EFLOW virtual machine. Verify write access by creating a file inside the */tmp/host-read-write-access* and then checking the contents of the new created file inside the *Read-Write-Access* Windows host folder.
118
118
119
119
## Check shared folders
120
120
The following steps provide example EFLOW PowerShell commands to check the Windows shared folders and options (access permissions and mounting point) with the EFLOW virtual machine.
121
121
122
122
1. Open an elevated PowerShell session by starting with **Run as Administrator**.
123
123
124
124
1. List the information of the Windows shared folders under the *root folder*.
125
-
For example, using the scenario in the previous section, we can list the information of both _Read-Access_ and _Read-Write-Access_ shared folders.
125
+
For example, using the scenario in the previous section, we can list the information of both *Read-Access* and *Read-Write-Access* shared folders.
Copy file name to clipboardExpand all lines: articles/iot-edge/iot-edge-as-gateway.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
---
2
-
title: Gateways for downstream devices - Azure IoT Edge | Microsoft Docs
3
-
description: Use Azure IoT Edge to create a transparent, opaque, or proxy gateway device that sends data from multiple downstream devices to the cloud or processes it locally.
2
+
title: Gateways for downstream devices - Azure IoT Edge
3
+
description: Use Azure IoT Edge to create a transparent, opaque, or proxy gateway device that sends data from multiple downstream devices to the cloud or processes locally.
4
4
author: PatAltimore
5
5
6
6
ms.author: patricka
7
-
ms.date: 06/27/2022
7
+
ms.date: 06/04/2024
8
8
ms.topic: conceptual
9
9
ms.service: iot-edge
10
10
services: iot-edge
@@ -65,7 +65,7 @@ IoT Edge devices can be both parents and children in transparent gateway relatio
65
65
66
66
#### Gateway discovery
67
67
68
-
A child device needs to be able to find its parent device on the local network. Configure gateway devices with a **hostname**, either a fully qualified domain name (FQDN) or an IP address, that its child devices will use to locate it.
68
+
A child device needs to be able to find its parent device on the local network. Configure gateway devices with a **hostname**, either a fully qualified domain name (FQDN) or an IP address, that its child devices use to locate it.
69
69
70
70
On downstream IoT devices, use the **gatewayHostname** parameter in the connection string to point to the parent device.
Copy file name to clipboardExpand all lines: articles/iot-edge/iot-edge-for-linux-on-windows-benefits.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,9 @@
1
1
---
2
-
title: Why use Azure IoT Edge for Linux on Windows? | Microsoft Docs
3
-
description: Benefits - Azure IoT Edge for Linux on Windows
2
+
title: Why use Azure IoT Edge for Linux on Windows?
3
+
description: Benefits for using Azure IoT Edge for Linux on Windows (EFLOW) to deploy production Linux-based cloud-native workloads on Windows devices.
Copy file name to clipboardExpand all lines: articles/iot-edge/iot-edge-for-linux-on-windows-networking.md
+7-8Lines changed: 7 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,15 @@
1
1
---
2
2
title: Azure IoT Edge for Linux on Windows networking
3
-
description: Overview of Azure IoT Edge for Linux on Windows networking
3
+
description: Overview of Azure IoT Edge for Linux on Windows networking between the Windows host OS and the IoT Edge for Linux on Windows (EFLOW) virtual machine.
4
4
author: PatAltimore
5
5
6
-
# this is the PM responsible
7
6
ms.reviewer: fcabrera
8
7
ms.service: iot-edge
9
8
ms.custom: linux-related-content
10
9
services: iot-edge
11
10
ms.topic: conceptual
12
-
ms.date: 11/15/2022
13
-
ms.author: fcabrera
11
+
ms.date: 06/04/2024
12
+
ms.author: patricka
14
13
---
15
14
16
15
# IoT Edge for Linux on Windows networking
@@ -22,7 +21,7 @@ ms.author: fcabrera
22
21
## Networking
23
22
To establish a communication channel between the Windows host OS and the EFLOW virtual machine, we use Hyper-V networking stack. For more information about Hyper-V networking, see [Hyper-V networking basics](/windows-server/virtualization/hyper-v/plan/plan-hyper-v-networking-in-windows-server#hyper-v-networking-basics). Basic networking in EFLOW is simple; it uses two parts, a virtual switch and a virtual network.
24
23
25
-
The easiest way to establish basic networking on Windows client SKUs is by using the [**default switch**](https://techcommunity.microsoft.com/t5/virtualization/hyper-v-virtual-machine-gallery-and-networking-improvements/ba-p/382375) already created by the Hyper-V feature. During EFLOW deployment, if no specific virtual switch is specified using the `-vSwitchName` and `-vSwitchType` flags, the virtual machine will be created using the **default switch**.
24
+
The easiest way to establish basic networking on Windows client SKUs is by using the [**default switch**](https://techcommunity.microsoft.com/t5/virtualization/hyper-v-virtual-machine-gallery-and-networking-improvements/ba-p/382375) already created by the Hyper-V feature. During EFLOW deployment, if no specific virtual switch is specified using the `-vSwitchName` and `-vSwitchType` flags, the virtual machine is created using the **default switch**.
26
25
27
26
On Windows Server SKUs devices, networking is a bit more complicated as there's no **default switch** available. However, there's a comprehensive guide on [Azure IoT Edge for Linux on Windows virtual switch creation](./how-to-create-virtual-switch.md).
28
27
@@ -82,7 +81,7 @@ By default, the EFLOW VM DNS configuration file contains the local stub *127.0.0
82
81
83
82
It's possible to configure the EFLOW virtual machine to use a specific DNS server, or list of servers. To do so, you can use the `Set-EflowVmDnsServers` PowerShell cmdlet. For more information about DNS configuration, see [PowerShell functions for IoT Edge for Linux on Windows](./reference-iot-edge-for-linux-on-windows-functions.md#set-eflowvmdnsservers).
84
83
85
-
To check the DNS servers assigned to the EFLOW VM, from inside the EFLOW VM, use the command: `resolvectl status`. The command's output will show a list of the DNS servers configured for each interface. In particular, it's important to check the *eth0* interface status, which will be the default interface for the EFLOW VM communication. Also, make sure to check the IP addresses of the **Current DNS Server**s and **DNS Servers** fields of the list. If there's no IP address, or the IP address isn't a valid DNS server IP address, then the DNS service won't work.
84
+
To check the DNS servers assigned to the EFLOW VM, from inside the EFLOW VM, use the command: `resolvectl status`. The command's output shows a list of the DNS servers configured for each interface. In particular, it's important to check the *eth0* interface status, which is the default interface for the EFLOW VM communication. Also, make sure to check the IP addresses of the **Current DNS Server**s and **DNS Servers** fields of the list. If there's no IP address, or the IP address isn't a valid DNS server IP address, then the DNS service won't work.
86
85
87
86

88
87
@@ -95,14 +94,14 @@ Get-EflowVmAddr
95
94
96
95
97
96
### Multiple Network Interface Cards (NICs)
98
-
There are many network virtual appliances and scenarios that require multiple NICs. The EFLOW virtual machine supports attaching multiple NICs. With multiple NICs you can better manage your network traffic. You can also isolate traffic between the frontend NIC and backend NICs, or separating data plane traffic from the management plane communication.
97
+
There are many network virtual appliances and scenarios that require multiple NICs. The EFLOW virtual machine supports attaching multiple NICs. With multiple NICs, you can better manage your network traffic. You can also isolate traffic between the frontend NIC and backend NICs, or separating data plane traffic from the management plane communication.
99
98
100
99
For example, there are numerous of industrial IoT scenarios that require connecting the EFLOW virtual machine to a demilitarized zone (DMZ), and to the offline network where all the OPC UA compliant devices are connected. This is just one of the multiple scenarios that can be supported by attaching multiple NICs to the EFLOW VM.
101
100
102
101
For more information about multiple NICs, see [Multiple NICs support](https://github.com/Azure/iotedge-eflow/wiki/Multiple-NICs).
103
102
104
103
>[!WARNING]
105
-
>When using EFLOW multiple NICs feature, you may want to set up the different routes priorities. By default, EFLOW will create one default route per _ehtX_ interface assigned to the VM and assign a random priority. If all interfaces are connected to the internet, random priorities may not be a problem. However, if one of the NICs is connected to an offline network, you may want to prioritize the online NIC over the offline NIC to get the EFLOW VM connected to the internet. For more information about custom routing, see [EFLOW routing](https://github.com/Azure/iotedge-eflow/tree/main/samples/networking/routing).
104
+
>When using EFLOW multiple NICs feature, you may want to set up the different routes priorities. By default, EFLOW will create one default route per *ehtX* interface assigned to the VM and assign a random priority. If all interfaces are connected to the internet, random priorities may not be a problem. However, if one of the NICs is connected to an offline network, you may want to prioritize the online NIC over the offline NIC to get the EFLOW VM connected to the internet. For more information about custom routing, see [EFLOW routing](https://github.com/Azure/iotedge-eflow/tree/main/samples/networking/routing).
0 commit comments