Freigeben über


Freigeben eines Windows-Ordners für Azure IoT Edge für Linux unter Windows

Gilt für:Häkchen für IoT Edge 1.5 IoT Edge 1.5

Wichtig

IoT Edge 1.5 LTS ist das unterstützte Release. IoT Edge 1.4 LTS wurde am 12. November 2024 eingestellt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

Der virtuelle Azure IoT Edge für Linux unter Windows (EFLOW) ist vom Windows-Hostbetriebssystem isoliert, und der virtuelle Computer kann nicht auf das Hostdateisystem zugreifen. Standardmäßig verfügt der virtuelle EFLOW-Computer über ein eigenes Dateisystem und kann nicht auf Ordner oder Dateien auf dem Hostcomputer zugreifen. Mit dem EFLOW-Datei- und Ordnerfreigabemechanismus können Sie Windows-Dateien und -Ordner mit der CBL-Mariner Linux EFLOW-VM freigeben.

In diesem Artikel erfahren Sie, wie Sie einen Ordner zwischen dem Windows-Hostbetriebssystem und dem virtuellen EFLOW-Computer freigeben.

Voraussetzungen

  • Update für Azure IoT Edge für Linux unter Windows 1.4.4 LTS oder höher. Weitere Informationen zu EFLOW-Versionshinweisen finden Sie unter EFLOW-Versionen.
  • Ein Computer mit einem x64- oder x86-Prozessor.
  • Windows 10 oder 11 (21H2) oder höher, auf das das Update vom November 2022 angewendet wurde.

Wenn Sie kein EFLOW-Gerät bereit haben, erstellen Sie ein Gerät, bevor Sie mit diesem Handbuch fortfahren. Führen Sie die Schritte unter Erstellen und Bereitstellen eines IoT Edge für Linux unter Windows-Geräts mithilfe von symmetrischen Schlüsseln aus, um EFLOW zu installieren und bereitzustellen.

Funktionsweise

Azure IoT Edge für Linux unter Windows verwendet virtiofs-Technologie für die Freigabe von Dateien und Ordnern. Virtiofs ist ein freigegebenes Dateisystem, mit dem virtuelle Computer eine Verzeichnisstruktur im Hostbetriebssystem verwenden können. Im Gegensatz zu anderen Ansätzen wurde sie für lokale Dateisystemsemantik und Leistung entwickelt. virtiofs ist kein Netzwerkdateisystem, das für die Virtualisierung umfunktioniert wurde. Es verwendet die Lokalität virtueller Computer und des Hypervisors, um den Aufwand von Netzwerkdateisystemen zu vermeiden.

Screenshot eines Windows-Ordners, der mit dem virtuellen EFLOW-Computer mit Virtio-FS Technologie geteilt wurde.

Sie können Windows-Ordner nur für die EFLOW Linux-VM freigeben, nicht auf andere Weise. Zur Sicherheit müssen Sie beim Einrichten der Ordnerfreigabe einen Stammordner angeben, und alle freigegebenen Ordner müssen sich unter diesem Stammordner befinden.

Bevor Sie freigegebene Ordner hinzufügen oder entfernen, überprüfen Sie die folgenden vier Konzepte:

  • Stammordner: Der Windows-Ordner, der der Stammpfad für Unterordner ist, die Sie für die EFLOW-VM freigeben. Der Stammordner selbst wird nicht freigegeben. Nur Unterordner unter dem Stammordner werden freigegeben.
  • Freigegebener Ordner: Ein Windows-Ordner unter dem Stammordner , den Sie für die EFLOW-VM freigeben. Alle Inhalte in diesem Ordner werden für die EFLOW-VM freigegeben.
  • Montagepunkt: Der Pfad innerhalb der EFLOW-VM, an dem der Inhalt des Windows-Ordners angezeigt wird.
  • Bereitstellungsoption: Zugriff vom Typ Schreibgeschützt oder Lesen und Schreiben. Diese Einstellung steuert den Dateizugriff für den bereitgestellten Ordner innerhalb der EFLOW-VM.

Hinzufügen freigegebener Ordner

Diese Schritte zeigen Beispiel für EFLOW PowerShell-Befehle zum Freigeben eines oder mehrerer Windows-Hostbetriebssystemordner mit der EFLOW-VM.

Hinweis

Wenn Sie Windows 10 verwenden, starten Sie ihr Windows-Hostbetriebssystem nach einer neuen MSI-Installation neu oder aktualisieren, bevor Sie die freigegebenen Windows-Ordner zur EFLOW-VM hinzufügen.

  1. Erstellen Sie einen neuen freigegebenen Stammordner. Wechseln Sie zum Datei-Explorer, wählen Sie einen Speicherort für den Stammordner aus, und erstellen Sie den Ordner.

    Erstellen Sie beispielsweise einen Stammordner mit dem Namen EFLOW-Shared unter C:\Shared.

    Screenshot des Ordners

  2. Erstellen Sie einen oder mehrere freigegebene Ordner unter dem Stammordner, um sie für den virtuellen EFLOW-Computer freizugeben.

    Erstellen Sie beispielsweise zwei Ordner: einen mit dem Namen "Read-Access " und einen mit dem Namen "Read-Write-Access".

    Screenshot der freigegebenen Windows-Ordner „Read-Access“ und „Read-Write-Access“.

  3. Erstellen Sie im freigegebenen Ordner Read-Access eine Beispieldatei, die wir später auf dem virtuellen EFLOW-Computer lesen.

    Verwenden Sie beispielsweise einen Text-Editor, um eine Datei namens Hello-World.txt im Ordner "Read-Access " zu erstellen und Text in der Datei zu speichern.

  4. Verwenden Sie einen Text-Editor, um die Konfigurationsdatei für freigegebene Ordner zu erstellen. Diese Datei enthält Informationen zu den Ordnern, die für die EFLOW-VM freigegeben werden sollen, einschließlich der Bereitstellungspunkte und Optionen. Weitere Informationen zur JSON-Konfigurationsdatei finden Sie unter PowerShell-Funktionen für IoT Edge für Linux unter Windows.

    Geben Sie in diesem Szenario beispielsweise die beiden freigegebenen Ordner frei, die Sie unter dem Stammordner erstellt haben.

    • Der freigegebene Ordner "Read-Access" wird auf der virtuellen EFLOW-Maschine unter dem Verzeichnis /tmp/host-read-access mit nur-Lesezugriff bereitgestellt.
    • Der freigegebene Ordner "Read-Write-Access " wird auf dem virtuellen EFLOW-Computer unter dem Pfad "/tmp/host-read-write-access " mit Lese- und Schreibzugriff bereitgestellt.

    Erstellen Sie eine JSON-Konfigurationsdatei namens sharedFolders.json im Stammordner"EFLOW-Shared " mit den folgenden Inhalten:

    [
        {
            "sharedFolderRoot": "C:\\Shared\\EFLOW-Shared",
            "sharedFolders": [
                {   
                    "hostFolderPath": "Read-Access", 
                    "readOnly": true, 
                    "targetFolderOnGuest": "/tmp/host-read-access" 
                },
                {   
                    "hostFolderPath": "Read-Write-Access", 
                    "readOnly": false, 
                    "targetFolderOnGuest": "/tmp/host-read-write-access" 
                }
            ]
        }
    ]
    
  5. Öffnen Sie eine PowerShell-Sitzung mit erhöhten Rechten, indem Sie "Als Administrator ausführen" auswählen.

  6. Erstellen Sie die Zuweisung der freigegebenen Ordner mithilfe der zuvor erstellten Konfigurationsdatei (sharedFolders.json).

    Add-EflowVmSharedFolder -sharedFoldersJsonPath "C:\Shared\EFLOW-Shared\sharedFolders.json"
    
  7. Nach Abschluss des Cmdlets kann der virtuelle EFLOW-Computer auf die freigegebenen Ordner zugreifen. Stellen Sie eine Verbindung mit dem virtuellen EFLOW-Computer her, und überprüfen Sie, ob die Ordner ordnungsgemäß freigegeben werden.

  8. Wechseln Sie zum freigegebenen Ordner "Read-Access " (bereitgestellt unter "/tmp/host-read-access") und überprüfen Sie den Inhalt der Hello-World.txt Datei.

    Hinweis

    Standardmäßig befinden sich alle freigegebenen Ordner im Stammverzeichnis. Um auf den Ordner zuzugreifen, melden Sie sich als Root-Benutzer an sudo su oder ändern Sie den Besitzer des Ordners auf iotedge-user mithilfe des chown Befehls.

    sudo su
    cd /tmp/host-read-access
    cat Hello-World.txt
    

Wenn alles erfolgreich war, werden die Inhalte der dateiHello-World.txt auf dem virtuellen EFLOW-Computer angezeigt. Um den Schreibzugriff zu überprüfen, erstellen Sie eine Datei in /tmp/host-read-write-access , und überprüfen Sie dann den Inhalt der neuen Datei im Windows-Hostordner "Read-Write-Access ".

Überprüfen freigegebener Ordner

Die folgenden Schritte enthalten PowerShell-Beispielbefehle für EFLOW, um die freigegebenen Windows-Ordner und Optionen (Zugriffsberechtigungen und Bereitstellungspunkt) auf dem virtuellen EFLOW-Computer zu überprüfen.

  1. Öffnen Sie eine PowerShell-Sitzung mit erhöhten Rechten, indem Sie mit Als Administrator ausführen beginnen.

  2. Listen Sie die Informationen der freigegebenen Windows-Ordner unter dem Stammordner auf. Beispielsweise können Sie mithilfe des Szenarios im vorherigen Abschnitt die Informationen der freigegebenen Ordner Read-Access und Read-Write-Access auflisten.

    Get-EflowVmSharedFolder -sharedfolderRoot "C:\Shared\EFLOW-Shared" -hostFolderPath @("Read-Access", "Read-Write-Access")
    

Weitere Informationen zum Cmdlet Get-EflowVmSharedFolder finden Sie unter PowerShell-Funktionen für IoT Edge für Linux unter Windows.

Entfernen freigegebener Ordner

Die folgenden Schritte enthalten PowerShell-Beispielbefehle für EFLOW, um die Freigabe eines freigegebenen Windows-Ordners für den virtuellen EFLOW-Computer zu beenden.

  1. Öffnen Sie eine PowerShell-Sitzung mit erhöhten Rechten, indem Sie mit Als Administrator ausführen beginnen.

  2. Beenden Sie die Freigabe des Ordners Read-Access unter dem Stammordner für den virtuellen EFLOW-Computer.

    Remove-EflowVmSharedFolder -sharedfolderRoot "C:\Shared\EFLOW-Shared" -hostFolderPath "Read-Access"
    

Weitere Informationen zum Cmdlet Remove-EflowVmSharedFolder finden Sie unter PowerShell-Funktionen für IoT Edge für Linux unter Windows.

Nächste Schritte

Führen Sie die Schritte in allgemeinen Problemen und Lösungen für Azure IoT Edge für Linux unter Windows aus, um Probleme zu beheben, die beim Einrichten von IoT Edge für Linux unter Windows auftreten.