KVMのホストOSからゲストOSにファイルを転送/アップロードする方法は? (フォルダ共有ではありません)

KVMのホストOSからゲストOSにファイルを転送/アップロードする方法は? (フォルダ共有ではありません)

KVMハイパーバイザー上で実行されているゲストオペレーティングシステムの設定ファイルを提供する必要があります。

「qemu」と9P virtioのサポートにより、ホストとゲスト間のKVMのフォルダ共有オプションについて読みました。ホストからゲストへのワンタイムファイル転送を支援できる簡単なプログラムについて知りたいです。

ゲストOSの実行中にファイルを転送する方法と、ゲストOSが実行されているときにゲストOSでファイルを使用できるようにする可能性のある方法(ファイルのパッケージング、可能であればディスクイメージとの統合など)を教えてください。

ホストオペレーティングシステムはLinuxです。

答え1

2つの異なるアプローチを考えてみました。

  • ネットワーク経由でファイルを転送します。たとえば、ホストでhttpdを実行し、Webブラウザを使用したりファイルをダウンロードしたりできwgetますcurl。おそらく最も簡単で便利です。
  • 転送するファイルを使用してホストにISOイメージを構築します。その後、ゲストのCDドライブに接続します。

    genisoimage -o image.iso -r /path/to/dir
    virsh attach-disk guest image.iso hdc --driver file --type cdrom --mode readonly
    
    • mkisofs代わりに使用できますgenisoimage
    • GUI(たとえばvirt-manager、CUIの代わりにvirsh)を使用してISOイメージをゲストに関連付けることができます。
    • 事前に仮想マシンを作成し、仮想マシンのIDをとして提供する必要がありますguest。既存の仮想マシンを表示できますvirsh list --all

答え2

ゲストを起動する前にこれを行うもう1つの簡単な方法は、ホストにゲストファイルシステムをマウントすることです。ここ。その後、マウントされたファイルシステムにファイルをコピーするだけです。たとえば、QCOW2イメージの場合は、次のことができます。

sudo modprobe nbd max_part=63
sudo qemu-nbd -c /dev/nbd0 <image_filename>.cow

その後、グラフィカルファイルマネージャで開くか、コマンドを使用してインストールできますmount

答え3

もう1つの方法はguestmountユーティリティを使用することです。

  1. 訪問者を閉じる

  2. ゲストディスクマウント guestmount -a ~/win10.vdi -m /dev/sda3 /mnt

  3. / mntでゲストファイルを編集します。

  4. ゲストスタート

答え4

別の方法は、USBフラッシュドライブを使用することです。

Virtual Machine Manager > 仮想マシン > USB デバイスリダイレクト

関連情報