仮想マシンからホストへファイルを転送する最も効果的な方法

仮想マシンには、柔軟性やリソースの効率的な活用、隔離された環境での実行など、多くの利点があります。仮想環境における一般的な作業の一つに、仮想マシンとホスト間のファイルコピーがあります。本記事では、ホストから仮想マシンへファイルをコピーする方法、仮想マシンからホストへファイルを転送する方法、および仮想マシン間でファイルをコピーする方法について解説します。

NAKIVO for VMware vSphere バックアップ

NAKIVO for VMware vSphere バックアップ

VMware vSphere 仮想マシン(VM)向けの包括的なデータ保護と即時復旧オプション。オンサイト、オフサイト、およびクラウド上の安全なバックアップ先。ランサムウェア対策機能。

私たちの環境を構成する要素

まずは用語の確認から始めましょう:

  • A ホスト ハイパーバイザーがインストールされている物理マシンです。
  • A ハイパーバイザー これは、ホスト上で仮想マシンを実行するための仮想化ソフトウェアです。ハイパーバイザーには2つの種類があります:
    • タイプ 1:ホストマシンとして ESXi サーバーを使用する
    • タイプ 2:VMware Workstation を使用する場合。この場合、ホストマシンの OS として Windows または Linux を選択できます。

この手順解説では、VMからホストへファイルを転送する方法を説明するために使用される環境は、以下のコンポーネントで構成されています:

  • ESXiホスト1:192.168.101.201
  • ESXiホスト2:192.168.101.202
  • Ubuntu Linux マシン:192.168.101.210
  • VMware Workstation がインストールされた Windows ホスト
  • ネットワーク:192.168.101.0/24
  • 同じネットワークに接続されている ESXi 仮想マシンと VMware Workstation 仮想マシン

VMとホスト間でファイルをコピーするために、以下の技術を使用しています:

  • 共有フォルダ
  • クリップボードの共有とドラッグ&ドロップ
  • USBストレージデバイス
  • PowerCLI
  • SSH と SCP
  • NFS 共有
  • VMwareのWebインターフェースでのファイルのダウンロード/アップロード
  • ISOファイル

共有フォルダを使用してVMファイルをホストに転送する

共有フォルダ これは、VMware WorkstationがインストールされているWindowsまたはLinuxの物理ホストと、VMware Workstation上で実行されている仮想マシン(VM)との間でファイルを転送するための、VMware Workstationの便利な機能です。macOSの場合、VMware FusionはVMware Workstationに相当する製品であり、同様の機能をサポートしています。

それでは、VMwareの共有フォルダを使用して、VMからホストへ、あるいはその逆方向にファイルを転送する手順を見ていきましょう。

注: この機能が動作するには、 VMware Tools VMにインストールする必要があります。ホストとVM間のデータのやり取りは、ネットワークを使用せず、VMware Toolsを介したホストとゲストOS間の通信によって行われます。

  1. VMwareのファイル共有を設定したいVMを選択します。ここでは、当社のWindows VMの1つを選択します。
  2. クリック VM > Settings VMware Workstation の GUI にある”(仮想マシンの設定を編集)”を選択します。
  3. その Virtual Machine Settings ウィンドウで、[ ] を選択し、 Options タブをクリックして Shared Folders. その中で Folder sharing セクションで、[選択] をクリックします Always enabled. 必要に応じて、チェックボックスを選択することで、Windowsゲスト上で共有フォルダをネットワークドライブとしてマウントし、利便性を高めることができます。
  4. クリック Add 共有フォルダとして使用するフォルダを選択します。

    VMware sharing folder – how to enable shared folders in VMware Workstation

  5. ホスト上で共有するフォルダのパスを入力するか、[クリック] をクリックしてください Browse そして、必要なフォルダを選択します。ここでは、 C:tempshare-VM

    共有フォルダの名前を入力してください。たとえば、 share-VM

    クリック Next.

    VMware file sharing – configuring shared folders in VMware Workstation

  6. 選択 Enable this share. 仮想マシンから共有フォルダを読み取り専用モードでアクセスさせたい場合は、 Read-only チェックボックス。クリック Finish.

    VMware sharing folder in VMware Workstation and enabling this share

  7. 新しい共有フォルダが、[ ] の共有フォルダ一覧に表示されるようになりました。 Options のタブ Virtual machine settings ウィンドウ。ファイル名の横にあるチェックボックスがオンになっている場合、その共有フォルダが有効になります。

    クリック OK 設定を保存するには。

    VMware sharing folder – a shared folder is created

  8. フォルダを共有するために使用している Windows VM のユーザーインターフェースを開き、 Shared folders 機能。
  9. クリック Network (My Network Places) において My Computer (This PC) または Windows エクスプローラーを使用して、ネットワーク上で利用可能なコンピュータを確認します。
  10. 選択 vmware-host 共有フォルダが設定されているコンピューター名として。この名前はデフォルトで設定されており、共有フォルダがある物理マシン(ホスト)に割り当てられています。

    How to access a shared folder to copy VMware virtual machine files

  11. クリック Shared Folders 必要な共有フォルダを選択して(share-VM (この例では)。この場合、共有フォルダの完全なパスは

    vmware-hostShared Foldersshare-VM

ホストから仮想マシンへ、また仮想マシンからホストへ、ファイルをコピーすることができます。私たちは、次のファイルをコピーしました。 Test01.txt この例では、VMware Workstation のファイル共有機能を使用して、Windows ホストから Windows ゲストへデータを転送します。

VMware transfer files from a VMware VM using a shared folder

Linux ゲストの場合、以下のコマンドを使用して、すべての VMware 共有フォルダをマウントできます。

  • カーネルバージョン4.0以前のLinuxでは:

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

  • カーネル 4.0 以降の Linux では:

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

VMの再起動後も共有フォルダをマウントしたままにしたい場合は、以下のファイルにコメントと設定を記載した適切な行を追加してください。 /etc/fstab 、例えば:

#

VMwareの共有フォルダを使用して、VMwareのゲストとホスト間でファイルを転送する

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

次のセクションに進む前に、共有フォルダ機能は VMware Workstation でのみ利用可能であることに注意してください(および macOS 上の VMware Fusion)、また、ESXiホスト上で実行されているVMでは利用できません。ESXiホストの場合、手動でフォルダを共有し、ネットワークを介してWindowsマシン間でファイルをコピーすることができます。VMからESXiホストへファイルをコピーするには、追加のツールを使用するか、手動で共有したフォルダからのファイルコピーと、以下で説明するいずれかの方法を組み合わせる必要があります。

他にも次のような方法があります。 Windows 10 でフォルダを共有する そして Windows Server 2019. また、以下の詳細についてもご覧いただけます。 SMBによるファイル共有 プロトコル。

管理者権限を持つ Windows アカウントがあり、セキュリティポリシーでデフォルトで利用可能な非表示の管理者共有へのアクセスが許可されている場合、次のような共有パスを使用して、Windows マシンのローカルディスク上のファイルにアクセスできます。

IP-Addressc$

場所:

IP-Address は、リモートの Windows マシンの IP アドレスまたはホスト名です。

C$ これは、リモートにある Windows マシン上の、非表示のシステム共有である必要なドライブ文字です。

共有クリップボードを使用して、ホストから仮想マシンへファイルを転送する

共有クリップボードは、仮想マシンからVMware Workstationがインストールされているホストマシンへ、テキストやファイル全体などのコンテンツをコピー&ペーストできる機能です。この操作は、WindowsやLinuxでGUIを使用して異なるアプリケーションウィンドウ間でコンテンツをコピー&ペーストする場合と似ています。

すべての機能は、 VMware Workstation, これにより、ホストから仮想マシンへ、あるいは仮想マシンからホストへファイルを転送することができます。コピー&ペーストの代わりに、ファイルをドラッグ&ドロップすることも可能です。

VMware Workstation のクリップボード共有

共有クリップボードとドラッグ&ドロップを使用して、VMware Workstationの仮想マシンにファイルを転送する方法について解説します。この例では、WindowsホストにVMware Workstationがインストールされています。

  1. VMが一覧表示されている左側のペインから、対象のVMを選択してください。
  2. クリック Edit virtual machine settings (VM > Settings).

    Opening virtual machine settings

  3. [選択] Options タブをクリックして Guest Isolation.

    2つのチェックボックスを選択してください:

    • Enable drag and drop
    • Enable copy and paste

    クリック OK 設定を保存してウィンドウを閉じます。

    Enabling shared clipboard and drag & drop to transfer files to VMware VMs

VMware ESXi におけるクリップボードの共有

VMware ESXi 上で動作する仮想マシンについては、ESXi ホスト上の仮想マシンと他のマシンとの間で、ドラッグ&ドロップや共有クリップボードを使用してファイルをコピーすることはできません。唯一の方法は、ESXi 上で動作する仮想マシンとローカルマシン(VMware Workstation または VMware リモートコンソール がインストールされている場合)。セキュリティ上の理由から、ファイルのコピー&ペーストおよびドラッグ&ドロップはサポートされていません。

ただし、たとえば設定ファイルをコピーできない場合は、共有クリップボードを使用してファイルのテキスト内容をコピーすることができます。デフォルトでは、ESXi VMの設定において共有クリップボードは無効になっています。テキストデータをコピー&ペーストできるように共有クリップボードを有効にするには、ESXiホストで以下の手順を実行してください:

  1. VMの設定を編集する際は、VMの電源をオフにする必要があります。VMが実行中の場合は、VMをシャットダウンしてください。
  2. 開く VM settings. VMware Host Client および VMware vSphere Client を使用できます。仮想マシンを選択し、[クリック] します。 Edit VM settings そして、 VM options タブ。

    [展開] Advanced Settings セクションを選択してクリック Edit Configuration.

    Advanced VM configuration to enable shared clipboard in ESXi

  3. VMの設定(VMの設定ファイルであるVMXファイルに書き込まれるもの)に、3つの設定パラメータを追加する必要があります。[クリック] Add parameter.

    Enabling shared clipboard for a VM on VMware ESXi

  4. 次の3つのパラメータを追加してください:

    isolation.tools.copy.disable FALSE

    isolation.tools.paste.disable FALSE

    isolation.tools.setGUIOptions.enable TRUE

  5. クリック OK そして設定を保存します。

    Configuration parameters to enable shared clipboard are added

あるいは、ESXiのデータストア内のVMディレクトリにあるVM構成ファイル(VMXファイル)を手動で編集することもできます。

  1. ESXiシェルに、ローカルまたはSSH経由でログインします。
  2. VMディレクトリ(データストア上にVMファイルが保存されているディレクトリ)に移動します。この例では、次のディレクトリに移動します:

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

    Locating a VMX configuration file of the VM to enable a shared clipboard

  3. VMX設定ファイルを編集します。この例では、そのファイルは Windows-VM.vmx

    vi Windows-VM.vmx

  4. 上記に示された3つのパラメータを、この設定ファイルの末尾に追加してください。
  5. 変更を保存してファイルを閉じます(テキストエディタを終了します)。

    Adding configuration parameters to a VMX file to enable shared clipboard for a VM on an ESXi host

これで、VMware Remote Console と VMware Workstation を使用して仮想マシンに接続することで、ローカルマシンと ESXi ホスト上で実行されているリモート仮想マシンとの間で、テキストをコピー&ペーストできるようになりました。

USBストレージデバイスの使用

VMware ESXi および VMware Workstation は、USB パススルー機能をサポートしています。この機能を使用すると、ホストマシンに USB デバイスを接続し、その USB デバイスをそのホスト上で実行されている仮想マシンに接続することができます。USB ストレージデバイスをホストマシンと仮想マシンに順次接続することで、両マシン間で双方向のファイルコピーを行うことができます。

注: USBパススルー機能を使用するには、仮想マシンのゲストOSにVMware Toolsをインストールする必要があります。

VMware Workstation の仮想マシンとホスト間でのファイルのコピー

Windows および Linux ホストにインストールされた VMware Workstation で、VM からホストへファイルを転送するには、以下の手順に従ってください(インターフェースは統一されています):

  1. 仮想マシンの電源を入れます。
  2. USB HDD(ハードディスクドライブ)やUSBフラッシュドライブなどのUSBストレージデバイスを、ホストマシンとなる実機コンピュータに接続します。
  3. その New USB Device Detected VMware Workstation でウィンドウが開きます。USB デバイスを接続する場所を選択してください:
    • ホストに接続する
    • 仮想マシンに接続する

    2番目のオプションを選択し、USBフラッシュドライブを仮想マシンに接続しましょう。この例では、Windows VMを実行しています。VMware Workstation上で複数のVMが実行されている場合は、リストから目的のVMを選択する必要があります。USBデバイスは、一度に1つのVMにしか接続できません。[クリック] OK 続行するには。

    How to transfer files to virtual machines by using a USB storage device

    VMware Workstation がインストールされている物理ホストマシンの USB ポートに、すでに USB ストレージデバイスが挿入されている場合、USB パススルーオプションのポップアップウィンドウは自動的に表示されません。メニューから、USB デバイスを仮想マシンに接続(ホストから切り離す)することができます:

    [移動] VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from host).

    この例では、USBフラッシュドライブの名前は”Kingston DataTraveler 2.0″です。

    Connecting a USB flash drive to a VM to copy files between a host and VM

  4. これで、”マイ コンピュータ”(Windows エクスプローラー)のディスク ドライブ一覧に、Windows 7 の仮想マシンに接続された USB フラッシュ ドライブが表示されるようになりました。USB ストレージ デバイスを確認するには:
    • 右クリック My Computer そして、クリックして Manage.
    • [移動] Computer Management > Device Manager and Computer Management > Disk Management 右クリックした後、該当するスナップイン内で。

    ドライブ文字が自動的に割り当てられない場合は、以下の手順で手動で割り当ててください。 Disk Management スナップイン。

    Linuxゲストのワークフローも同様です。一部のLinuxディストリビューションでは、フラッシュドライブなどの接続済みのUSBストレージデバイスを、Linuxオペレーティングシステム上で手動でマウントする必要がある場合があります。

  5. USBストレージデバイスがVMにマウントされ、ゲストOSによって認識されたら、必要なファイルをVMからUSBストレージデバイスにコピーしてください。また、USBストレージデバイスからVMへのファイルのコピーも、現在では可能になっています。

    A USB flash drive is connected to a VM

  6. VMからUSBフラッシュドライブに必要なファイルをすべてコピーしたら、USBフラッシュドライブをVMから取り外し、このUSBデバイスをホストに接続します:

    クリック VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

    How to transfer files from VM to host – disconnecting a USB flash drive from a VM

  7. USBストレージデバイスがホストマシン(この場合は、VMware Workstationが実行されているWindowsマシン)に接続されました。仮想マシンからUSBフラッシュドライブにコピーしたファイルを、ホストマシンに転送することができます。

VMware Workstation から ESXi 仮想マシンへの USB パススルー

ESXiサーバーに挿入されたUSBフラッシュドライブを、ESXiホストをリモートで管理するために使用しているローカルのWindowsまたはLinuxマシン(VMware WorkstationまたはVMware Remote Console(VMRC)がインストールされているもの)に挿入することで、このUSBフラッシュドライブをESXi仮想マシンに接続することができます。前者の場合、 ホスト接続型 USBパススルーが使用されており、2番目のケースでは、 クライアント接続中 USBパススルーを使用します。

ローカルの物理Windows 10マシンに挿入されたUSBフラッシュドライブを、ESXiホストv7.0上で実行されているWindows XP仮想マシンに接続してみましょう(クライアント接続型USBパススルー機能を使用)。物理WindowsマシンにはVMware Workstationがインストールされており、ネットワーク(192.168.101.0/24)経由でESXiホストに接続されています。

手順は以下の通りです:

  1. VMの設定を編集するには、VMの電源を切る必要があります。
  2. 必ず USB controller がVMの仮想ハードウェア一覧に含まれています。VMware Host ClientでVMの設定を確認できます。対象のVMを選択して(Windows-VM (当方のケースでは)、[クリック] Edit Settings そして、 Virtual Hardware タブ。

    A USB controller must be present on a VM to transfer files to virtual machine with a USB flash drive

  3. ローカル(物理)の Windows 10 マシンにインストールされている VMware Workstation に戻りましょう。クリックしてください File > Connect to a server VMware Workstation でリモートの ESXi ホストに接続する場合。

    Connecting to a remote ESXi server

  4. ESXiサーバー名またはIPアドレス、ユーザー名、パスワードを入力します。[クリック] Connect.

    Connecting to a remote ESXi host – entering credentials

  5. VMware Workstation の左ペインで、ESXi ホストを展開します。このペインには、リモートホスト、それらのホスト上のリモート VM、およびローカルの VMware Workstation VM が表示されます。
  6. リモート ESXi ホスト上で実行中の VM を選択します。ここでは、 Windows-VM 稼働中 192.168.101.201. その後、選択したVMのゲストOSのユーザーインターフェースが表示されます。
  7. クリック VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from Host).

    なお、ここでは、VMware Workstation がインストールされている物理 Windows マシンに接続されている USB デバイスを選択することに注意してください。この USB デバイスは、リモートで接続している物理 ESXi ホストに接続されているデバイスではありません。

    Connecting a USB flash drive to a VM running on an ESXi host using client-connected USB passthrough

  8. これで、リモートのESXiホスト上で実行されているWindows XP仮想マシンに、USBフラッシュドライブが接続されていることが確認できます: Start > CMD > compmgmt.msc > Device Manager.

    A USB flash drive is connected to a VM running on an ESXi host and is ready to copy files

  9. 接続されたUSBフラッシュドライブのパーティションにドライブ文字が割り当てられていない場合は、ドライブ文字を割り当ててください。VMとUSBフラッシュドライブの間で必要なファイルをコピーします。VMへのファイル転送と、VMからのファイル転送の両方が可能です。

    Using a USB flash drive to transfer files from VM to host

  10. ファイルのコピーが完了したら、VMからUSBストレージデバイスを取り外し、VMware Workstationが実行されているローカルの物理Windows 10マシンにこのデバイスを再接続します。VMware WorkstationのGUIで、[ ] をクリックします。 VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

ESXiでのUSBフラッシュドライブの接続

この方法は、ESXiホストのネットワークドライバを更新する必要があるものの、ネットワークが利用できない場合など、特定の状況において非常に役立ちます。ESXiにUSBフラッシュドライブを接続するのは、VMware Workstationを実行しているホストマシンに接続する場合よりも複雑です。

ESXiでは、マウント可能なファイルシステムに制限があります。FAT32およびNTFSファイルシステムを採用したUSBフラッシュドライブやUSB HDDはサポートされていません。 このため、USBフラッシュドライブ上にパーティションを作成し、そのパーティションをVFAT(WindowsではFAT12として認識される)でフォーマットする必要があります。VFATには、パーティションの最大サイズやファイルの最大サイズといった制限があります。したがって、この方法は、仮想ディスクや4 GBを超えるISOイメージなどの大容量ファイルには適用できません。ただし、設定ファイルやドライバなどを転送するには、これらの制限で十分です。

USBフラッシュドライブにパーティションを作成する

まず、USBフラッシュドライブ上に新しいパーティションを作成し、このパーティションをVFATでフォーマットしましょう。これを行うには、ESXiサーバーに挿入したUSBフラッシュドライブを(ホスト接続USBパススルー機能を使用して)仮想マシンに接続します。 あるいは、物理的なWindowsまたはLinuxマシンにUSBフラッシュドライブを挿入することもできます。

この例では、Windows 7マシンを使用してESXi用のUSBフラッシュドライブを準備します。Windows Server 2008 R2、Windows 10、およびその他の新しいWindowsバージョンでのコマンドは同じです。

  1. USBフラッシュドライブがWindowsマシンに接続されていることを確認するには、右クリックして My Computer または This PC (または実行する diskmgmt.msc (CMDから)を開く Disk Management.
  2. Windowsのコマンドプロンプトを開きます:

    Start > Run > cmd

  3. 種類 diskpart コマンドラインで入力し、 Enter.

    diskpartのプロンプトが表示されます:

    Diskpart

  4. Windows マシンに接続されているディスクの一覧を表示します:

    list disk

    出力リストからご自身のUSBフラッシュドライブを見つけ、ディスク番号を覚えておいてください。今回の例では、 Disk 1 これは、当社のUSBフラッシュドライブの番号です(下のスクリーンショットを参照)。

  5. 上記のコマンドの出力から得られた適切なディスク番号を指定して、USBフラッシュドライブを選択してください(disk 1 (私たちの場合は)。

    select disk 1

  6. 選択したUSBフラッシュドライブ上のパーティションの一覧を表示します:

    list partition

    パーティションが1つあります(Partition 1) をUSBフラッシュドライブに作成します(下のスクリーンショットを参照)。USBフラッシュドライブにパーティションを1つだけ作成するのが最も一般的なケースです。

    Listing disks to identify a USB flash drive that can be used to copy files from a VM to an ESXi host

    次に、USBフラッシュドライブ上のパーティションを削除する必要があります。

    重要: USBフラッシュドライブ上のすべてのデータが削除されます。必要に応じて、次の手順に進む前に、フラッシュドライブからデータをコピーしておいてください。

  7. 削除しようとしているUSBフラッシュドライブ上のパーティションを選択してください:

    select partition 1

  8. 選択したパーティションを削除するには、次のコマンドを実行してください:

    delete partition

  9. もう一度、USBフラッシュドライブを選択してください:

    select disk 1

    Selecting the first partition on a USB flash drive in Diskpart

  10. VFAT ファイルシステムを使用して新しいパーティションを作成します。この例では、USB フラッシュドライブ上に 4 GB のパーティションを作成します。VFAT では 4 GB を超えるファイルを保存できない点に注意してください。また、VFAT は 8.3 形式のファイル名のみをサポートしている点にも注意してください。

    create partition primary size=4000 id=6

  11. ESXiとの互換性を確保するため、作成したパーティションを次のようにフォーマットしてください:

    format fs=fat quick

    Formatting a partition in VFAT transfer files from VM to host (ESXi)

  12. diskpart ユーティリティを終了します(次のコマンドを実行して exit コマンド)。

USBフラッシュドライブは、ESXiによって認識され、ファイルのコピーが可能になる状態になっています。ESXiでいくつかの追加設定を行うと、USBフラッシュドライブを仮想マシン(VM)に接続し、必要なファイルをUSBフラッシュドライブにコピーできるようになります。

ここでは、ドライバを含む ZIP アーカイブをコピーする必要があると仮定します。この例では、net-tulip.zip を USB フラッシュドライブにコピーしました。次に、ESXi サーバーに挿入された USB フラッシュドライブのパーティションを、ESXi コマンドラインからマウントする必要があります。

USBフラッシュドライブを使用するようにESXiホストを設定する

USBフラッシュドライブにあるドライバーを含むZIPアーカイブをESXiデータストアにコピーし、その後、ESXiデータストアにあるVM構成ファイルをUSBフラッシュドライブにコピーする必要があるとします。ファイル名は net-tulip.zip この例では、USBフラッシュドライブからVMware ESXiへ、あるいはその逆方向にファイルを転送するには、ESXiホストで以下の操作を行ってください。

  1. 設定は コマンドラインインターフェース. このため、 ESXiホスト.
    • DCUIでSSHによるリモートアクセスを有効にするには、次の場所へ移動します。 Troubleshooting options > Enable SSH.
    • VMware Host Client で ESXi 上のリモート SSH アクセスおよび SSH サーバーを有効にするには、次の場所へ移動します。 Host > Manage そして、 Services タブ。右クリック TSM-SSH そして、クリックして Start サービスを開始するには。このサービスを永続的に有効にすることができます。

    Starting the SSH server service on an ESXi host to allow remote management in the command line

  2. SSH経由でESXiホストに接続し、コマンドラインを使用します。お好みのSSHクライアントを使用できます。
  3. USB アービトレータ サービスを停止します:

    /etc/init.d/usbarbitrator stop

    USB アービトレータは、ESXi ホスト上に存在する仮想マシンに対して、USB パススルー機能を自動的に有効にします(この機能を使用するには、対象の仮想マシンの設定で USB フラッシュドライブを選択するだけで済みます)。

  • ESXiの再起動後にUSBアービトレータサービスを(恒久的に)無効にしたい場合は、次のコマンドを使用できます:

    chkconfig usbarbitrator off

    USB アービトレータ・サービスを有効にするには、適切なコマンドを実行してください:

    /etc/init.d/usbarbitrator start

    chkconfig usbarbitrator on

  1. ESXiホストに接続されているUSBデバイスを確認するためのオプションコマンド:

    lsusb

    esxcli storage core device list | grep -i usb

    esxcli storage filesystem list

    ご覧いただけます /var/log/usb.log USBデバイスの状態を確認するには。

  2. USB アービトレータ サービスを停止した後、USB ストレージ デバイスを一度取り外して、再度接続する必要がある場合があります。
  3. 接続されているUSBフラッシュドライブ(またはUSB HDD)を見つける/特定するために、ブロックディスクデバイスの一覧を表示します。

    ls -ltrh /vmfs/devices/disks/

    当社のUSBフラッシュドライブは mpx.vmhba32:C0:T0:L0: (下のスクリーンショットを参照)。

    したがって、ディスク上の完全なアドレス/位置は次のとおりです:

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

    Viewing disk devices connected to an ESXi host to identify a USB flash drive

  4. USBデバイスのパーティション番号を確認し、正しいディスクデバイスを特定していることを確認してください:

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

    出力によると、今回のケースではパーティション番号も考慮した完全なデバイスIDは次のとおりです:

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

  5. USBフラッシュドライブのルートフォルダを特定し、ファイルをコピーするためのソース/宛先パスを指定します。次のコマンドを実行し、 Tab volumes ディレクトリにある利用可能な項目を確認するには。その /volumes/ ESXi ファイルシステムのディレクトリとは、ファイルシステムを持つパーティションがマウントされるディレクトリのことです。

    ls -al /vmfs/volumes/ [press Tab]

    USBフラッシュドライブ上のボリュームは、次のように呼ばれます。 NO NAME

    A USB flash drive connected to an ESXi host has the NO NAME volume label

  6. USBフラッシュドライブのルートディレクトリの内容を確認してください

    ls -al /vmfs/volumes/NO NAME/

    当社のZIPアーカイブは、USBフラッシュドライブのボリューム内に保存されています。

    How to transfer files from VM to host using a USB flash drive connected to ESXi

  7. 私たちは、 install ESXi データストア上のフォルダ (datastore10a) 以下のコマンドを実行して:

    cd /vmfs/volumes/datastore10a

    mkdir install

    以下のスクリーンショットには、後ほどESXiデータストアからUSBフラッシュドライブへコピーする予定の仮想マシンの構成ファイルが格納されているディレクトリも表示されています。

    Selecting a VM file that can be copied to a USB flash drive from an ESXi datastore

  8. USBフラッシュドライブからZIPアーカイブを インストール ESXiホスト上のフォルダ( datastore10a).

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

  9. ファイルがコピーされたかどうかを確認してください:

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

    ファイルのコピーが完了しました。

    How to copy file from VM to host in the ESXi command line interface

同様に、逆方向にもファイルをコピーすることができます。つまり、ESXiからUSBフラッシュドライブにファイルをコピーし、そのUSBフラッシュドライブから必要なファイルを仮想マシンや別のマシンにコピーすることができます。

  1. VMフォルダの内容を確認してください:

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

  2. をコピーして Windows-VM.vmx ESXiのデータストアからUSBフラッシュドライブへの設定ファイルのコピー:

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

  3. ファイルがUSBフラッシュドライブにコピーされたかどうかを確認してください:

    ls -al /vmfs/volumes/NO NAME/

    Copying a VM file from an ESXi host to a USB flash drive

ESXiホストでのファイルのコピーが完了したら、USBフラッシュドライブを取り外し、ESXiホスト上でUSBアービトレータサービスを起動します。その後、USBフラッシュドライブを挿入し、ホスト接続型USBパススルー機能を使用して、そのUSBフラッシュドライブを仮想マシンに接続することができます。

詳細については ESXi 向けの USB パススルー また、ESXiホストに挿入されたUSBストレージデバイスを、そのESXiホスト上に存在する仮想マシンに接続します。

PowerCLI を使用した VMware 仮想マシンへのファイル転送

VMからホストへファイルを転送するもう1つの方法は、 PowerCLI コマンド(コマンドレット)。VMware Tools は、仮想マシン(VM)内のゲストオペレーティングシステムにインストールされている必要があります。これらの PowerShell コマンドレットは、VMware Tools を使用して、ESXi ホスト上に存在する仮想マシンとの間でファイルをコピーします。したがって、送信元または宛先の ESXi ホスト上に存在する仮想マシン内でコマンドを実行する場合、ネットワーク接続は必要ありません。

仮想マシン間でファイルをコピーするには、以下の Copy-VMGuestFile cmdlet および vSphere PowerCLI のその他の cmdlet。

  1. ESXiホストまたはvCenter Serverに接続します。この例では、ESXiホストに接続します。

    Connect-VIServer 192.168.101.201

    Connecting to an ESXi host in VMware PowerCLI

  • 証明書に関する警告を表示させないには、次のコマンドを実行してください:

    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

    How to disable a certificate warning in VMware vSphere PowerCLI

Copy-VMGuestFile (ローカル > ESXi VM)

次のコマンドを使用して、ローカルマシン(PowerCLI が実行されているマシン)から ESXi ホスト上のリモート VM へファイルをコピーします。

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

場所:

c:temptest.txt これは、ローカルマシンからコピーしたいソースファイルです

-LocalToGuest これは(ローカルマシンから、ESXi上で実行されている宛先VM上のゲストOSへの)方向です

-VM Windows-VM これは、宛先VM名の定義です

c:temp-VM は、宛先VM上の宛先フォルダです(ファイルのコピーを保存したい場所)。

user1 これは、宛先VM上のゲストOSにおけるユーザー名です。このユーザーは、指定された宛先フォルダへのアクセス権を持っている必要があります。

Password これがこのユーザーのパスワードです。

VMware Toolsのバージョンに関する警告は無視し、当社の text.txt ファイルがコピーされました。

How to copy file to virtual machine in PowerCLI

私たちの……であることがわかります。 test.txt サイズが29バイトのファイルが、ESXiホスト上で実行されているWindows XP仮想マシンに正常にコピーされました。

A file has been copied to a VMware VM

Copy-VMGuestFile (ESXi VM > ローカル)

それでは、VMのゲストOSから、コマンドを実行しているマシンのローカルディレクトリにファイルをコピーしてみましょう:

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

場所:

-Source "c:temp-VMtest2.txt" ESXi上で実行されているVM上のソースファイルへのパスです

-GuestToLocal (ESXi VM上のゲストOSから、コマンドが実行されるローカルマシンへの)方向です

"c:temp" ローカルマシン上の宛先フォルダへのパスです

user1 は、宛先VM上のゲストOSにおけるユーザー名です。このユーザーは、指定された宛先フォルダへのアクセス権を持っている必要があります。

Password ゲストOS上のこのユーザーのパスワードです

How to copy a file from a virtual machine in PowerCLI

の使い方例は、 Copy-VMGuestFile 次のコマンドを含むコマンドレット:

get-help Copy-VMGuestFile -examples

Copy-DatastoreItem の使用

その Copy-DatastoreItem PowerShell コマンドレットは、ESXi データストアとの間でファイルをコピーするために使用されます。このコマンドレットを使用して VMware ESXi データストアにファイルをコピーするには、2 つの方法があります。

  • VM内のWindowsゲストにPowerCLIがインストールされている場合、コマンドを実行して、ESXiデータストアからVMへ、あるいはその逆方向にファイルを直接コピーすることができます。
  • ESXiホスト上の仮想マシンにPowerCLIをインストールできない場合は、ローカルのWindowsマシンからPowerCLIコマンドを実行し、ESXiデータストアからローカルマシンへファイルをコピーすることができます。 Copy-VMGuestFile コマンドを実行し、これらのファイルをローカルマシンから、 Copy-VMGuestFile.

ESXi サーバーまたは vCenter Server に接続している必要があります。これを行うには、次のコマンドを実行します。

ViConnect <server_name_or_IP>

ESXiホストに直接接続されています。

データストアから現在のWindowsマシン(これらのコマンドを実行しているマシン。ESXiホスト上のVMでも構いません)に、VMの設定ファイルをコピーしてみましょう:

  1. データストアに関する情報を取得します:

    Get-Datastore "datastore10a"

  2. ESXi データストアオブジェクトを取得する:

    $datastore = Get-Datastore "datastore10a"

  3. “”という名前の新しい PowerShell ドライブを作成します。 ds: これは次のものに割り当てられます $datastore:

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

  4. データストアを現在の場所として設定します:

    Set-Location ds:

  5. 選択したディレクトリ内のファイルやディレクトリを一覧表示するには、次のコマンドを使用します:

    Get-ChildItem

    Preparing to copy files from an ESXi host

  6. VMディレクトリを新しい保存先として設定できます。今回の場合、このディレクトリは Windows-VM

    Set-Location "Windows-VM"

  7. 定義済みのESXiデータストアから、VMファイル(つまりVMの設定ファイルであるVMXファイル)を現在のマシン上の一時フォルダにコピーするコマンドは次のとおりです:

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

    場所:

    ds:Windows-VMWindows-VM.vmx は、コピーする必要があるファイルへのパスであり、 ds: データストアへの定義済みショートカットです(datstore10a (この場合は)。

    Copying a file from an ESXi datastore in PowerCLI

  • vCenter に接続している場合(この例のように特定の ESXi ホストに接続しているわけではない場合)、vCenter データセンター内のデータストアを指定して次のコマンドを実行することで、ESXi データストアからローカルマシンのフォルダへファイルをコピーできます:

    Copy-DatastoreItem vmstore:Datacenter1datastore10aWindows-VMWindows-VM.vmx c:temp

  • ファイルを逆方向(ESXiホストに接続して)にコピーするには、次のコマンドを使用します:

    Copy-DatastoreItem -Item c:tempdarwin.iso -Destination ds:install

    コピーします darwin.iso (これは、VMware Tools がインストールされた状態の画像です。 macOS) Windowsマシンから、ESXiデータストア上のインストールディレクトリへ。

    Copy file to VMware ESXi datastore in PowerCLI

  • vCenter に接続している場合は、このコマンドを使用して、ローカルの Windows マシンからリモートの ESXi ホスト上のデータストアにファイルをコピーできます。

    Copy-DatastoreItem c:tempdarwin.iso -Destination vmstore:Datacenter1datastore10ainstall

これらの PowerCLI コマンドレットを使用したり、PowerShell スクリプトを作成したりすることで、VM からホストへ、あるいはその逆方向にファイルを転送することができます。

VMware Workstation で仮想マシンからホストへファイルをコピーするコマンド

Windows または Linux のホストで VMware Workstation(タイプ 2 ハイパーバイザー)を使用している場合(または macOS で VMware Fusion を使用している場合)、コマンドラインインターフェースを使用して、仮想マシンからホストへ、あるいはその逆方向にファイルをコピーすることもできます。以下の vmrun 仮想マシンを操作するためのコマンドラインツールです。コマンドの構文は、Windows、Linux、macOS(VMware Fusion)で共通です。このチュートリアルでは、Windows 10上のVMware Workstation 15を使用します。

  1. VMware Workstation のディレクトリに移動します:

    cd "C:Program Files (x86)VMwareVMware Workstation"

  2. VM内のゲストOSからローカルのWindowsホストにファイルをコピーするには、次のようにコマンドを実行します。

    CopyFileFromHostToGuest <Path to vmx file> <Path in guest> <Path on host>

    今回のケースでは、具体的なコマンドは次のとおりです:

    vmrun copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied"

  3. プロンプトが表示されたら、ユーザー名と、そのユーザーのパスワードを入力してください(そのユーザーには、指定されたファイルにアクセスするための十分な権限が必要です)。

    場所:

    d:virtualWinServer2019WinServer2019.vmx これは、ファイルをコピーする元のVMの仮想ディスクです。

    c:temptest.txt これは、VMの仮想ディスク上に保存されているファイルであり、これをコピーするファイルです。

    c:tempcopied ホストマシン上でファイルのコピーを保存するディレクトリです。

    必ずバックスラッシュを使用してください パスを設定する際の文字。以下をコピーしました test.txt これは、仮想マシンからホストへのテキストファイルです。

    あるいは、コマンド内で認証情報を指定してコマンドを実行することもできます:

    vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied"

    How to transfer files from VM to host by using the vmrun command

ファイルを逆方向(ホストマシンからVMへ)にコピーするには、次のようなコマンドを使用します:

CopyFileFromHostToGuest <Path to vmx file> <Path on host> <Path in guest>

この例で使う具体的なコマンドは次のとおりです:

vmrun copyFileFromHostToGuest d:virtualWinServer2019WinServer2019.vmx "c:temptest3.txt" "c:temptest3-copy.txt"

How to copy files to virtual machine by using vmrun

SSHとSCPを使用してファイルを転送する方法

SSH(Secure Shell)は、暗号化を利用してリモートホストを安全に管理するための一般的なプロトコルです。SCPは、SSHを利用してネットワーク経由でファイルを安全にコピーするためのプロトコルです。特にVM上でLinuxが動作している場合、SCPを使用してVMからホストへファイルを転送することができます。LinuxマシンやESXiでは、わずかな手順でSCPおよびSSHサーバーを有効にすることができます。

ESXiでSSHサーバーを有効にする方法

この方法を使用してVMware ESXiとの間でファイルを転送するには、ESXiホスト上でSSHサーバーサービスを有効にする必要があります。

  1. VMware Host Client で SSH サーバーを有効にするには、次の場所へ移動します。 Host > Manage > Services そして、始める TSM-SSH サービス。
  2. ESXiホストからファイルを転送するためのSCPトラフィックを許可し、またこのESXiホストからSCPを使用して他のマシンに接続できるようにするには、ESXiのファイアウォールでSSHを許可する必要があります:
    • [移動] Networking その中では Navigator ペインで、[ Firewall rules タブをクリックして選択する SSH Client.
    • クリック Actions > Enable ファイアウォールルールを有効にするには。

    Enabling SSH access in the ESXi firewall

  3. ホスト間のSSH接続を確認するには、ESXiホストで次のコマンドを実行します。

    nc -z 192.168.101.202 22

    場所:

    192.168.101.202 は、リモートホストのIPアドレスです。

    22 これはSSH接続のポート番号です(デフォルトのポート番号は22です)。

の一般的な構文は、 scp ネットワーク経由でSCPを使用してファイルをコピーするコマンド:

scp [OPTION] [user]@[SRC_HOST]:path_to_file1 [user]@[DEST_HOST]:path_to_file2

[user]@[SRC_HOST]:path_to_file1 – ソースファイル

[user]@[DEST_HOST]:path_to_file2 – 出力先ファイル

-P SSH接続のポート番号を指定します(ポート番号が22以外の場合は、このフラグを使用してください)。

以下では、具体的な使用例について解説します。

SCP を使ってローカルファイルをリモートマシンにコピーする方法

SCP を使用してローカルファイルをリモートマシンにコピーするには、次のようなコマンドを使用します:

scp file.txt remote_username@remote_host_ip:/remote/directory

Linuxから

それでは、次の内容をコピーしましょう。 LinuxDir.txt SCP を使用して、ローカルの Ubuntu Linux マシン(VM でも可)からネットワーク経由で ESXi ホストへファイルを転送します。リモート側の ESXi ホスト上の保存先は、 install のディレクトリ datastore10a データストア。リモートESXiホストのIPアドレスは 192.168.101.201.

このケースにおいて、ローカルのLinuxマシンからリモートのESXiホストへファイルをコピーするコマンドは次のとおりです:

scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/

How to copy a file to a remote ESXi host via SCP

コピーしたファイルは、新しいファイル名で目的のマシンに保存することができます:

scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/LinuxDir-copy.txt

“”を使用してください。 -r ディレクトリ内のすべてのファイルを含めてコピーするためのオプション:

scp -r /local/directory remote_username@192.168.101.201:/remote/directory

ESXi から

以下の方法を使用できます scp ESXiホスト上のコマンド。その scp コマンドラインの構文は、LinuxとESXiで同じです。リモートマシンにはSSHサーバーが設定されている必要があります。

ESXiホストにログインしてみましょう(192.168.101.201) そして、 install そのディレクトリに含まれるすべてのファイルとともに、 user1 リモートのLinuxマシン上で(192.168.101.210).

scp -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/

How to copy a file from an ESXi host to a remote machine via SCP

SSH サーバーが 22 以外のポートでリスニングしている場合は、 -P パラメータ。たとえば、SSHのポート番号が 8022、そのコマンドは次のとおりです:

scp -P 8022 -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/

SCP を使用してリモートマシンからローカルマシンにファイルをコピーする方法

SCPは、リモートマシンからローカルマシンへファイルをコピーするのに便利で、VMからホストへファイルを転送することも可能です。以下では、LinuxおよびESXiで適切なコマンドを実行する方法について説明します。

ファイルをローカルのLinuxマシンにコピーする

SCP を使用して、リモート ESXi ホストから現在の Linux マシンにファイルをコピーします。これを行うには、次のようなコマンドを使用します:

scp remote_username@remote_ip_address:/remote/file.txt /local/directory

では、次のものをコピーしてみましょう。 darwin.iso リモート ESXi サーバーから、Linux マシンの指定されたホームディレクトリへファイルを転送します:

scp root@192.168.101.201:/vmfs/volumes/datastore10a/install/winPreVista.iso /home/user1/

How to copy a file from a remote ESXi datastore to the current Linux machine via SCP

ファイルをローカルのESXiホストにコピーする

ESXiホストにログインすれば、リモートにあるLinuxマシンからローカルのESXiホスト上のデータストアへVMファイルをコピーするコマンドを実行できます。それでは、コピーしてみましょう。 VM_file.txt SCP を使用して、Linux マシンからネットワーク経由で ESXi データストアのディレクトリへ:

scp user1@192.168.101.210:/home/user1/VM_file.txt /vmfs/volumes/datastore10a/install/

How to copy a file from a remote Linux machine to the ESXi host via SCP

2台のリモートマシン間でファイルをコピーする方法

SCP コマンドには、現在のローカルマシンを経由してデータをコピーする場合と、経由せずにコピーする場合があり、あるリモートマシンから別のリモートマシンへファイルをコピーするためのコマンドが用意されています。コマンドの構文は次のとおりです:

scp user1@remote-host1.com://directory/file.txt user2@remote-host2.com://directory/

上記のコマンドを使用すると、データは(現在のローカルマシンにコピーされることなく)あるリモートホストから別のリモートホストへ直接転送されます。コマンドを実行しているローカルマシンを経由してトラフィックをルーティングしたい場合は、 -3 flag.

注: 両方のリモートホストの認証情報が同じ場合は、このコマンドを使用してください。

ローカルのLinuxマシンでファイルコピーを行うためのコマンド例(vim.v00) リモート ESXi ホスト (192.168.101.202) からローカルの ESXi ホスト (192.168.101.201) へ:

scp root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

もし…が見えたら、 Host key verification failed このエラーは、いずれかのホストにホストキーが保存されていないことを意味します。このエラーがリモートサーバーでのホストキーの変更によって引き起こされた場合は、 ~/.ssh/known_hosts

古いホストキーを削除するコマンドは次のとおりです:

ssh-keygen -R hostname_or_IP_address

たとえば、リモートホスト 192.168.101.201 の古いホストキーを削除するには、192.168.101.202 で次のコマンドを実行します:

ssh-keygen -R 192.168.101.201

使用例 -3 ローカルマシン経由でファイルをコピーするコマンドでは:

scp -3 root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

この目的で使用できる別のコマンドは次のとおりです:

scp -o "ForwardAgent yes" root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

WindowsからSCPを使ってファイルをコピーする方法

Windows では、仮想マシンや ESXi ホストにファイルをコピーすることもできます。これを行うには、WinSCP などの SCP クライアントを使用する必要があります。WinSCP は、使いやすく便利なグラフィカルインターフェースを備えています。次の操作が可能です。 WinSCPをダウンロード 無料で。

  1. WinSCP を実行します。
    • プロトコルを選択してください。例えば、 SFTP.
    • ESXiホストやLinuxマシンなどのリモートホストのホスト名とポート番号を入力してください。
    • リモートマシンのユーザー名とパスワードを入力してください。
    • クリック Login.

    この例では、リモートの ESXi ホストに接続しています。

    Connecting to an ESXi host in WinSCP to copy files

  2. 次のような通知メッセージが表示されます:

    Continue connecting to unknown server and add its host key to a cache?

    クリック Yes 続きを読む。

  3. 接続が完了すると、2つのパネルからなるコマンドプロンプト風のウィンドウが表示されます。一方のパネルはローカルマシンのディレクトリを表し、もう一方のパネルはリモートマシンのディレクトリを表しています。これら2つのパネル間でファイルをコピーすることで、ローカルホストとリモートホストの間でファイルをコピーすることができます。

    Using WinSCP to copy a VM file from and to an ESXi host

WinSCPで接続しているリモートESXiホストのデータストアから、そのWindowsマシン上のSMB共有を使用して、リモートのWindows仮想マシンまたは物理マシンにファイルをコピーすることができます。

ただし、WinSCPのパネルに共有パスを直接入力することはできません(例: 192.168.101.117c$). 選択できるのはディスクドライブ文字のみです。この制限を回避するには、Windows エクスプローラーでファイル共有に接続し、このファイル共有をネットワークドライブとしてマッピングしてください。ドライブ文字を割り当てます。例えば、 S: この例で行ったように、 192.168.101.211.

これで選択できるようになりました S: WinSCPの左ペインにあるドロップダウンメニューからネットワークドライブとして選択し、リモートESXiサーバーのデータストア上で必要なファイルまたはディレクトリを選択して、双方向でファイルをコピーします。

Copying files between a remote ESXi host and remote SMB share by using WinSCP in Windows

NFS 共有の使用

NFS 共有を使用すると、ESXi データストアから仮想マシンへ、あるいはその逆方向にファイルを転送することができます。ESXi は SMB 共有(Windows ネイティブ)には対応していませんが、NFS 共有(Linux ネイティブ)および NFS 共有をデータストアとしてマウントすることには対応しています。この機能を利用することで、以下のいずれかの方法で ESXi と Linux マシン間でファイルを転送することができます:

アプローチ1:

  • Linux VM上でNFSサーバーとNFS共有を設定する
  • NFS共有をESXi上のデータストアとしてマウントする
  • VMからESXiデータストアへ、またはその逆方向にファイルをコピーする

アプローチ2:

  • 物理Linuxマシン上でNFSサーバーを設定するか、 NAS
  • NFS共有をESXi上のデータストアとしてマウントする
  • Linux VM上のNFS共有に接続する
  • Linux VM から NFS 共有へファイルをコピーし、そのファイルを ESXi ホストへコピーします。次に、ESXi ホストから NFS 共有へファイルをコピーし、そのファイルを NFS 共有から Linux VM へコピーします。

以下をお読みください NFS 対 SMB これらのファイル共有プロトコルについて詳しく知るための比較。

Linux での NFS 共有の設定

このチュートリアルでは、Linux Ubuntu 20.04 を使用しています。一般ユーザーとして Linux にログインし、 sudo コマンドの実行にroot権限が必要な場合。NFSサーバーをインストールし、NFS共有を設定するには、以下の手順を実行してください。

  1. Linux でリポジトリツリーを更新するには:

    sudo apt-get update

  2. Linux に NFS サーバーパッケージをインストールします:

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

  3. NFS サーバー上で共有されるディレクトリ(エクスポート先ディレクトリ)を作成します:

    sudo mkdir -p /srv/nfs/share1/

  4. 作成したディレクトリの所有者とアクセス権を設定します:

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

    sudo chmod 0777 /srv/nfs/share1/

    その nobody は、シェルへのアクセス権がなく、権限が最も低いユーザーを表す疑似ユーザーです。この nogroup このグループは、 nobody ユーザー。

    Creating a directory for an NFS share

  5. 作成したディレクトリを共有できるように、exports ファイルを設定します。

    sudo nano /etc/exports

    または

    sudo vim /etc/exports

  6. 設定ファイルの末尾に次の行を追加してください:

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

    今回のケースでは、ESXiホストの許可済みIPアドレスが指定されている行は次のとおりです:

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

    次の行を追加することで、サブネット内のすべてのホストへのアクセスを許可できます:

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

    別のホスト(IPアドレス)からのアクセスを許可するには、次の行を追加してください。

    設定ファイルの変更を保存し、テキストエディタを終了してください。

  7. データがファイルに書き込まれたかどうかを確認するには、次のコマンドを使用できます:

    cat /etc/exports

  8. 次のコマンドを実行して、新しい設定を適用してください:

    sudo exportfs -a

  9. NFS サーバーが稼働している Linux マシンのファイアウォールで、アクセスが許可されていることを確認してください。次のようなコマンドを使用して、特定の IP アドレスへのアクセスを許可することができます。

    sudo ufw allow from IP to any port nfs

    今回のケースでは:

    sudo ufw allow from 192.168.101.201 to any port nfs

    サブネット全体からのホストへのアクセスを許可するには:

    sudo ufw allow from SUBNET to any port nfs

    この場合、コマンドは次のようになります:

    sudo ufw allow from 192.168.101.0/24 to any port nfs

  10. 次のコマンドでファイアウォールの状態を確認できます:

    sudo ufw status

  11. 設定の変更を反映させるには、NFS サーバーを再起動してください:

    sudo systemctl restart nfs-kernel-server

  12. Linux で NFS 共有の設定が完了しました。
  13. Linux マシンの任意のディレクトリから、NFS 経由で共有されているディレクトリにファイルをコピーします。コピーするのは VM_file.txt NFS共有にアクセスし、その後、ディレクトリの内容を確認します:

    cp VM_file.txt /srv/nfs/share1/

    ls -al /srv/nfs/share1/

    Copying a file to a directory configured as an NFS share

ESXi での NFS データストアのマウント

NFS 共有の設定が完了したら、ESXi に NFS データストアを追加する必要があります。この例では、その操作に VMware Host Client を使用します。

にアクセスし、 Storage > Datastores そして、クリックして New datastore.

Creating a new datastore to mount the NFS as a datastore

その New datastore ウィザードが開いています。

  1. 選択 Mount NFS datastore. クリック Next 続きを読む。

    How to mount an NFS datastore in ESXi

  2. NFSマウントの詳細を指定してください:
    • 名前: NFS-share (データストア名として表示される名前)
    • NFS サーバー: 192.168.101.210
    • NFS 共有: /srv/nfs/share1/
    • NFSのバージョン: NFS4

    NFS4では、ユーザー名とパスワードは任意です。これら2つのフィールドは空欄のままにします。

    Entering the details to mount an NFS datastore in ESXi

  3. 完了の準備が整いました。設定を確認し、[クリック] してください。 Finish すべてが正しいのであれば。

仮想マシンからホストへファイルをコピーする

NFS データストアのマウントに成功しました。これは、以下の場所で確認できます。 Storage > Datastores.

これで、NFS共有に保存されているVM内のファイルを、ローカルのESXiデータストアにコピーできるようになりました(VMからホストへファイルを転送)。

  1. クリック Datastore Browser.

    Browsing the NFS datastore to copy a VM file

  2. データストアブラウザでNFSデータストアを選択してください(NFS-share (今回のケースでは)。NFS データストア内で必要なファイルを探します。必要なファイルを選択し、[] をクリックします。 Copy.

    How to copy a VM file from a virtual machine to an ESXi datastore using an NFS share

  3. 保存先を選択してください。コピーしたファイルを保存したい、ターゲットのデータストア内の必要な場所を選択してください(datastore10b (当方のケースでは)。クリック Copy.

    Copying a VM file to an ESXi datastore in VMware Host Client

    あるいは、ESXiサーバーのコマンドラインから必要なファイルをコピーすることもできます:

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

VMware Webインターフェースを使用したファイルのダウンロード/アップロード

VMware Host Client の Web インターフェースを使用するか、 VMware vSphere Client ESXiデータストアへのファイルのアップロードや、データストアからのファイルのダウンロードを行うためです。このWebインターフェースは、Webブラウザがインストールされており、ESXiホストへのネットワーク接続が可能な物理マシンまたは仮想マシンから利用できます。したがって、ゲストOSにGUIが搭載されている場合は、仮想マシンから直接このWebインターフェースを開くことも、任意のローカルマシンを中継機として使用して、仮想マシンとホスト間でファイルを転送することも可能です。

How to copy a VM file - downloading a virtual disk file from an ESXi datastore in VMware Host Client

VMからVMware ESXiへファイルを転送するには、別の方法もありますが、こちらはより複雑です:

  1. VMの仮想ディスクをローカルマシンまたは別のマシンにダウンロードします。
  2. このVMの仮想ディスクから必要なファイルを抽出してください(.vmdk そして -flat.vmdk) をローカルマシンにコピーします。あるいは、VMware Workstation がインストールされている場合は、仮想ディスクを仮想ドライブにマウントすることもできます。
  3. 上記で説明した方法(VMware Host Client、vSphere Client、SCPクライアントなど)のいずれかを使用して、抽出されたファイル、またはマウントされた仮想ディスク内のファイルを、ESXiホストのデータストアにアップロードしてください。

    How to map a VMDK file as a virtual disk drive in Windows

に関する詳細なブログ記事をご覧ください VMDK仮想ディスクからファイルを抽出する方法.

ISO ファイルを使用した仮想マシンへのデータ転送

VMのネットワーク接続が利用できない場合、ISOイメージファイルを使用してVMware VMにファイルを転送することができます:

  1. Windows用のUltra ISOなどのソフトウェアを使用して、ISOイメージを作成してください。
  2. 必要なファイルを、ローカルマシンまたは別のマシンのISOイメージに書き込んでください。上記の方法のいずれかを使用してESXiからファイルをコピーし、それらをISOイメージに書き込むことができます。
  3. VMの仮想CD/DVDドライブを使用して、ISOイメージファイルをVMにマウントします(ローカルマシンから直接ISOファイルをマウントするか、この操作を行う前にISOファイルをESXiデータストアにアップロードしておくこともできます)。VMware Host Client、VMware vSphere Client、VMware Workstation、またはVMware Remote Consoleを使用して、ISOファイルをESXi VMにマウントします。

VMは仮想CD/DVDディスクを読み取り専用モードで扱うため、この方法ではVMからホストへファイルを転送することはできません。

結論

ホストから仮想マシンへ、あるいはその逆方向にファイルをコピーする方法はいくつかあります。ネットワーク接続が必要な方法もあれば、ネットワークが利用できない場合でも機能する方法もあります。状況に応じて適切な方法を選択し、これらの方法を組み合わせて利用することができます。データ損失を防ぐため、仮想マシンのバックアップを忘れずに実施してください。NAKIVO Backup and Replication を使用すれば、VMware vSphere 上の仮想マシンを保護することができ、 個々のファイルを復元する VMのバックアップから直接。

試してみてください NAKIVO Backup & Replication

試してみてください NAKIVO Backup & Replication

無料トライアルを利用して、本ソリューションのデータ保護機能をすべてお試しください。15日間無料。機能や容量の制限は一切ありません。クレジットカードも不要です。

関連記事