Les moyens les plus efficaces de transférer des fichiers d’une machine virtuelle vers un hôte

Les machines virtuelles offrent de nombreux avantages, tels que la flexibilité, l’utilisation rationnelle des ressources et l’exécution dans des environnements isolés. Une tâche courante dans les environnements virtuels est la copie de fichiers entre les VM et les hôtes. Lisez pour apprendre comment copier des fichiers vers une machine virtuelle depuis un hôte, comment transférer des fichiers d’une VM vers un hôte et comment copier des fichiers entre des VMs.

Les composants de notre environnement

Commençons par passer en revue la terminologie :

  • A host is a physical machine on which a hypervisor is installed.
  • A hypervisor is virtualization software to run virtual machines on the host. There are two types of hypervisors:
    • Type 1 : Utilisation d’un serveur ESXi, qui est la machine hôte
    • Type 2 : Utilisation de VMware Workstation, et dans ce cas Windows et Linux peuvent être le système d’exploitation de la machine hôte

Dans cette présentation, l’environnement utilisé pour expliquer comment transférer des fichiers de la VM à l’hôte est composé des éléments suivants :

  • Hôte ESXi 1 : 192.168.101.201
  • Hôte ESXi 2 : 192.168.101.202
  • Machine Ubuntu Linux : 192.168.101.210
  • Hôte Windows avec VMware Workstation installé
  • Réseau : 192.168.101.0/24
  • VMs ESXi et VMs de VMware Workstation connectés au même réseau

Nous utilisons les technologies suivantes pour copier des fichiers entre les VMs et les hôtes :

  • Dossiers partagés
  • Presse-papiers partagé et glisser-déposer
  • Périphérique de stockage USB
  • PowerCLI
  • SSH et SCP
  • Partage NFS
  • Télécharger/Uploader des fichiers dans une interface web VMware
  • Fichiers ISO

Utilisation de dossiers partagés pour transférer un fichier VM vers l’hôte

Dossiers partagés est une fonctionnalité pratique dans VMware Workstation pour transférer des fichiers entre un hôte physique Windows ou Linux sur lequel VMware Workstation est installé et des VM en cours d’exécution sur VMware Workstation. Pour macOS, VMware Fusion est l’équivalent de VMware Workstation et prend en charge des fonctionnalités similaires.

Passons maintenant en revue les étapes pour transférer des fichiers de la VM à l’hôte et vice versa en utilisant les dossiers partagés VMware.

Remarque: Pour que cette fonctionnalité fonctionne, VMware Tools doit être installé sur une VM. Les données entre un hôte et une VM sont transférées en utilisant l’interaction via VMware Tools entre l’hôte et le système d’exploitation invité sans utiliser de réseau.

  1. Sélectionnez une VM pour laquelle vous souhaitez configurer le partage de fichiers VMware. Nous sélectionnons l’une de nos VM Windows.
  2. Cliquez sur VM > Paramètres (Modifier les paramètres de la machine virtuelle) dans l’interface graphique de VMware Workstation.
  3. Dans la fenêtre Paramètres de la machine virtuelle, sélectionnez l’onglet Options et cliquez sur Dossiers partagés. Dans la section Partage de dossier, sélectionnez Toujours activé. Facultativement, vous pouvez mapper un dossier partagé comme un lecteur réseau dans les invités Windows pour plus de commodité en sélectionnant la case à cocher.
  4. Cliquez sur Ajouter pour sélectionner un dossier à utiliser comme dossier partagé.

  5. Entrez le chemin du dossier à partager sur l’hôte ou cliquez sur Parcourir et sélectionnez le dossier nécessaire. Nous sélectionnons C:\temp\partage-VM

    Entrez un nom pour le dossier partagé, par exemple, partage-VM

    Cliquez sur Suivant.

  6. Sélectionnez Activer ce partage. Si vous souhaitez que les machines virtuelles accèdent au dossier partagé en mode lecture seule, sélectionnez la case à cocher Lecture seule. Cliquez sur Terminer.

  7. Le nouveau dossier partagé est maintenant affiché dans la liste des dossiers partagés dans l’onglet Options de la fenêtre des Paramètres de la machine virtuelle. Un dossier partagé est activé si la case correspondante est cochée à côté du nom du fichier.

    Cliquez sur OK pour enregistrer les paramètres.

  8. Ouvrez l’interface utilisateur de la machine virtuelle Windows utilisée pour partager le dossier avec la fonctionnalité Dossiers partagés.
  9. Cliquez sur Réseau (Mes lieux réseau) dans Ordinateur (Ce PC) ou dans l’Explorateur Windows pour voir les ordinateurs disponibles sur le réseau.
  10. Sélectionnez vmware-host comme nom d’ordinateur sur lequel le dossier partagé est configuré. Ce nom est défini par défaut et est associé à votre machine physique (hôte) avec le dossier partagé.

  11. Cliquez sur Dossiers partagés et sélectionnez le dossier partagé nécessaire (share-VM dans notre exemple). Le chemin complet vers le dossier partagé, dans notre cas, est

    \\vmware-host\Dossiers partagés\share-VM\

Vous pouvez copier des fichiers vers une machine virtuelle depuis un hôte et depuis une machine virtuelle vers un hôte. Nous avons copié Test01.txt depuis un hôte Windows vers un invité Windows dans notre exemple en utilisant le partage de fichiers VMware dans VMware Workstation.

Pour les invités Linux, vous pouvez monter tous les dossiers partagés VMware avec la commande comme indiqué ci-dessous :

  • Sous Linux avec un noyau antérieur à 4.0 :

    mount -t vmhgfs .host:/ /home/user1/shares

  • Sous Linux avec un noyau 4.0 ou plus récent :

    /usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other

Si vous souhaitez conserver un dossier partagé monté après le redémarrage de la machine virtuelle, ajoutez les lignes appropriées avec le commentaire et la configuration dans /etc/fstab, par exemple :

# Dossier de partage VMware pour transférer des fichiers entre un invité et un hôte VMWare

.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=1000 0 0

Avant de passer à la section suivante, notez que la fonction de dossiers partagés est disponible uniquement dans VMware Workstation (et VMware Fusion sur macOS), et n’est pas disponible pour les machines virtuelles exécutées sur des hôtes ESXi. Pour les hôtes ESXi, vous pouvez partager un dossier manuellement et utiliser un réseau pour copier des fichiers entre des machines Windows. Pour copier des fichiers d’une machine virtuelle vers un hôte ESXi, vous devez utiliser un outil supplémentaire ou combiner la copie de fichiers à partir d’un dossier partagé manuellement avec l’une des méthodes expliquées ci-dessous.

Il existe d’autres méthodes pour partager un dossier sous Windows 10 et Windows Server 2019. Vous pouvez également en apprendre davantage sur le protocole de partage de fichiers SMB.

Si vous disposez d’un compte Windows avec des droits administratifs et qu’une stratégie de sécurité autorise l’accès aux partages administratifs cachés disponibles par défaut, vous pouvez accéder aux fichiers sur les disques locaux de la machine Windows en utilisant le chemin d’accès au partage suivant :

\\Adresse-IP\c$

Où :

Adresse-IP est une adresse IP ou un nom d’hôte d’une machine Windows distante.

C$ is the needed disk drive letter on a remote Windows machine which is a hidden system share.

Utilisation du presse-papiers partagé pour transférer des fichiers vers des machines virtuelles depuis un hôte

Le presse-papiers partagé est une fonctionnalité qui vous permet de copier et coller du contenu tel que du texte et des fichiers entiers d’une machine virtuelle vers une machine hôte sur laquelle VMware Workstation est installé. Le processus est similaire à celui que vous utilisez pour copier-coller du contenu entre différentes fenêtres d’application sous Windows ou Linux avec l’interface graphique.

L’ensemble complet des fonctionnalités est disponible dans VMware Workstation, qui vous permet de transférer des fichiers vers des machines virtuelles depuis un hôte et depuis une machine virtuelle vers un hôte. Vous pouvez également faire glisser-déposer des fichiers en alternative à la copie-collage.

Presse-papiers partagé dans VMware Workstation

Explorons comment transférer des fichiers vers des machines virtuelles VMware Workstation en utilisant un presse-papiers partagé et le glisser-déposer. Dans notre exemple, VMware Workstation est installé sur un hôte Windows.

  1. Sélectionnez votre machine virtuelle dans le volet de gauche où les machines virtuelles sont répertoriées.
  2. Cliquez sur Modifier les paramètres de la machine virtuelle (VM > Paramètres).

  3. Sélectionnez l’onglet Options et cliquez sur Invité Isolation.

    Sélectionnez deux cases à cocher :

    • Activer le glisser-déposer
    • Activer la copie et le collage

    Cliquez sur OK pour enregistrer les paramètres et fermer la fenêtre.

Presse-papiers partagé dans VMware ESXi

Quant aux machines virtuelles fonctionnant sur VMware ESXi, vous ne pouvez pas copier de fichier en utilisant le glisser-déposer ou via le presse-papiers partagé entre une machine virtuelle sur un hôte ESXi et toute autre machine. La seule option est de copier-coller du texte entre une machine virtuelle fonctionnant sur ESXi et votre machine locale (sur laquelle VMware Workstation ou VMware Remote Console est installé). La copie-coller et le glisser-déposer de fichiers ne sont pas pris en charge pour des raisons de sécurité.

Cependant, si vous ne pouvez pas copier un fichier de configuration, par exemple, vous pouvez copier le contenu texte du fichier en utilisant un presse-papiers partagé. Par défaut, le presse-papiers partagé est désactivé dans la configuration de la machine virtuelle ESXi. Faites ce qui suit sur un hôte ESXi pour activer un presse-papiers partagé afin de copier-coller des données textuelles :

  1. La VM doit être éteinte lors de la modification de la configuration de la VM. Éteignez la VM si elle est en cours d’exécution.
  2. Ouvrez les réglages de la VM. Vous pouvez utiliser le Client hôte VMware et le Client VMware vSphere. Sélectionnez une VM, cliquez sur Modifier les réglages de la VM et sélectionnez l’onglet Options de la VM.

    Agrandissez la section Paramètres avancés et cliquez sur Modifier la configuration.

  3. Vous devez ajouter trois paramètres de configuration à la configuration de la VM (qui est écrite dans le fichier VMX de configuration de la VM). Cliquez sur Ajouter un paramètre.

  4. Ajoutez ces trois paramètres :

    isolation.tools.copy.disable FALSE

    isolation.tools.paste.disable FALSE

    isolation.tools.setGUIOptions.enable TRUE

  5. Cliquez sur OK et enregistrez les paramètres.

En alternative, vous pouvez modifier manuellement un fichier VMX avec la configuration VM située sur un datastore ESXi dans le répertoire VM.

  1. Connectez-vous à l’invite de commande ESXi localement ou via SSH.
  2. Accédez au répertoire VM (un répertoire où les fichiers VM sont stockés sur un datastore). Dans notre cas, nous allons dans ce répertoire :

    cd /vmfs/volumes/datastore10a/Windows-VM/

  3. Modifiez le fichier de configuration VMX. Dans notre cas, le fichier est Windows-VM.vmx

    vi Windows-VM.vmx

  4. Ajoutez les trois paramètres indiqués ci-dessus à la fin de ce fichier de configuration.
  5. Enregistrez les modifications et fermez le fichier (quittez l’éditeur de texte).

Maintenant, nous pouvons copier et coller du texte entre notre machine locale et une machine virtuelle exécutée sur un hôte ESXi en utilisant la Console distante VMware et VMware Workstation pour se connecter à une VM.

Utilisation d’un périphérique de stockage USB

VMware ESXi et VMware Workstation prennent en charge la fonction de transfert USB, qui vous permet d’insérer un périphérique USB dans une machine hôte et de connecter ce périphérique USB à une machine virtuelle exécutée sur cet hôte. Vous pouvez connecter un périphérique de stockage USB à une machine hôte et à une machine virtuelle séquentiellement pour copier des fichiers entre ces machines dans les deux sens.

Note : Les outils VMware doivent être installés sur le système d’exploitation (SE) invité de la VM pour utiliser la fonction de transfert USB.

Copie de fichiers entre les VM de VMware Workstation et l’hôte

Suivez les étapes suivantes pour transférer des fichiers de la VM vers l’hôte dans VMware Workstation installé sur des hôtes Windows et Linux (l’interface est unifiée) :

  1. Allumez la machine virtuelle.
  2. Insérez un périphérique de stockage USB, tel qu’un disque dur USB (HDD) ou une clé USB, dans un ordinateur physique qui est une machine hôte.
  3. La fenêtre Nouveau périphérique USB détecté s’ouvre dans VMware Workstation. Choisissez où vous souhaitez connecter votre périphérique USB:
    • Connecter à l’hôte
    • Connecter à une machine virtuelle

    Choisissons la deuxième option et connectons notre clé USB à la machine virtuelle. Nous exécutons une machine virtuelle Windows dans cet exemple. Si plusieurs machines virtuelles sont en cours d’exécution sur VMware Workstation, vous devez sélectionner la machine virtuelle nécessaire dans la liste. Un périphérique USB ne peut être connecté qu’à une seule machine virtuelle à la fois. Cliquez sur OK pour continuer.

    Si votre périphérique de stockage USB a déjà été inséré dans le port USB de la machine hôte physique sur laquelle VMware Workstation est installé, la fenêtre contextuelle avec les options de passage USB ne s’affichera pas automatiquement. Vous pouvez connecter un périphérique USB à une machine virtuelle (déconnecter de l’hôte) dans le menu:

    Allez à VM> Périphériques amovibles> Nom de votre périphérique de stockage USB> Connecter (Déconnecter de l’hôte).

    Dans notre exemple, le nom de la clé USB est Kingston DataTraveler 2.0.

  4. Maintenant, nous pouvons voir la clé USB connectée à la VM Windows 7 dans la liste des lecteurs de disque de Poste de travail (Explorateur Windows). Pour vérifier le périphérique de stockage USB:
    • Cliquez avec le bouton droit sur Poste de travail et sélectionnez Gérer.
    • Accédez à Gestion de l’ordinateur > Gestionnaire de périphériques et Gestion de l’ordinateur > Gestion des disques dans la console appropriée après avoir fait un clic droit.

    Si aucune lettre de lecteur n’est attribuée automatiquement, attribuez la lettre manuellement dans la console Gestion des disques.

    Le processus pour les invités Linux est identique. Dans certaines distributions Linux, vous devrez peut-être monter manuellement un périphérique de stockage USB connecté comme une clé USB dans le système d’exploitation Linux.

  5. Une fois que le périphérique de stockage USB a été monté sur la VM et reconnu par le système d’exploitation invité, copiez les fichiers nécessaires de la VM vers un périphérique de stockage USB. La copie de fichiers du périphérique de stockage USB vers une VM fonctionne également maintenant.

  6. Après avoir copié tous les fichiers nécessaires de la VM vers la clé USB, déconnectez la clé USB de la VM et connectez ce périphérique USB à l’hôte :

    Cliquez sur VM > Périphériques amovibles > Nom de votre périphérique de stockage USB > Déconnecter (Connecter à l’hôte).

  7. A USB storage device is now connected to a host machine (a Windows machine on which VMware Workstation is running in our case). We can transfer the files that were copied from the VM to the USB flash drive to your host machine.

Le transfert USB de VMware Workstation vers les VM ESXi

Vous pouvez utiliser une clé USB insérée dans un serveur ESXi et insérée dans votre machine locale Windows ou Linux (avec VMware Workstation ou VMware Remote Console (VMRC) installé) que vous utilisez pour gérer un hôte ESXi à distance pour connecter cette clé USB à une VM ESXi. Dans le premier cas, le transfert USB connecté à l’hôte est utilisé et dans le deuxième cas, le transfert USB connecté au client est utilisé.

Connectons une clé USB insérée dans notre machine physique locale Windows 10 à une VM Windows XP exécutée sur un hôte ESXi v7.0 (en utilisant la fonctionnalité de transfert USB connecté au client). VMware Workstation est installé sur notre machine physique Windows et connecté à l’hôte ESXi via le réseau (192.168.101.0/24).

Pour ce faire:

  1. A VM must be powered off to edit the VM settings.
  2. Assurez-vous qu’un contrôleur USB est présent dans la liste du matériel virtuel de la VM. Vous pouvez vérifier la configuration de la VM dans VMware Host Client. Sélectionnez votre VM (Windows-VM dans notre cas), cliquez sur Modifier les paramètres et sélectionnez l’onglet Matériel virtuel.

  3. Retournons à VMware Workstation installé sur notre machine locale (physique) Windows 10. Cliquez sur Fichier > Se connecter à un serveur dans VMware Workstation pour vous connecter à un hôte ESXi distant.

  4. Entrez le nom ou l’adresse IP du serveur ESXi, le nom d’utilisateur et le mot de passe. Cliquez sur Connecter.

  5. Étendez l’hôte ESXi dans le volet de gauche de VMware Workstation où les hôtes distants, les machines virtuelles distantes sur ces hôtes et les machines virtuelles VMware Workstation locales sont affichés.
  6. Sélectionnez une machine virtuelle s’exécutant sur un hôte ESXi distant. Nous sélectionnons Windows-VM s’exécutant sur 192.168.101.201. Nous pouvons voir une interface utilisateur du système d’exploitation invité de la machine virtuelle sélectionnée après cela.
  7. Cliquez sur VM > Périphériques Amovibles > Le Nom de Votre Périphérique de Stockage USB > Connecter (Déconnecter de l’Hôte).

    Notez que nous sélectionnons un périphérique USB connecté à notre machine physique Windows sur laquelle VMware Workstation est installé. Ce périphérique USB n’est pas un périphérique connecté à un hôte ESXi physique auquel nous nous sommes connectés à distance.

  8. Maintenant, nous pouvons voir notre clé USB connectée à la machine virtuelle Windows XP fonctionnant sur l’hôte ESXi distant: Démarrer > CMD > compmgmt.msc > Gestionnaire de périphériques.

  9. Attribuez une lettre de lecteur de disque à la partition de la clé USB connectée si aucune lettre de lecteur n’a été attribuée. Copiez les fichiers nécessaires entre la machine virtuelle et la clé USB. Vous pouvez transférer des fichiers vers une machine virtuelle et depuis une machine virtuelle.

  10. Après avoir copié les fichiers, vous pouvez déconnecter le périphérique de stockage USB de la machine virtuelle et reconnecter ce périphérique à la machine physique locale Windows 10 sur laquelle VMware Workstation est en cours d’exécution. Dans l’interface graphique de VMware Workstation, cliquez sur VM > Périphériques amovibles > Nom de votre périphérique de stockage USB > Déconnecter (Connecter à l’hôte).

Connexion d’une clé USB sur ESXi

Cette méthode est extrêmement utile dans certains cas, par exemple, si vous devez mettre à jour un pilote réseau sur un hôte ESXi et que vous ne pouvez pas utiliser le réseau. Connecter une clé USB à ESXi est plus compliqué que de se connecter à une machine hôte exécutant VMware Workstation.

Il existe des limitations sur ESXi concernant les systèmes de fichiers pris en charge pouvant être montés sur ESXi. Les clés USB ou disques durs USB avec des systèmes de fichiers FAT32 et NTFS ne sont pas pris en charge. Pour cette raison, nous devons créer une partition sur notre clé USB et formater cette partition avec VFAT (reconnu dans Windows comme FAT12). VFAT a des limitations, telles que la taille maximale de la partition et la taille maximale des fichiers. Par conséquent, cette méthode n’est pas applicable pour les fichiers volumineux tels que les disques virtuels ou les images ISO de plus de 4 Go. Cependant, ces limites sont suffisantes pour transférer des fichiers de configuration, des pilotes, etc.

Création d’une partition sur une clé USB

Tout d’abord, créons une nouvelle partition sur notre clé USB et formater cette partition en VFAT. Nous pouvons le faire en attachant une clé USB insérée dans le serveur ESXi à une machine virtuelle (en utilisant la fonctionnalité de passage USB connectée à l’hôte). Alternativement, nous pouvons insérer une clé USB dans une machine physique Windows ou Linux.

Dans cet exemple, nous utilisons une machine Windows 7 pour préparer une clé USB pour ESXi. Les commandes pour Windows Server 2008R2, Windows 10 et d’autres versions plus récentes de Windows sont les mêmes.

  1. Pour vérifier qu’une clé USB est connectée à votre machine Windows, cliquez avec le bouton droit sur Mon ordinateur ou Ce PC (ou exécutez diskmgmt.msc depuis CMD) pour ouvrir Gestion des disques .
  2. Ouvrez l’invite de commande Windows:

    Démarrer > Exécuter > cmd

  3. Tapez diskpart dans la ligne de commande et appuyez sur Entrée.

    Vous voyez un invite diskpart :

    Diskpart

  4. Listez les disques connectés à votre machine Windows :

    list disk

    Recherchez votre clé USB dans la liste de sortie et retenez le numéro de disque. Dans notre cas, Disque 1 est le numéro de notre clé USB (voir la capture d’écran ci-dessous).

  5. Sélectionnez votre clé USB en définissant le numéro de disque approprié obtenu à partir de la sortie de la commande ci-dessus (disque 1 dans notre cas).

    sélectionnez le disque 1

  6. Liste des partitions sur la clé USB sélectionnée :

    liste partition

    Nous avons une partition (Partition 1) sur notre clé USB (voir la capture d’écran ci-dessous). Avoir une seule partition sur une clé USB est le cas le plus courant.

    Ensuite, nous devons supprimer les partitions sur la clé USB.

    Important : Toutes les données sur la clé USB seront supprimées. Vous pouvez copier les données de la clé USB si nécessaire avant de passer aux étapes suivantes.

  7. Sélectionnez une partition sur la clé USB qui doit être supprimée :

    sélectionner partition 1

  8. Exécutez la commande pour supprimer la partition sélectionnée :

    supprimer partition

  9. Sélectionnez à nouveau le disque qui est votre clé USB :

    sélectionner le disque 1

  10. Créez une nouvelle partition avec un système de fichiers VFAT. Dans cet exemple, nous créons une partition de 4 Go sur notre clé USB. Gardez à l’esprit que vous ne pouvez pas stocker de fichiers de plus de 4 Go sur VFAT. Notez que VFAT ne prend en charge que le format de nom de fichier 8.3.

    créer une partition principale taille=4000 id=6

  11. Formatez la partition créée de cette manière pour assurer la compatibilité avec ESXi :

    format fs=fat rapide

  12. Quittez l’utilitaire diskpart (exécutez la commande exit).

A USB flash drive is ready to be recognized by ESXi and copy files. After some additional ESXi configuration steps, you can attach a USB flash drive to a VM and copy the needed file(s) to the USB flash drive.

Supposons que nous devons copier une archive ZIP avec des pilotes. Nous avons copié net-tulip.zip sur une clé USB dans notre exemple. Ensuite, nous devons monter une partition d’une clé USB insérée dans un serveur ESXi dans la ligne de commande ESXi.

Configuration d’un hôte ESXi pour utiliser une clé USB

Supposons que nous devions copier une archive ZIP avec un pilote depuis une clé USB vers un datastore ESXi, puis copier un fichier de configuration de machine virtuelle depuis un datastore ESXi vers une clé USB. Le nom de fichier est net-tulip.zip dans notre exemple. Faites ce qui suit sur l’hôte ESXi pour transférer des fichiers vers VMware ESXi depuis une clé USB et dans l’autre sens :

  1. La configuration est effectuée dans l’interface de ligne de commande. Pour cette raison, vous devez activer l’accès SSH sur un hôte ESXi.
    • Pour activer l’accès SSH à distance dans DCUI, allez dans Options de dépannage > Activer SSH.
    • Pour activer l’accès SSH à distance et le serveur SSH sur ESXi dans VMware Host Client, allez dans Hôte > Gérer et sélectionnez l’onglet Services. Cliquez avec le bouton droit sur TSM-SSH et cliquez sur Démarrer pour démarrer le service. Vous pouvez activer ce service de manière permanente.

  2. Connectez-vous à l’hôte ESXi via SSH pour utiliser la ligne de commande. Vous pouvez utiliser votre client SSH préféré.
  3. Arrêtez le service d’arbitre USB :

    /etc/init.d/usbarbitrator stop

    L’arbitre USB active automatiquement la fonction de transfert USB pour les machines virtuelles résidant sur un hôte ESXi (vous devez simplement sélectionner une clé USB dans les paramètres de la machine virtuelle appropriée pour utiliser cette fonction).

  • Si vous souhaitez désactiver le service d’arbitre USB après le redémarrage d’ESXi (de manière permanente), vous pouvez utiliser la commande :

    chkconfig usbarbitrator off

    Pour activer le service d’arbitre USB, utilisez la commande appropriée :

    /etc/init.d/usbarbitrator start

    chkconfig usbarbitrator on

  1. Commandes optionnelles pour vérifier les périphériques USB connectés à un hôte ESXi:

    lsusb

    esxcli storage core device list | grep -i usb

    esxcli storage filesystem list

    Vous pouvez consulter /var/log/usb.log pour vérifier l’état d’un périphérique USB.

  2. Vous devrez peut-être déconnecter et reconnecter un périphérique de stockage USB après avoir arrêté le service d’arbitrage USB.
  3. Listez les périphériques de disque bloc pour trouver/identifier la clé USB connectée (ou le disque dur USB).

    ls -ltrh /vmfs/devices/disks/

    Notre clé USB est mpx.vmhba32:C0:T0:L0: (voir la capture d’écran ci-dessous).

    Ainsi, l’adresse/location complète du disque est:

    /dev/disks/mpx.vmhba32:C0:T0:L0:

  4. Vérifiez le numéro de partition du périphérique USB pour vous assurer d’avoir identifié le bon périphérique de disque :

    ls /dev/disks/mpx.vmhba32:C0:T0:L0:*

    Selon la sortie, l’identifiant complet du périphérique, en tenant compte du numéro de partition dans notre cas, est :

    /dev/disks/mpx.vmhba32:C0:T0:L0:1

  5. Localisez le dossier racine d’une clé USB pour définir le chemin source/destination pour copier des fichiers. Exécutez la commande suivante et appuyez sur Tab pour voir les éléments disponibles dans le répertoire volumes. Le /volumes/ répertoire du système de fichiers ESXi est un répertoire dans lequel les partitions avec des systèmes de fichiers sont montées.

    ls -al /vmfs/volumes/ [appuyez sur Tab]

    Le volume sur une clé USB est appelé NO NAME

  6. Vérifiez le contenu du répertoire racine de la clé USB.

    ls -al /vmfs/volumes/NO\ NAME/

    Notre archive ZIP est présente sur le volume de la clé USB.

  7. Nous avons créé le dossier install sur le datastore ESXi (datastore10a) avec les commandes :

    cd /vmfs/volumes/datastore10a

    mkdir install

    Dans la capture d’écran ci-dessous, vous pouvez également voir le répertoire de la machine virtuelle dont nous allons copier le fichier de configuration depuis le datastore ESXi vers une clé USB plus tard.

  8. Copiez l’archive ZIP de la clé USB vers le dossier install sur notre hôte ESXi (sur datastore10a).

    cp /vmfs/volumes/NO\ NAME/net-tulip.zip /vmfs/volumes/datastore10a/install/

  9. Vérifiez si le fichier a été copié :

    ls -al /vmfs/volumes/datastore10a/install/

    Le fichier a été copié avec succès.

De même, vous pouvez copier des fichiers dans le sens inverse – copier des fichiers depuis ESXi vers une clé USB, puis copier le fichier nécessaire vers une VM ou vers une autre machine à partir de cette clé USB.

  1. Vérifiez le contenu du dossier VM :

    ls -al /vmfs/volumes/datastore10a/Windows-VM/

  2. Copiez le fichier de configuration Windows-VM.vmx depuis un datastore ESXi vers une clé USB :

    cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/NO\ NAME/

  3. Vérifiez si le fichier a été copié sur la clé USB :

    ls -al /vmfs/volumes/NO\ NAME/

Après avoir terminé la copie des fichiers sur l’hôte ESXi, vous pouvez éjecter la clé USB et démarrer le service d’arbitrage USB sur l’hôte ESXi. Ensuite, vous pouvez insérer la clé USB et utiliser la fonctionnalité de transfert USB connectée à l’hôte pour attacher la clé USB à la machine virtuelle.

En savoir plus sur le transfert USB pour ESXi et la connexion d’un périphérique de stockage USB inséré dans un hôte ESXi à une VM résidant sur l’hôte ESXi.

Utilisation de PowerCLI pour transférer des fichiers vers les VM VMware

Une autre méthode pour transférer des fichiers de la VM à l’hôte consiste à utiliser des commandes PowerCLI (cmdlets). VMware Tools doit être installé dans un système d’exploitation invité à l’intérieur d’une VM. Ces cmdlets PowerShell utilisent VMware Tools pour copier des fichiers vers/depuis des VM résidant sur un hôte ESXi. Ainsi, vous n’avez pas besoin du réseau si vous exécutez des commandes à l’intérieur d’une VM résidant sur l’hôte ESXi source/destination.

Pour copier des fichiers entre des VM, vous pouvez utiliser un cmdlet Copy-VMGuestFile et d’autres cmdlets dans vSphere PowerCLI.

  1. Connectez-vous à un hôte ESXi ou à un serveur vCenter. Nous nous connectons à un hôte ESXi dans cet exemple.

    Connect-VIServer 192.168.101.201

  • Pour éviter l’avertissement de certificat, exécutez la commande :

    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

Copier un fichier d’invité VM (Local > VM ESXi)

Utilisez la commande suivante pour copier un fichier depuis une machine locale (une machine où PowerCLI s’exécute vers une VM distante sur un hôte ESXi) :

Copy-VMGuestFile -Source "c:\temp\test.txt" -LocalToGuest -VM Windows-VM -Destination "c:\temp-VM" -GuestUser user1 -GuestPassword Password

Où :

c:\temp\test.txt is the source file that we want to copy from the local machine

-LocalToGuest est la direction (de la machine locale vers le système d’exploitation invité sur une VM de destination exécutée sur ESXi)

-VM Windows-VM est la définition du nom de la VM de destination

c:\temp-VM is the destination folder on the destination VM (where we want to store a file copy)

user1 est le nom d’utilisateur dans le système d’exploitation invité (OS) sur la machine virtuelle de destination. Cet utilisateur doit avoir accès au dossier de destination défini.

Mot de passe est le mot de passe pour cet utilisateur.

Nous ignorons l’avertissement concernant la version des VMware Tools et vérifions si notre fichier text.txt a été copié.

Nous pouvons voir que notre fichier test.txt, dont la taille est de 29 octets, a été copié avec succès sur la machine virtuelle Windows XP fonctionnant sur un hôte ESXi.

Copy-VMGuestFile (VM ESXi > Local)

Maintenant, copions un fichier depuis le système d’exploitation invité de la machine virtuelle vers un répertoire local de la machine où la commande est exécutée:

Copy-VMGuestFile -Source "c:\temp-VM\test2.txt" -GuestToLocal -Destination "c:\temp" -VM Windows-VM -GuestUser user1 -GuestPassword Password

Où:

-Source « c:\temp-VM\test2.txt » est le chemin d’accès au fichier source sur la machine virtuelle exécutée sur ESXi

-GuestToLocal est la direction (du système d’exploitation invité de la machine virtuelle ESXi vers la machine locale où la commande est exécutée)

« c:\temp » est le chemin d’accès au dossier de destination sur une machine locale

user1 est le nom d’utilisateur dans le système d’exploitation invité sur la machine virtuelle de destination. Cet utilisateur doit avoir accès au dossier de destination défini.

Mot de passe est le mot de passe pour cet utilisateur dans le système d’exploitation invité

Vous pouvez voir des exemples d’utilisation de la commande Copy-VMGuestFile avec la commande:

get-help Copy-VMGuestFile -examples

Utilisation de Copy-DatastoreItem

La cmdlet PowerShell Copy-DatastoreItem est utilisée pour copier des fichiers vers/depuis un datastore ESXi. Il existe 2 approches pour utiliser cette cmdlet afin de copier des fichiers vers le datastore VMware ESXi :

  • Si PowerCLI est installé sur une machine Windows à l’intérieur de la machine virtuelle, vous pouvez exécuter une commande pour copier un fichier directement depuis un datastore ESXi vers une machine virtuelle et vice versa.
  • Si vous ne pouvez pas installer PowerCLI sur une machine virtuelle résidant sur un hôte ESXi, vous pouvez exécuter des commandes PowerCLI depuis votre machine Windows locale, copier des fichiers depuis un datastore ESXi vers votre machine locale avec la commande Copy-VMGuestFile, puis copier ces fichiers depuis votre machine locale vers une machine virtuelle avec la commande Copy-VMGuestFile.

Vous devez être connecté à un serveur ESXi ou vCenter Server. Vous pouvez le faire avec la commande :

ViConnect <nom_du_serveur_ou_IP>

Nous sommes connectés directement à l’hôte ESXi.

Copions un fichier de configuration de machine virtuelle depuis le datastore vers la machine Windows actuelle (la machine sur laquelle nous exécutons ces commandes – cela peut également être une machine virtuelle sur un hôte ESXi) :

  1. Obtenez les informations sur le datastore :

    Get-Datastore "datastore10a"

  2. Obtenez un objet datastore ESXi :

    $datastore = Get-Datastore "datastore10a"

  3. Créez un nouveau lecteur PowerShell, nommé ds: qui est associé à $datastore :

    New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root "\"

  4. Définissez votre datastore comme emplacement actuel :

    Set-Location ds:\

  5. Pour répertorier les fichiers et répertoires dans le répertoire sélectionné, utilisez la commande :

    Get-ChildItem

  6. Vous pouvez définir le répertoire VM comme nouvel emplacement. Dans notre cas, ce répertoire est Windows-VM

    Set-Location "Windows-VM"

  7. La commande pour copier le fichier VM, c’est-à-dire le fichier de configuration VMX, depuis le datastore ESXi défini vers le dossier temporaire sur la machine actuelle est:

    Copy-DatastoreItem -Item ds:\Windows-VM\Windows-VM.vmx -Destination c:\temp

    Où:

    ds:\Windows-VM\Windows-VM.vmx est le chemin d’accès à un fichier qui doit être copié et ds:\ est le raccourci défini vers un datastore (datstore10a dans ce cas).

  • Si vous êtes connecté à vCenter (et non à un hôte ESXi particulier comme dans cet exemple), vous pouvez utiliser la commande suivante en définissant un datastore dans le datacenter vCenter pour copier un fichier depuis le datastore ESXi vers un dossier sur une machine locale:

    Copy-DatastoreItem vmstore:\Datacenter1\datastore10a\Windows-VM\Windows-VM.vmx c:\temp\

  • Pour copier un fichier dans la direction opposée (en se connectant à un hôte ESXi), utilisez la commande :

    Copy-DatastoreItem -Item c:\temp\darwin.iso -Destination ds:\install\

    Nous copions darwin.iso (qui est une image avec VMware Tools pour macOS) depuis une machine Windows vers le répertoire d’installation sur un datastore ESXi.

  • Si vous êtes connecté à vCenter, vous pouvez utiliser cette commande pour copier un fichier depuis une machine Windows locale vers un datastore sur un hôte ESXi distant :

    Copy-DatastoreItem c:\temp\darwin.iso -Destination vmstore:\Datacenter1\datastore10a\install\

Vous pouvez utiliser ces cmdlets PowerCLI et créer des scripts PowerShell pour transférer des fichiers de la VM vers l’hôte et vice versa.

Commandes pour copier des fichiers d’une VM vers un hôte dans VMware Workstation

Si vous utilisez VMware Workstation (qui est un hyperviseur de type 2) sur votre hôte Windows ou Linux (ou VMware Fusion sur macOS), vous pouvez également utiliser l’interface de ligne de commande pour copier des fichiers de la VM vers l’hôte et vice versa. Vous pouvez utiliser l’outil en ligne de commande vmrun pour travailler avec des machines virtuelles. La syntaxe des commandes est la même pour Windows, Linux et macOS (VMware Fusion). Nous utilisons VMware Workstation 15 sur Windows 10 dans ce tutoriel.

  1. Allez dans le répertoire VMware Workstation :

    cd "C:\Program Files (x86)\VMware\VMware Workstation\"

  2. Utilisez la commande comme suit pour copier un fichier depuis le système d’exploitation invité à l’intérieur de la VM vers l’hôte Windows local :

    CopyFileFromHostToGuest <Chemin vers le fichier vmx> <Chemin dans l’invité> <Chemin sur l’hôte>

    Dans notre cas, la commande exacte est :

    vmrun copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"

  3. Où:

    d:\virtual\WinServer2019\WinServer2019.vmx est un disque virtuel de la VM à partir duquel nous copions le fichier.

    c:\temp\test.txt est un fichier stocké sur le disque virtuel d’une VM; c’est un fichier que nous copions.

    c:\temp\copied\ est un répertoire où stocker une copie de fichier sur une machine hôte.

    Assurez-vous d’utiliser le caractère backslash \ lors de la définition d’un chemin. Nous avons copié test.txt qui est un fichier texte d’une VM vers l’hôte.

    Alternativement, vous pouvez exécuter une commande en définissant les informations d’identification dans la commande:

    vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"

Pour copier un fichier dans le sens inverse (de la machine hôte vers une VM), utilisez la commande suivante :

CopyFileFromHostToGuest <Chemin vers le fichier vmx> <Chemin sur l’hôte> <Chemin dans la VM>

Notre commande particulière dans cet exemple est :

vmrun copyFileFromHostToGuest d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test3.txt" "c:\temp\test3-copy.txt"

Comment transférer des fichiers en utilisant SSH et SCP

SSH (Secure Shell) est un protocole courant pour gérer de manière sécurisée des hôtes distants en s’appuyant sur le chiffrement. SCP est un protocole qui repose sur SSH pour copier des fichiers de manière sécurisée sur le réseau. Vous pouvez utiliser SCP pour transférer des fichiers de la VM vers l’hôte, surtout si Linux est exécuté sur la VM. Un serveur SCP et SSH peut être activé sur des machines Linux et ESXi en quelques étapes.

Comment activer un serveur SSH dans ESXi

Un service de serveur SSH doit être activé sur un hôte ESXi pour utiliser cette méthode et transférer des fichiers vers VMware ESXi et depuis ESXi.

  1. Pour activer un serveur SSH dans le client VMware Host, allez dans Host > Gérer > Services et démarrez le service TSM-SSH.
  2. SSH doit être autorisé dans le pare-feu ESXi pour permettre le trafic SCP afin de transférer des fichiers depuis un hôte ESXi ainsi que de se connecter à d’autres machines en utilisant SCP depuis cet hôte ESXi :
    • Accédez à Réseau dans le volet Navigator, sélectionnez l’onglet Règles du pare-feu et choisissez Client SSH.
    • Cliquez sur Actions > Activer pour activer la règle du pare-feu.

  3. Pour vérifier la connexion SSH entre les hôtes, vous pouvez exécuter cette commande sur un hôte ESXi :

    nc -z 192.168.101.202 22

    Où :

    192.168.101.202 est l’adresse IP d’un hôte distant.

    22 est le numéro de port pour la connexion SSH (22 est le numéro de port par défaut).

La syntaxe générale de la commande scp pour copier des fichiers via SCP sur le réseau :

scp [OPTION] [utilisateur]@[SRC_HOST]:chemin_vers_fichier1 [utilisateur]@[DEST_HOST]:chemin_vers_fichier2

[utilisateur]@[SRC_HOST]:chemin_vers_fichier1 – un fichier source

[utilisateur]@[DEST_HOST]:chemin_vers_fichier2 – un fichier de destination

-P spécifie un numéro de port pour la connexion SSH (utilisez ce drapeau si le numéro de port n’est pas 22).

ci-dessous, nous expliquons les exemples particuliers en pratique.

Comment copier un fichier local vers une machine distante via SCP

Pour copier un fichier local vers une machine distante via SCP, utilisez la commande suivante :

scp fichier.txt nom_utilisateur@ip_hote_distant:/repertoire_distant

Depuis Linux

copions le fichier LinuxDir.txt depuis une machine Ubuntu Linux locale (qui peut également être une machine virtuelle) vers un hôte ESXi sur le réseau en utilisant SCP. L’emplacement de destination sur l’hôte ESXi distant est le répertoire install sur le datastore datastore10a. L’adresse IP de l’hôte ESXi distant est 192.168.101.201.

La commande pour copier le fichier depuis la machine Linux locale vers l’hôte ESXi distant dans notre cas est :

scp LinuxDir.txt [email protected]:/vmfs/volumes/datastore10a/install/

Vous pouvez stocker le fichier copié sur la machine de destination avec un nouveau nom de fichier :

scp LinuxDir.txt [email protected]:/vmfs/volumes/datastore10a/install/LinuxDir-copy.txt

Utilisez le drapeau -r pour copier un répertoire avec tous les fichiers inclus :

scp -r /répertoire/local [email protected]:/répertoire/à_distance

À partir d’ESXi

Vous pouvez utiliser les commandes scp sur un hôte ESXi. La syntaxe scp dans la ligne de commande est la même pour Linux et ESXi. Un serveur SSH doit être configuré sur la machine distante.

Connectons-nous à l’hôte ESXi (192.168.101.201) et copions le répertoire install avec tous les fichiers qu’il contient dans le répertoire personnel de utilisateur1 sur la machine Linux distante (192.168.101.210).

scp -r /vmfs/volumes/datastore10a/install/ [email protected]:/home/utilisateur1/

Si le serveur SSH écoute sur un port autre que 22, utilisez le paramètre -P; par exemple, si le numéro de port SSH est 8022, la commande est la suivante:

scp -P 8022 -r /vmfs/volumes/datastore10a/install/ [email protected]:/home/utilisateur1/

Comment copier un fichier d’une machine distante vers une machine locale via SCP

SCP est pratique pour copier des fichiers d’une machine distante vers la machine locale, ce qui vous permet également de transférer des fichiers de VM vers l’hôte. Ci-dessous, nous expliquons comment exécuter les commandes appropriées dans Linux et ESXi.

Copier des fichiers vers une machine Linux locale

Nous allons copier un fichier de l’hôte ESXi distant vers la machine Linux actuelle en utilisant SCP. Pour ce faire, utilisez la commande suivante:

scp nom_utilisateur@adresse_ip_distante:/fichier_à_distance /répertoire/local

Copions un fichier darwin.iso depuis le serveur ESXi distant vers le répertoire domicile défini sur la machine Linux:

scp [email protected]:/vmfs/volumes/datastore10a/install/winPreVista.iso /home/user1/

Copie de fichiers vers un hôte ESXi local

Si nous nous connectons à un hôte ESXi, nous pouvons exécuter la commande pour copier un fichier VM depuis une machine Linux distante vers un datastore sur l’hôte ESXi local. Copions VM_file.txt depuis la machine Linux vers le répertoire du datastore ESXi via le réseau en utilisant SCP:

scp [email protected]:/home/user1/VM_file.txt /vmfs/volumes/datastore10a/install/

Comment copier des fichiers entre deux machines distantes

Il existe des commandes SCP pour copier des fichiers d’une machine distante à une autre machine distante avec ou sans passage des données via la machine locale actuelle. La syntaxe de la commande est la suivante:

scp [email protected]://directory/file.txt [email protected]://directory/

Les données sont transférées directement d’un hôte distant à un autre (sans passer par notre machine locale actuelle) avec la commande ci-dessus. Si vous souhaitez faire transiter le trafic par votre machine locale sur laquelle vous exécutez la commande, utilisez le drapeau -3.

Remarque: Utilisez cette commande si les identifiants sur les deux hôtes distants sont les mêmes.

Un exemple de commande à exécuter sur une machine Linux locale pour copier un fichier (vim.v00) depuis un hôte ESXi distant (192.168.101.202) vers un hôte ESXi local (192.168.101.201):

scp [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/

Si vous voyez l’erreur Échec de la vérification de la clé hôte, cela signifie que la clé hôte n’est pas stockée sur l’un des hôtes. Si l’erreur est causée par le changement de la clé hôte sur le serveur distant, supprimez l’ancienne clé hôte pour l’hôte distant actuel stockée dans ~/.ssh/known_hosts

La commande pour supprimer une ancienne clé hôte est :

ssh-keygen -R nom_hôte_ou_adresse_IP

Par exemple, exécutez la commande sur 192.168.101.202 pour supprimer l’ancienne clé hôte pour l’hôte distant 192.168.101.201 :

ssh-keygen -R 192.168.101.201

Un exemple d’utilisation de -3 dans la commande pour copier des fichiers via la machine locale :

scp -3 [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/

La commande alternative à cette fin est :

scp -o "ForwardAgent yes" [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/

Comment copier des fichiers via SCP depuis Windows

Vous pouvez également copier des fichiers vers des machines virtuelles ou des hôtes ESXi sous Windows. Pour cela, vous devez utiliser un client SCP tel que WinSCP, qui est une interface graphique conviviale et pratique. Vous pouvez télécharger WinSCP gratuitement.

  1. Exécutez WinSCP.
    • Sélectionnez un protocole, par exemple, SFTP.
    • Entrez un nom d’hôte et un numéro de port d’un hôte distant, tel qu’un hôte ESXi ou une machine Linux.
    • Entrez un nom d’utilisateur et un mot de passe d’une machine distante.
    • Cliquez sur Connexion.

    Dans cet exemple, nous nous connectons à un hôte ESXi distant.

  2. A notification message is displayed:

    Continuer à se connecter à un serveur inconnu et ajouter sa clé hôte à un cache ?

    Cliquez sur Oui pour continuer.

  3. Une fois connecté, vous voyez la fenêtre de style commandant avec deux panneaux. Un panneau représente le répertoire sur la machine locale et un autre panneau représente le répertoire sur la machine distante. Vous pouvez copier des fichiers entre l’hôte local et l’hôte distant en copiant des fichiers entre ces deux panneaux.

Vous pouvez copier des fichiers depuis un datastore d’un hôte ESXi distant auquel vous êtes connecté dans WinSCP vers une machine virtuelle Windows ou physique distante en utilisant un partage SMB sur cette machine Windows.

Cependant, vous ne pouvez pas entrer le chemin d’accès direct au partage dans un panneau WinSCP (par exemple, \\192.168.101.117\c$). Vous ne pouvez sélectionner qu’une lettre de lecteur de disque. Pour contourner cette limitation, connectez-vous au partage de fichiers dans l’Explorateur Windows et mappez ce partage de fichiers en tant que lecteur réseau. Attribuez une lettre de lecteur, par exemple, S: comme nous l’avons fait dans cet exemple, pour vous connecter au dossier partagé sur 192.168.101.211.

Maintenant, nous pouvons sélectionner S: comme lecteur réseau dans le menu déroulant du volet de gauche de WinSCP, sélectionner les fichiers ou répertoires nécessaires sur le datastore du serveur ESXi distant et copier des fichiers dans les deux sens.

Utilisation d’un partage NFS

Vous pouvez utiliser un partage NFS pour transférer des fichiers vers des VM à partir d’un datastore ESXi et vice versa. ESXi ne prend pas en charge les partages SMB (natifs pour Windows). Il prend en charge les partages NFS (natifs pour Linux) et l’attachement d’un partage NFS en tant que datastore. En utilisant cette fonctionnalité, vous pouvez utiliser l’une de ces approches pour transférer des fichiers entre ESXi et des machines Linux:

Approche 1:

  • Configurer un serveur NFS et un partage NFS sur une VM Linux
  • Attacher le partage NFS en tant que datastore sur ESXi
  • Copier des fichiers d’une VM vers un datastore ESXi et vice versa

Approche 2:

  • Configurer un serveur NFS sur une machine Linux physique ou NAS
  • Attachez le partage NFS en tant que datastore sur ESXi
  • Connectez-vous au partage NFS sur une machine virtuelle Linux
  • Copiez des fichiers d’une machine virtuelle Linux vers un partage NFS, puis copiez ces fichiers vers un hôte ESXi. Copiez des fichiers de l’hôte ESXi vers le partage NFS et copiez ces fichiers du partage NFS vers la machine virtuelle Linux.

Lisez la comparaison NFS vs SMB pour en savoir plus sur ces protocoles de partage de fichiers.

Configuration d’un partage NFS sur Linux

Nous utilisons Linux Ubuntu 20.04 dans ce tutoriel. Nous nous sommes connectés à Linux en tant qu’utilisateur régulier et utilisons sudo lorsque des privilèges root sont nécessaires pour exécuter la commande. Effectuez les étapes suivantes pour installer un serveur NFS et configurer un partage NFS.

  1. Mettez à jour l’arborescence du dépôt sous Linux:

    sudo apt-get update

  2. Installez le paquet du serveur NFS sous Linux:

    sudo apt-get install nfs-kernel-server -y

  3. Créez un répertoire (le répertoire d’exportation) qui sera partagé sur le serveur NFS:

    sudo mkdir -p /srv/nfs/share1/

  4. Définissez le propriétaire et les autorisations pour le répertoire créé :

    sudo chown -R nobody:nogroup /srv/nfs/share1/

    sudo chmod 0777 /srv/nfs/share1/

    Le nobody est un pseudo-utilisateur représentant l’utilisateur avec le moins de permissions et sans accès au shell. Le but du groupe nogroup est similaire à celui de l’utilisateur nobody.

  5. Configurez le fichier d’exportation pour partager le répertoire créé.

    sudo nano /etc/exports

    ou

    sudo vim /etc/exports

  6. Ajoutez la ligne suivante au bas du fichier de configuration :

    /srv/nfs/share1/ CLIENT_IP(rw,sync,no_subtree_check)

    Dans notre cas, la ligne avec l’adresse IP autorisée de notre hôte ESXi est :

    /srv/nfs/share1/ 192.168.101.201(rw,sync,no_subtree_check)

    Vous pouvez autoriser l’accès à tous les hôtes du sous-réseau en ajoutant la ligne :

    /srv/nfs/share1/ 192.168.101.0/24(rw,sync,no_subtree_check)

    Vous pouvez ajouter la ligne suivante pour autoriser l’accès à un autre hôte (adresse IP).

    Enregistrez les modifications dans le fichier de configuration et quittez l’éditeur de texte.

  7. Pour vérifier si les données ont été écrites dans le fichier, vous pouvez utiliser la commande :

    cat /etc/exports

  8. Appliquez la nouvelle configuration avec la commande :

    sudo exportfs -a

  9. Assurez-vous que le pare-feu sur la machine Linux avec le serveur NFS autorise l’accès. Vous pouvez accorder l’accès à une adresse IP particulière avec une commande comme suit:

    sudo ufw allow from IP to any port nfs

    Dans notre cas:

    sudo ufw allow from 192.168.101.201 to any port nfs

    Pour autoriser l’accès aux hôtes de l’ensemble du sous-réseau:

    sudo ufw allow from SUBNET to any port nfs

    Dans notre cas, la commande serait:

    sudo ufw allow from 192.168.101.0/24 to any port nfs

  10. Vous pouvez vérifier l’état du pare-feu avec la commande:

    sudo ufw status

  11. Redémarrez le serveur NFS pour que les modifications de configuration prennent effet:

    sudo systemctl restart nfs-kernel-server

  12. Le partage NFS a été configuré sous Linux.
  13. Copiez un fichier depuis n’importe quel répertoire de la machine Linux vers le répertoire partagé via NFS. Nous copions VM_file.txt vers notre partage NFS et vérifions le contenu du répertoire après cela :

    cp VM_file.txt /srv/nfs/share1/

    ls -al /srv/nfs/share1/

Montage d’un datastore NFS dans ESXi

Vous devez ajouter le datastore NFS dans ESXi après avoir configuré le partage NFS. Nous utilisons VMware Host Client dans cet exemple pour le faire.

Allez dans Stockage > Datastores et cliquez sur Nouveau datastore.

Le Assistant Nouveau datastore est ouvert.

  1. Sélectionnez Monter un datastore NFS. Cliquez sur Suivant pour continuer.

  2. Fournir les détails de montage NFS :
    • Nom : NFS-share (le nom qui sera affiché comme nom du datastore)
    • Serveur NFS : 192.168.101.210
    • Partage NFS : /srv/nfs/share1/
    • Version NFS : NFS4<>/li

    Un nom d’utilisateur et un mot de passe sont facultatifs pour NFS4. Nous laissons ces deux champs vides.

  3. Prêt à terminer. Vérifiez votre configuration et cliquez sur Terminer si tout est correct.

Copie de fichiers d’une VM vers l’hôte

Le datastore NFS est monté avec succès. Vous pouvez vérifier cela dans Stockage > Datastores.

Maintenant, nous pouvons copier des fichiers de la VM stockée sur le partage NFS vers un datastore ESXi local (transférer des fichiers de la VM vers l’hôte).

  1. Cliquez sur Navigateur de Datastore.

  2. Sélectionnez votre datastore NFS dans le navigateur de datastore (partage NFS dans notre cas). Parcourez le fichier nécessaire dans le datastore NFS. Sélectionnez le fichier nécessaire et cliquez sur Copier.

  3. Sélectionnez la destination. Sélectionnez l’emplacement nécessaire dans le datastore cible où vous souhaitez stocker le fichier copié (datastore10b dans notre cas). Cliquez sur Copier.

    Alternativement, vous pouvez copier le fichier nécessaire dans la ligne de commande sur le serveur ESXi :

    cp /vmfs/volumes/NFS-share/VM_file.txt /vmfs/volumes/datastore10b/VM_file-copy.txt

Utilisation de l’interface Web VMware pour télécharger/télécharger des fichiers

Vous pouvez utiliser une interface web du client VMware Host ou VMware vSphere Client pour télécharger/téléverser des fichiers depuis/vers un datastore ESXi. L’interface web est disponible depuis n’importe quelle machine physique ou virtuelle où un navigateur web est installé et où une connexion réseau à un hôte ESXi est disponible. Ainsi, vous pouvez ouvrir cette interface web directement depuis une VM si un système d’exploitation invité dispose de l’interface graphique utilisateur ou utiliser n’importe quelle machine locale comme machine intermédiaire pour transférer des fichiers de la VM vers l’hôte et vice versa.

Il existe une alternative, mais plus complexe, pour transférer des fichiers vers VMware ESXi à partir de VM :

  1. Téléchargez un disque virtuel de la VM sur votre machine locale ou une autre machine.
  2. Extrayez les fichiers nécessaires de ce disque virtuel de la VM (.vmdk et –flat.vmdk) vers une machine locale. Alternativement, vous pouvez monter un disque virtuel sur un lecteur virtuel si VMware Workstation est installé.
  3. Téléversez les fichiers extraits ou les fichiers du disque virtuel monté vers le datastore de l’hôte ESXi en utilisant l’une des méthodes expliquées ci-dessus (dans VMware Host Client, vSphere Client, ou un client SCP, etc.).

Lisez l’article de blog détaillé sur comment extraire des fichiers des disques virtuels VMDK.Utilisation de fichiers ISO pour le transfert de données vers une VM

Utilisation de fichiers ISO pour le transfert de données vers une machine virtuelle

Si la connexion réseau n’est pas disponible pour une machine virtuelle (VM), vous pouvez transférer des fichiers vers des machines virtuelles VMware en utilisant des fichiers d’image ISO :

  1. Créez une image ISO avec un logiciel comme Ultra ISO pour Windows.
  2. Écrivez les fichiers nécessaires dans l’image ISO sur votre machine locale ou sur une autre machine. Vous pouvez copier des fichiers depuis ESXi en utilisant l’une des méthodes ci-dessus et les écrire dans l’image ISO.
  3. Montez l’image ISO dans la VM en utilisant un lecteur CD/DVD virtuel de la VM (vous pouvez monter le fichier ISO directement depuis votre machine locale ou télécharger le fichier ISO vers un datastore ESXi avant de procéder à cette étape). Utilisez VMware Host Client, VMware vSphere Client, VMware Workstation ou VMware Remote Console pour monter le fichier ISO sur la VM ESXi.

Cette méthode ne peut pas être utilisée pour transférer des fichiers de la VM vers le hôte car une VM fonctionne avec un disque CD/DVD virtuel en mode lecture seule.

Conclusion

Il existe plusieurs méthodes pour copier des fichiers vers des machines virtuelles à partir d’un hôte et vice versa. Certaines d’entre elles nécessitent une connexion réseau et certaines fonctionnent même si le réseau n’est pas disponible. Vous pouvez utiliser la méthode qui convient à votre scénario et combiner ces méthodes. N’oubliez pas de sauvegarder vos VMs pour éviter la perte de données. Avec NAKIVO Backup and Replication, vous pouvez protéger vos VMs dans VMware vSphere et restaurer des fichiers individuels directement à partir d’une sauvegarde de VM.

Source:
https://www.nakivo.com/blog/3-simple-ways-to-transfer-files-from-a-vm-to-a-host/