「ホストOSとVirtualBoxのゲストOSの間でファイルをやり取りしたいのに方法がわからない」
「共有フォルダーを設定しようとしても、Guest Additionsのインストールでエラーが出たり、手順が複雑でどこから手をつけていいか分からない」
と困っていませんか?
私も同じように思い、何度も失敗したので、その気持ちがよく分かります
この記事では、私が何度も失敗した末にたどり着いた、「これなら間違いない」という確実な共有フォルダーの設定手順を、画像も交えて丁寧に紹介します
さらに、記事の最後では、Googleドライブのようなストレージサービスとの使い分けの方法も紹介します
この記事を読めば、あなたにとって最適なファイル共有の方法が見つかります
ステップ1:ゲストOSにVirtualBox Guest Additionsをインストールする
VirtualBoxで共有フォルダー機能を利用するには、ゲストOS (Linux Mint) に VirtualBox Guest Additions がインストールされている必要があります
VirtualBox Guest Additionsをインストールする方法には、
・ゲストOSが開いているVirtualBoxのウィンドウメニューから「Guest Additions CDイメージの挿入」をクリックしてインストールする方法
・ゲストOS側で端末(ターミナル)を起動してコマンドでインストールする方法
・公式サイトからISOファイルを手動でダウンロードしてインストールする方法
などがあるのですが、一番最後にある「公式サイトからISOファイルを手動でダウンロードしてインストールする方法」をおすすめします
なぜなら、上記の方法を3つとも試してみて、その中で唯一成功したのが「公式サイトからISOファイルを手動でダウンロードしてインストールする方法」だったからです
「ゲストOSが開いているVirtualBoxのウィンドウメニューから「Guest Additions CDイメージの挿入」をクリックしてインストールする方法」はCDイメージをダウンロードできませんでした
これはネットワーク環境の問題や、VirtualBoxのサーバー側の問題などで時々発生するトラブルだそうです
次に試した「ゲストOS側で端末(ターミナル)を起動してコマンドでインストールする方法」は、一部のパッケージが見つからず失敗しました
こちらは、ゲストOSのLinuxディストリビューション(今回はLinux Mint 22.1)でそのパッケージが提供されていないことが原因でした
「できれば失敗しないで、サクッと終わらせたい」という方は、以下に紹介する「公式サイトからISOファイルを手動でダウンロードしてインストールする方法」でインストールしましょう
Guest Additionsをインストールするために必要な「道具一式(ビルドツール)」のインストール
まずは、ゲストOS側で端末(ターミナル)を開いて、以下のコマンドを実行して、リポジトリ(ソフトウェアパッケージの外部格納庫)のパッケージリストを最新版に更新
$ sudo apt update
次のコマンドで、Guest Additionsをインストールするために必要な「道具一式(ビルドツール)」をゲストOS (Linux Mint) にインストール
$ sudo apt install build-essential dkms linux-headers-$(uname -r)
インストールが完了したら、ゲストOSは起動したまま次の手順に進みましょう
ホスト側でVBoxGuestAdditionsの.isoファイルのダウンロードとマウント
ゲストOSを起動する時に使用した「Oracle VM VirtualBoxマネージャー」のメニューから「ヘルプ」をクリック
表示されたメニューから「VirtualBoxについて」をクリック」

「VirtualBoxについて」が開くので、自分の使用しているVirtualBoxのバージョンを確認
(今回は、7.0.18_Ubuntu r162988)

ホストOS側で、以下のURLのリンク(公式サイトのファイル一覧ページ)を開く
これまでにリリースされたVirtualBoxの全バージョンの一覧ページが開くので、スクロールして自分の使用しているVirtualBoxのバージョンのフォルダを探してクリック(今回は、7.0.18/)

「Index of /virtualbox/7.0.18」が開くので、中から「VBoxGuestAdditions_7.0.18.iso」を探してクリックしてダウンロード

再度、ゲストOSを起動する時に使用した「Oracle VM VirtualBoxマネージャー」で起動しているゲストOSを選択して「設定」ボタンをクリック
(私は上記の方法でできましたが、ゲストOSを起動したままだと「設定」画面で変更できない場合があるので、その場合は一度ゲストOSを終了させてから「設定」ボタンをクリックして作業をすすめてください)
左側のメニューで「ストレージ」をクリック
「ストレージデバイス」というボックスの中に、「コントローラー:IDE」と「コントローラー:SATA」という項目があるはずなので、どちらかの「空」となっている部分をクリック
ウィンドウ右側にある「属性」にある「光学ドライブ」の右にある青い円盤のアイコンをクリック
表示されたメニューから「ディスクファイルを選択」をクリック

ファイル選択ウィンドウが開くので、先ほどダウンロードした.isoファイルを選択して「OK」をクリックして、「開く」をクリック

ストレージデバイスで「空」と表示されていた光学ドライブの名前が、選択した.isoファイルの名前に変わっていたら「OK」ボタンをクリック

Guest Additionsのインストール実行と権限設定
ISOファイルの準備ができたので、いよいよゲストOSにインストールを実行します
この作業もゲストOS側で行います
(先ほどゲストOSを終了させた方は、ゲストOSを起動してから以下の作業をすすめてください)
まず、ゲストOS (Linux Mint) のデスクトップに表示されている、CDの形をしたアイコン(先ほどマウントしたISOファイル)をダブルクリックして開く

フォルダの中の何もない場所で右クリックし、表示されたメニューから[端末で開く]を選択

開いた端末(ターミナル)で以下のコマンドを上から順番に実行
<コマンド1>
Guest Additionsのインストール
$ sudo ./VBoxLinuxAdditions.run
インストールが完了するまでしばらく待つ
<コマンド2>
共有フォルダーを使うための権限を自分に与えるために、共有フォルダー用のグループに自分を追加
$ sudo gpasswd -a $USER vboxsf
デスクトップに表示されているCDの形をしたアイコンを右クリックして、「取り出し」をクリック
すべての設定を有効にするために、ゲストOSを再起動
私はデスクトップのメニューから再起動しましたが、コマンドで再起動した方は、以下のコマンドを実行してください
$ reboot
再起動が完了したら、Guest Additionsのインストールはすべて完了です!
ステップ2:ホストOS側での設定
次はホストOS側の設定です
設定は、
・ゲストOSとデーターをやりとりするための専用ディレクトリを作成する
・VirtualBoxの設定画面で、先ほど作成したディレクトリを共有フォルダーとして指定する
という流れです
共有用ディレクトリを作成する
ゲストOSとファイルを共有するための専用ディレクトリはどこに作成しても構いませんが、ご自身のホームディレクトリ内が管理しやすくおすすめです
ホストOS(Pop!_OS)側でファイルマネージャーを起動
(起動すると通常はホームディレクトリが開きますが、そうでない場合は、左側のメニューから「ホーム」を選択しましょう)
ホームディレクトリ内のものが表示されている領域の、何も表示されていない場所で右クリックし、「新しいフォルダー」をクリック

新しいフォルダーの名前を入力して、「作成」をクリック
(今回はフォルダー名を「VM_Share」としましたが、名前は何でもいいので、みなさんは自分が分かりやすい名前をつけましょう)

これでゲストOSとファイルを共有するための専用ディレクトリは作成できました
今回は、後でちゃんとホストOS側で作成したファイルがゲストOS側で見られるかテストするために、「VM_Share_test」というファイルを作成しておきました

VirtualBoxの設定
ディレクトリの準備ができたら、VirtualBoxで共有フォルダーの設定を行います
VirtualBoxを起動し、対象の仮想マシン(今回はLinux Mint)そ選択し、「設定」をクリック

左側のメニューで「共有フォルダー」を選択し、右側にある青いフォルダに「+」がついたアイコンをクリック

「共有フォルダーの追加」が開くので、
・「フォルダーのパス」:右側の「▼」マークをクリックして、作成した専用ディレクトリを指定
・「フォルダー名」:自動で専用ディレクトリ名が表示されるので、そのまま
・「マウントポイント」:今回は「/media/VM_Share」とした
・「自動マウント」:忘れずにチェックを入れること
・「永続化する」:忘れすチェックを入れる(チェックを入れないと、毎回この設定が必要)
「マウントポイント」は今回の設定では、ゲストOS側のmediaディレクトリ内に「VM_Share」という名前でフォルダーが接続(マウント)されます
ディレクトリはhomeディレクトリでもかまいません
「VM_Share」というディレクトリ名も、元の専用ディレクトリの名前と違う名前にしても大丈夫ですが、今回はわかりやすいように「VM_Share」にしてあります

「OK」ボタンをクリックすると、元の「共有フォルダー」にもどり、「▼マシンフォルダー」に直前で設定した共有フォルダーが表示されているのを確認したら、「OK」ボタンをクリック

デスクトップに「VM_Share」というアイコンが表示されたら設定完了です
なお、デスクトップ環境によってはアイコンが表示されない場合もあるようです
その場合は、ファイルマネージャーを開いて、自分が設定したディレクトリ(今回はmediaディレクトリ)を開くと、共有フォルダが表示されているはずです

共有フォルダの中身が見られるかの確認
デスクトップに「VM_Share」というアイコンが表示されているので設定は成功したはずですが、念のため実際に共有フォルダーの中身がゲストOS側で確認します
デスクトップに表示されている「VM_Share」アイコンをダブルクリックで開いてみましょう
アイコンが表示されなかった方は、ファイルマネージャーで設定したディレクトリを開いてください
そして、中に表示されている「VM_Share_test」を開いて中を確認します

無事、共有フォルダの中身が確認できました
「Googleドライブの方が簡単なのでは?」…用途によります
ここまで読んで、
「こんなに設定しないとできないなら、Googleドライブみたいなクラウドストレージを使った方が簡単なのでは?」
と思った方も多いと思います
実際、この方法にたどり着くために何度も失敗し、「やっと設定できた!」とテンションが上がるほど大変でした
そして、「ただデータをやり取りするだけなら、Googleドライブの方が簡単」だと感じました
ただし、共有フォルダーを使ってホストOSとゲストOSでデータをやり取りする方法にも、メリットがあり、用途によっては必要な技術です
Googleドライブなどのストレージサービスのメリットとデメリット
Googleドライブなどのストレージサービスを使ったデータの共有の一番のメリットは、「圧倒的な簡単さ」です
今の時代、だれでもGoogleアカウントを1つは持っているのではないでしょうか
Googleアカウントを持っていれば、すでに無料で15GBのストレージ容量が提供されており、そこにアップロード&ダウンロードするだけで、簡単にデータの共有が可能です
しかしその反面、
・ネット接続が必須
・転送スピードがインターネット回線に依存する
・利用できるデータ容量が無料だと限られている(Googleドライブは15GB)
・データの同期にタイムラグがある
・外部サーバを経由するので、セキュリティが心配
というデメリットがあります
共有フォルダを使う方法のメリットとデメリット
「共有フォルダーを使ってホストOSとゲストOSでデータをやり取りする方法」のデメリットは、「とにかく設定が大変」ということです
その代わり、
・ネット接続が不要(オフラインで作業ができる)
・転送スピードが高速(パソコン内での移動と同じ)
・利用できるデータ容量が多い(ホストOSのディスク容量次第)
・データの同期は、ほぼリアルタイム
・パソコン内での作業なので、セキュリティが高い(設定をちゃんとしていれば)
というメリットがあります
ストレージサービスと共有フォルダのどっちを使えばいい?
ストレージサービスと共有フォルダ、それぞれにメリットとデメリットがあるのがわかったと思います
それでは、どちらを使うのが正解でしょうか?
正解は、「どちらか一方が絶対的に優れているわけではなく、「何をしたいか」によって最適なツールは変わる」です
・「たまに数個のファイルを移動させたい」
・「とにかく設定の手間をかけたくない」
・「仮想マシンだけでなく、他の物理PCともファイルを共有したい」
という場合は、GoogleドライブやDropboxのようなストレージサービスを使うのが最も賢く、効率的です
また、
・「オフラインで使いたい」(通信環境の問題や、個人情報を外部に出したくないなど)
・「大量のファイルや、大容量のファイルを移動させたい」
・「データのやり取りを高速で行いたい」
という場合は、ストレージサービスでは実現不可能な領域で、共有フォルダが有利です
特にプログラミングを行っている方の場合、
「ホストOSの使い慣れた高機能エディタでプログラムコードを書いて保存した瞬間、ゲストOSですぐに実行・テストする」
といったプロのような開発環境が実現で、開発効率が劇的に向上します
このように、用途によって最適な方法はちがいます
作業の手間と、得られるメリットを比較して、最適なツールを選択しましょう
まとめ
今回は、「VirtualBoxのゲストOSとホストOSで、共有フォルダーを使ってデータをやり取りする方法」を紹介しました
何度も失敗しながら、やっと到達した方法なので、みなさんに自信を持って紹介できます
ただし、設定自体、とっても大変です
「ちょこちょこっとデータを共有したい」程度なら、Googleドライブのようなストレージサービスを利用した方がいいでしょう
でも、オフラインで使いたかったり、大量のファイルや大容量のファイルを共有したいなどの特殊な利用をしたい場合は、共有フォルダの方が圧倒的に便利です
手間とメリットをよく比較して、最適な方法を使いましょう
比較の結果、共有フォルダを使いたい場合は、ぜひこのページを参考にしてください