Hyper-V サーバーおよび仮想マシンにファイルをコピーする方法:7つの方法

Hyper-V は Windows 上で動作するハイパーバイザーであり、インストールされているマシン上で直接管理できるほか、リモートからの管理も可能です。多くの場合、Hyper-V サーバーへ、あるいはサーバーから仮想マシンへファイルをコピーする必要があります。Hyper-V 仮想マシンへはファイルをドラッグ&ドロップするだけではコピーできないため、他の方法を使用してファイルをコピーする必要があります。

たとえば、Hyper-V で新しい仮想マシンを作成する場合、その仮想マシンに OS をインストールする必要があります。 通常、これはオペレーティングシステムのインストール用ISOイメージをマウントすることで行われます。 メディアを Hyper-V ホストに取り込むには、ISO ファイルをホストにコピーし、新しい仮想マシンにゲスト OS をインストールする必要があります。

このブログ記事では、Hyper-V 仮想マシンおよび Hyper-V Server にファイルをコピーする 6 つの方法を紹介しています。なお、Hyper-V Server にファイルをコピーするこれらの方法は、Hyper-V ホストから仮想マシンへファイルをコピーする場合など、他のシナリオでも使用できます。

Hyper-V バックアップ用 NAKIVO

Hyper-V バックアップ用 NAKIVO

Hyper-V向けの、エージェントレスかつアプリケーション対応のバックアップ機能。ランサムウェア対策、バックアップからのVMの即時起動、その他の仮想/物理プラットフォームへの対応など。

方法 1: Hyper-V ホスト上のファイル共有を使用してファイルをコピーする方法

この方法では、Hyper-V ホスト上にファイル共有を作成し、ISO イメージやその他のファイルをこの SMB ファイル共有にコピーします。 SMBプロトコル は Windows のネイティブな共有プロトコルですが、Linux やその他のオペレーティングシステムでもサポートされています。

ネットワーク接続が確立されていれば、この方法を使用して、任意の物理マシンや仮想マシンからHyper-Vサーバーにファイルをコピーすることもできます。

  1. Hyper-Vを実行しているマシンで受信SMB接続を有効にするには、ファイアウォールルールを有効にします。ファイアウォールで file and printer sharing を有効にするには、Hyper-Vホストで次のコマンドを実行します:

netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes

注: SMBファイル共有の設定 必要なユーザーに適切なアクセス権を付与し、必要なフォルダのみを共有することができます。

  1. Windows マシンにグラフィカルユーザーインターフェイス (GUI) がインストールされている場合は、Windows エクスプローラーウィンドウのアドレスバーに共有パスを入力して、Hyper-V ホスト上のリモートファイル共有に接続します。この例では、管理目的で全ての Windows マシンでデフォルトで有効になっている隠しシステム共有 C$ を使用します。 同様に、D$、E$ などの他のボリュームにも接続できます。

10.10.10.31c$

注: デモの目的上、ファイルは C: ドライブに保存されています。VM ファイル、ISO イメージ、ファイル共有、およびその他の非システムデータには、別の専用パーティションを使用することをお勧めします。

  1. ISO イメージを保存したいディレクトリ、またはコピーする必要がある他のファイルが格納されているディレクトリに移動します。まだ作成されていない場合は、このディレクトリを今すぐ作成できます。 この例では、ISO ファイルは Hyper-V ホスト上の C:ISO_1 にあり、ネットワークパスは 10.10.10.31c$ISO_1

です。コマンドラインインターフェイスを使用する必要がある場合は、次のコマンドで SMB ファイル共有をネットワークドライブとしてマッピングできます。

Net use * 〈your hyper-v host〉d$

例:

net use S: 10.10.10.31d$

注: このコマンドは、Hyper-V に転送したいデータがあるクライアントまたはサーバー上の CMD または PowerShell で実行できます。

  1. 必要なISOファイル(またはその他のファイル)を、ローカルマシン(この例では C:datashared01 )から、次のネットワークパスを使用してHyper-Vホストにコピーします。

How to copy files from Hyper-V to host

  1. ISOイメージをサーバーにコピーした後、DVDドライブの対象をそのイメージファイルに指定し、(C:)ドライブのルートに作成したフォルダを参照します。

How to add ISO to Hyper-V

  1. 必要なすべてのファイルを Hyper-V ホストにコピーし終えたら、セキュリティ上の理由から、Hyper-V ホストの Windows ファイアウォールで受信接続を無効にすることができます。必要に応じて、上記で許可したファイルおよびプリンターの共有に関するファイアウォール ルールを無効にするには、PowerShell コマンド内の YesNo に変更するだけです。

netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=No

方法 2: 単一のファイル共有を使用して Hyper-V サーバーにファイルをコピーする方法

環境内に複数の Hyper-V ホストがある場合、各 Hyper-V ホストでファイル共有を設定し、すべての Hyper-V ホストに ISO イメージをコピーするのは不便です。さらに、同じ ISO イメージのために複数のホストのストレージ容量を使用することは、合理的ではないかもしれません。

別のサーバー(たとえば、 ファイルサーバーまたはNAS )にファイル共有を設定し、必要なすべてのISOイメージをそこに保存することができます。ファイル共有を一度設定し、Hyper-Vホストへのアクセス権限を設定すれば、1か所に保存された必要なISOイメージをすべてのホストで利用できます。

Hyper-V share folder to access ISO files

この方法は、使用するすべてのマシンがActive Directoryドメインのメンバーである場合に便利です。

この方法を使用して、Hyper-V ホストと仮想マシンのゲスト OS 間でファイルを転送する場合は、Hyper-V の設定で 仮想スイッチの設定 にアクセスし、必要なネットワークモードを設定する必要があります。

Linux ゲスト OS を搭載した仮想マシンにファイルをコピーする必要がある場合、SMB プロトコルを使用する以外に別の選択肢があります。SSH を使用して、ネットワーク経由で Hyper-V ファイルを安全に転送することができます。

方法 3: RDP を使用した Hyper-V ファイル転送

Hyper-V サーバーが GUI 搭載の Windows マシン上で実行されている場合、RDP(リモート デスクトップ プロトコル)を介してこのホストに接続し、ローカル マシンのローカル ディスクをマウントして必要なファイルをコピーできます。これを行うには、対象サーバーでリモート デスクトップ接続を有効にする必要があります。

この方法を使用すると、Windows を実行している別の物理マシンまたは仮想マシンから Hyper-V サーバーにファイルをコピーできます。

  1. リモートデスクトップ接続を有効にするには、 Start > Settings > System > Remote Desktop にアクセスし、” Remote Desktop“を有効にしてください。
  2. Windows リモートデスクトップクライアントを実行します。その場所は %windir%system32mstsc.exe

です。コマンドラインまたは” mstsc “ダイアログに” Run “と入力し、” Enter“を押します。

  1. リモートコンピューターの IP アドレスまたはホスト名(この例では、IP アドレスが 10.10.10.31 の Hyper-V ホスト)とユーザー名を入力します。 ユーザー名は、完全な形式( domainuser または computeruser )で入力できます。

Using RDP for Hyper V file transfer

  1. [ Local Resources ] タブに移動し、[ More] をクリックします。

How to attach local disks and copy files to Hyper v server via RDP

  1. お使いのコンピュータからリモートホスト(この例では、リモートホストは Hyper-V ホストです)にマップしたいローカルリソースを選択します。 ” Drives “を展開し、必要なディスクドライブを選択します。必要なファイルは、このコンピューターのディスク” E: “にあるため、RDP 接続用にマッピングするディスクとして” E: “を選択します。
  2. OK “をクリックして設定を保存し、次に” Connect“をクリックします。

Selecting a local disk for an RDP connection to add ISO to Hyper-V server

リモートデスクトップセッションが確立されたら、リモートマシンの Windows エクスプローラーで” My Computer “または” This PC “を開きます。ローカルコンピューターからリモートマシンにマッピングされたディスクドライブが表示されるはずです(下のスクリーンショットの”E on SERVER01-DC “)。 このマッピングされたドライブ上で必要なファイルを探し、Hyper-V ホストにコピーします。

The local disk is connected to the remote Hyper-V host in an RDP session

この方法は、ネットワークに接続されている仮想マシン (VM) でも機能します。

方法 4: PowerShell Cmdlet を使用した Hyper-V ファイル転送

PowerShell 4.0 以降には、ホストと仮想マシンの間にネットワーク接続がなく、ファイアウォールの設定も不要な状態で、Hyper-V ホストから仮想マシンへファイルをコピーできる便利な Cmdlet が用意されています。

それでは、ネットワークを使用せずに PowerShell で Hyper-V 仮想マシンにファイルをコピーする方法を見ていきましょう。

  1. 仮想マシンで” “の”Guest services”を有効にします。 ゲスト OS に統合サービスがインストールされている必要があります。

ゲストサービスは” Hyper-V 統合サービス“の一部ですが、デフォルトでは有効になっていません。ゲストサービスを有効にするには、 VM settingsを開き、VM 設定ウィンドウの左ペインで” Integration Services “を選択し、” Guest services “チェックボックスをオンにします。
Selecting Guest services for Hyper-V file transfer between a host and guest

PowerShell で、VM の” “の”Guest services”を有効にします。 Enable-VMIntegrationService -VMName VM1 -Name 'Guest Service Interface'

  1. PowerShellで ゲストサービス 機能 が有効になっているか確認できます:

Get-VMIntegrationService -name Guest* -VMName VM1,VM2

VM1, VM2 はVMの名前です

  • ステータスが 接触なし の場合、VMを更新し、ゲストOSに 統合サービス をインストールする必要があります。
  • ステータスが の場合、必要なゲストサービスインターフェイスを有効にできます:

Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru

  1. ハイパーVホストからVMゲストへのハイパーVファイル転送を行うには、以下のコマンドを使用し、ハイパーVホストにソースパスを、VMにデスティネーションパスを設定します:

Copy-VMFile "VMName" -SourcePath "F:Test.txt" -DestinationPath "C:TempTest.txt" -CreateFullPath -FileSource Host

次の場所:

  • VMname はファイルをコピーするVMの名前です (Hyper-VマネージャーでVMの名前を確認できます。これはゲストOSに表示されるVMのホスト名ではありません)。
  • SourcePath はHyper-Vホスト上のソースファイルのパスです (コピーする必要のあるファイル)。
  • DestinationPath
  • はVM上のデスティネーションファイルのパスです (必要なファイルをコピーする場所)。

  • -CreateFullPath コマンドは、必要なフォルダーが存在しない場合に、すべての必要なフォルダーを含む完全なパスを作成するために使用されます。

私たちの例では、ホストからVMゲストへのハイパーVファイル転送のための正確なPowerShellコマンドは次のようになります:

Copy-VMFile "VM2" -SourcePath "C:tempfile01.txt" -DestinationPath "C:Temp1file01.txt" -CreateFullPath -FileSource Host

注記: そのCopy-VMFile コマンドレットは、Hyper-VホストからVMへの方向にのみ機能します。

方法5:VHDXをホストおよびゲストにマウントする

この方法のアイデアは、Hyper-VホストとVMの両方にマウントできるVHDX仮想ディスクを作成することです。この仮想ディスクに必要なファイルをコピーし、必要なマシンにディスクをマウントして、仮想ディスクへの/からのファイルをコピーできます。

この例ではWindows Server 2019を使用しています。VHDX仮想ディスクの作成は コンピュータ管理 でのみ利用可能です。VMを構成する際は Hyper-Vマネージャー にもあります。

  1. Computer Management ウィンドウを開きます。Win+R を押してRun ダイアログを開き、compmgmt.msc コマンドを実行することで実行できます。
  2. Storage > Disk Management コンピュータ管理 ウィンドウ に移動します。
  3. Disk Management右クリックして、コンテキストメニューでCreate VHDをクリックします。

Creating a VHD file on a Hyper-V Server

  1. 仮想ディスクを作成するための新しいウィンドウが開きます。
  • Hyper-Vホスト上の仮想ハードディスクの場所を指定します。例えば、 C:Hyper-Vdata-temp です
  • 仮想ハードディスクのサイズを設定します。 デモ用に、 8-GB 仮想ハードディスクを作成します。
  • 仮想ハードディスクの形式を選択します。ここでは、 VHDX を新しい形式として選択します。両者の違いについて詳しくは、 VHD 対 VHDX を参照してください。
  • 仮想ハードディスクのタイプを選択します。ディスクがデータでいっぱいになるまではストレージ容量を節約するため、 Dynamically expanding を選択します。
  • OK “をクリックして設定を保存し、ウィンドウを閉じます。

Configuring parameters for a new VHDX file

あるいは、PowerShell で VHDX 仮想ディスクを作成するコマンドの例を以下に示します:

New-VHD -Path C:Hyper-Vdata-temp.vhdx -SizeBytes 8GB -Dynamic -BlockSizeBytes 1MB

PowerShell で VHD 仮想ディスクをマウントするコマンド:

mount-VHD -path C:Hyper-Vdata-temp.vhdx

Hyper-V ホスト上に仮想ハードディスクが作成されました。

  1. Disk Management “スナップインでこの VHDX 仮想ハードディスクを右クリックし、” Initialize Disk“をクリックします。

あるいは、PowerShell を使用する場合は、初期化前にマウントされているすべてのディスクを一覧表示して、必要な仮想ディスクの番号を特定します:

Get-Disk

Initializing a disk for Hyper-V file transfer

  1. ディスクが自動的に選択されます。パーティションスタイルを選択します。 互換性を高めるため、 MBR (マスター・ブート・レコード)を使用します。” OK“をクリックします。

あるいは、PowerShell を使用する場合は、仮想ディスクの番号とパーティションスタイルを指定して次のコマンドを実行します:

Initialize-Disk 1 -PartitionStyle MBR

Selecting the MBR partition style

  1. Hyper-V ホスト上で初期化された仮想ディスク上に新しいボリューム(パーティション)を作成します。このパーティションは、Windows VM(または NTFS ファイルシステムに対応している Linux)からも表示されます。

8 GBのボリュームを右クリックし、コンテキストメニューから” New Simple Volume “をクリックします。
Creating a new simple volume

  1. “の”New Simple Volume Wizard”が開きます。 Next“をクリックします。
  2. ボリュームサイズを指定します。このボリュームにはディスクの全容量を使用します。

Specifying the volume size

  1. ドライブ文字を割り当てます(例:H:)。

Selecting a drive letter

  1. パーティションをフォーマットします。 NTFS ファイル システムを選択し、割り当て単位のサイズは既定値のままにし、ボリューム ラベルを入力します(例: Copy-Files )。 Perform a quick format チェック ボックスをオンにします。

Formatting a partition that will be used for Hyper-V file transfer

あるいは、次の PowerShell コマンドを使用してボリュームを作成およびフォーマットすることもできます:

New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter

Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force

  1. ウィザードが完了すると、Hyper-V ホスト マシンの Windows エクスプローラーにマウントされた仮想ディスクが表示されます。
  2. 必要なファイルを、仮想ディスク上のパーティションにコピーします。 以下のスクリーンショットに示すように、 、file01.txt、 をコピーします。

How to copy files to Hyper V virtual machine by using a virtual disk

  1. 必要なファイルをすべて仮想ディスクにコピーした後、Hyper-V ホストから仮想ディスクをアンマウントする必要があります。

VHDX 仮想ディスクからマウントされた該当するパーティションを右クリックし、コンテキストメニューから” Eject “をクリックします。

あるいは、PowerShell でホストマシンから仮想ディスクをアンマウントするコマンドは次のとおりです。

dismount-VHD -path C:Hyper-Vdata-temp.vhdx

Eject the virtual disk after you have copied the files

  1. この仮想ディスクは、Hyper-V ホストからゲストへ、またはその逆のファイル転送用に作成されたもので、マウントすることができます。書き込まれたファイルを含む仮想ディスクを仮想マシンにマウントしてみましょう。
  1. 必要な仮想マシンを選択し、Hyper-V マネージャーで VM Settings を開きます。
  2. 仮想マシン設定ウィンドウの左ペインで、必要な仮想ディスクコントローラーを選択します。
  3. Hard Drive “を選択し、” Add“をクリックします。

Adding a new virtual hard disk drive to the VM configuration

  1. Virtual hard disk “を選択し、” Browse “をクリックして、既存の仮想ハードディスクを仮想マシンに追加します。
  2. VHDX のパスを指定します。この例では、パスは C:Hyper-Vdata-temp.vhdx
  3. です。” OK “をクリックして設定を保存します。

あるいは、既存の仮想ハードディスクを Hyper-V VM の構成に追加するための PowerShell コマンドは次のとおりです:

Add-VMHardDiskDrive -VMName VM2 -Path C:Hyper-Vdata-temp.vhdx

Browsing a virtual disk you have created to transfer files from Hyper-V to host (or from host to VM)

  1. Hyper-V ホスト上で、接続された仮想ディスクを使用して仮想マシンを起動します。
  2. ゲスト OS にログインし、仮想ディスク上のボリュームが自動的にマウントされているか確認します。マウントされていない場合は、 Computer Management > Disk Management にアクセスし、Hyper-V ホストから VM に転送する必要があるファイルが含まれるボリュームにドライブ文字を割り当てます。
  3. 接続された仮想ディスクから、必要なファイルを仮想マシンにコピーします。

方法 6: 拡張セッション モードを使用した VMConnect

VMConnect(Virtual Machine Connection)は、仮想マシンを管理するための Hyper-V に組み込まれたツールです。VMConnect ツールには、キーボードやマウスでの操作状況を確認できる、仮想マシンのモニターとして機能する画面が含まれています。拡張セッション モードで VMConnect を使用すると、より便利になり、より多くの機能を利用できます。

拡張セッションモードでは、仮想マシンに接続する際の画面解像度をカスタマイズしたり、Hyper-V マネージャーを実行しているホストのローカルリソースを接続して仮想マシンを管理したりすることができます。ローカルリソースの接続方法は、リモートデスクトップ接続を使用してリモートホストや仮想マシンにアクセスする場合と同様です。

有効にするには Enhanced session mode:

  1. Hyper-V マネージャーで Hyper-V ホストの名前を右クリックし、コンテキスト メニューからHyper-V Settingsをクリックします。
  2. 左側のパネルで Enhanced session modeをクリックします。
  3. Use enhanced session mode チェックボックスをオンにします。

How to enable the Enhanced session mode for Hyper-V file transfer

あるいは、PowerShell で [ ] [Enhanced session mode] を有効にします。

Set-VMHost -EnableEnhancedSessionMode $True

[ ] [Enhanced session mode] が有効になり、ゲスト VM および Hyper-V サーバーでの設定がすべて完了したら、VM を起動し、VMConnect を使用してこの VM に接続できます。

拡張セッションモード が有効になっている場合、ディスプレイ解像度を選択するウィンドウが表示されます。このウィンドウで Show Options をクリックします。

Select Show Options to see additional options

Local Resources タブを選択します。 More ローカルデバイスとリソース セクションで をクリックします。

Click More to attach local disks to a VM connection session

Hyper-Vホスト上で利用可能で、VMに接続したいディスクを選択します。

Hyper-V copy files to VM – selecting a disk when using the enhanced session mode for VMConnect

方法7:ISOイメージを使用したHyper-Vファイル転送

Hyper-V仮想マシンにファイルをコピーする別の方法は、VHDX仮想ディスクを使用する方法と似ています。 ただし、この方法は一方向(Hyper-V ファイルを仮想マシンにコピー)のみであり、仮想マシンからのファイルへのアクセスは読み取り専用となります。

CD/DVD イメージファイルである ISO ファイルを編集および書き込みできるアプリケーションをお持ちの場合は、Hyper-V ホスト上の必要なファイルを ISO イメージに書き込み、この ISO イメージを仮想 DVD メディアとして仮想マシンに挿入することができます。

起動可能なISOイメージを仮想マシンにコピーする必要がある場合(たとえば、 ネスト型仮想化をテストする場合など)、新しい空の非起動用ISOイメージファイルを作成し、そこに起動可能なISOイメージファイルを追加する必要があります。その後、仮想マシンの仮想DVDドライブに挿入された外側のISOファイルから、起動可能なISOイメージをコピーすることができます。

まとめ

Hyper-V Serverへのファイルコピーにどの方法を使用する場合でも、バックアップ目的での使用は推奨されません。これらの方法は、専門的なHyper-Vバックアップソリューションほど効率的でも信頼性が高くもありません。NBRのような今日のHyper-V仮想マシン(VM)バックアップソリューションは、サイズが小さく、高速で、データの復元も容易なホストレベルのバックアップを作成します。

NBRをお試しください

NBRをお試しください

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

関連記事