前提
Windows では、Windows Subsystem for Linux (私は WSL 2 を使用していますが、これは WSL 1 にも適用されます) により、ゲスト Linux インスタンスのファイルシステムが 9p (具体的には 9p2000.L) を介して Windows ホストで利用できるようになります。VirtualBox のゲスト OS とホスト OS の間で同様のことを行う方法はありますか? 次のような複数のホスト OS でこれに興味があります。
- マックOS
- ウィンドウズ
および複数のゲスト OS:
- マックOS
- フリーBSD
- リナックス
- その後、私がもう少し勇気を出して、彼らにちょっかいを出す準備ができたら:
-
(ほとんど/部分的に余談ですが: はい、プロジェクトがほとんど終わっているように見えるのはわかっていますが、ウェブサイトは時代遅れです。現在、ほとんどの活動はプロジェクトのDiscordサーバーで行われています。最近起こった最もエキサイティングなことは、ビーゼルマネ Appleが同梱しているXNUカーネルをソースから構築したカーネルに置き換えた後、macOSを起動することができた。ただし、それは 2022 年半ばのことでした。
ravynOS (Webサイト、GitHub リポジトリ)
(ravynOSはFreeBSDをベースにしているので、今のところはこれでいいかもしれない。ravynOSのmacOS互換性は長いまだかなり外れているので、macOS の回答は ravynOS ではまだ機能しません。
-
(これらのうち、よりよく知られ、よく管理されているものに焦点を当ててもまったく問題ありません。ここでは過度の努力を求めているわけではありません。)
私が知っている調査の可能性のある手段には、次のようなものがあります。
9p、前述のように WSL2 で使用されます。
ヴィリオ
(注記:
- マックOSmacOS Mojave 10.14以降、基本的なvirtio機能が搭載されています。これには、virtio でサポートされている 9p kext が含まれます。ただし、最後の 9p kext がサーバーなのか、クライアントなのか、あるいはその両方なのかはわかりません。
仮想FS
ない ヴィルティオフス最も有名なドキュメントには、私が望んでいるようにその逆ではなく、ホスト OS からゲスト OS にファイルを共有するためのものであると記載されています。
virt-manager でしょうか…?
SSHFS
(回答では、これらのうち 1 つ以上をソリューションとして選択する場合があります。) さらに、QEMU/KVM には virito/9p のサポートがあることは知っていますが、私が探している種類のファイル共有構成が VirtualBox で可能かどうかを確認したいと思います。VirtualBox はよく知っていますし、少なくとも生の構成ファイルを変更したり CLI コマンドを実行したりする必要がないという意味で、セットアップが簡単です。
背景の根拠
VM ゲスト OS のファイルシステムの内容をホスト OS と共有する方法を知りたい理由は次のとおりです。
のために:
- カーネルとOSの開発
- 将来的にはカーネル拡張の開発になるかもしれない
パフォーマンスのオーバーヘッドが影響する箇所:
- ホストOSがゲストOSのファイルシステム内のファイルにアクセスすると、
- ゲスト OS がビルドやその他のプロジェクト ファイルにアクセスする必要があるときは常にそうであるとは限りません。
ビルド/プロジェクト ファイルをホスト OS のファイル システムの場所のどこかに保存して、ゲスト OS に、使用中のファイル共有メカニズムを往復するパフォーマンス オーバーヘッドとコストを強いることは避けたいものです。ゲスト OS が、それを含む VM ディスク イメージ内のファイル システムの場所にアクセスすると、ネイティブ/raw に近いパフォーマンス、または少なくともネイティブに近いか、より高いパフォーマンスが得られるはずです。
答え1
9pについては聞いたことがありませんでしたが、https://wiki.qemu.org/Documentation/9psetupそして特にhttps://wiki.qemu.org/ドキュメント/9p興味深い。
また、Virsh を使用した Qemu は、開発とデバッグの要件により適していると思います (おそらくより高速です)。Qemu および/または libvirt は MacOS プラットフォームでサポートされており、Windows でも動作するかもしれませんが、MS の選択と設計 (HyperV が彼らのものであるなど) によって制限が厳しくなっているように感じます。
なぜ Linux ホストではないのですか? しかし、あなたの幅広い質問にお答えします。あなたの背景にある理論的根拠を考慮すると、必要なときに仮想ハードディスクをマウントしないのはなぜですか? libguestfs または私のお気に入りの qemu-nbd を使用すると、必要なときにマウントできる可能性があります。qemu-ndb は、過去に Mac、Xbox、NTFS (Windows) を含む複数の種類のクライアント OS で動作しました。
QEMU でネットワークを使用せずにホストとディレクトリを共有するにはどうすればよいでしょうか?おそらくあなたの質問に部分的に答えているようですね? Qemu のシステムおよびカーネル デバッグ機能もツールボックスに多くの機能を追加します。フロントエンドとしての Virsh は少し扱いにくいかもしれませんが、ある意味ではより自動化されています。
答え2
VirtualBoxには、ゲストOSにゲスト追加機能をインストールすると利用できる共有フォルダ機能があります(第4章 ゲスト追加)。
共有フォルダーの経験はありませんが、マウス ポインターの統合サポートのために、いくつかの VM に Guest Additions をインストールしました。
編集: 上記のリンクをざっと読んでいたら、ゲストコントロールファイルマネージャー (4.8. ゲストコントロールファイルマネージャー) の方が、共有フォルダーよりも使いやすいかもしれません。