はじめに (対象読者・この記事でわかること)

この記事は、VirtualBoxでUbuntuやCentOSなどのLinux仮想マシンを使っているけど「ホスト側とコピー&ペーストができない」「クリップボードが共有されない」という方に向けています。
記事を読み終えると、Guest Additionsの正しいインストール方法、コピペが効かない原因の切り分け手順、そして実際に双方向クリップボードが使えるようになるまでの一連の流れを完走できます。
筆者も最近、Ubuntu 24.04 ゲストを新規作成したところ、以前は問題なかったコピペが突然使えなくなり、1時間ほど調査にハマったため、同じ轍を踏まないよう残しておきます。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。 - VirtualBoxの基本的な仮想マシン作成・起動操作 - LinuxゲストOSでのターミナルとパッケージマネージャ(apt または dnf)の使用 - Windows または macOS ホストでの管理者権限でのソフトウェアインストール

クリップボード共有が使えない背景と仕組み

VirtualBoxでは、デフォルト状態ではゲストOSとホストOSのクリップボードは独立しています。
これを共有するには「Guest Additions(ゲスト追加モジュール)」と呼ばれるドライバ/ツール群をゲストOS内にインストールし、仮想マシンの設定で「双方向クリップボード」を有効にする必要があります。
Guest Additionsが正しくインストールされていないと、①クリップボード共有、②ドラッグ&ドロップ、③自動リサイズなど、ゲストとホストの連携機能が一切使えなくなります。
また、2023年以降のUbuntu系では「Waylandセッション」がデフォルトになり、旧X11用のGuest Additionsモジュールが認識されないケースが増えています。本記事ではWayland/ X11両方に対応した手順を紹介します。

コピペを実現するまでの完全手順

ステップ1:VirtualBox側の設定を確認・変更

  1. 仮想マシンを完全にシャットダウン(セーブ状態では不可)します。
  2. VirtualBoxマネージャーから該当マシンを選択 →「設定」→「一般」→「詳細設定」タブを開きます。
  3. 「共有クリップボード」と「ドラッグアンドドロップ」を両方「双方向」に変更します。
  4. 「OK」で設定を保存し、一旦VirtualBox本体を再起動(念のため)します。

ステップ2:ゲストOSに必要なパッケージを事前インストール

以降はゲストOS内の操作です。ターミナルを開いて下記を実施してください。

Ubuntu/Debian系

Bash
sudo apt update sudo apt install -y build-essential dkms linux-headers-$(uname -r)

RHEL/CentOS/Rocky系

Bash
sudo dnf install -y kernel-devel kernel-headers gcc make perl elfutils-libelf-devel

※kernel-develのバージョンはuname -rと合致している必要があります。合致しない場合はsudo dnf upgradeしてから再挑戦してください。

ステップ3:Guest Additions ISOをマウント・インストール

  1. 仮想マシンを起動し、上部メニューから「デバイス」→「Guest Additions CDイメージの挿入」を選択。
  2. デスクトップにCDアイコンが現れるので、それを開くか、以下でマウント: bash sudo mkdir -p /media/cdrom sudo mount /dev/cdrom /media/cdrom
  3. インストーラを実行: bash cd /media/cdrom sudo ./VBoxLinuxAdditions.run
  4. エラーが出なければ再起動: bash sudo reboot

ステップ4:Waylandセッションでも動作するか検証(Ubuntu 22.04以降)

  1. 再起動後、設定アプリ→「About」→「Windowing System」で「Wayland」と表示されているか確認。
  2. Waylandのままだとコピペできない場合は、一旦X11セッションでログインしてみてください。 - ログイン画面で歯車アイコン→「Ubuntu on Xorg」選択。
  3. X11では動作したがWaylandではNGという場合、以下のパッチを当てます。 bash sudo mkdir -p /etc/systemd/system/vboxservice.service.d/ echo -e "[Service]\nEnvironment=VBOX_DISABLE_WAYLAND=1" | \ sudo tee /etc/systemd/system/vboxservice.service.d/wayland.conf sudo systemctl daemon-reload sudo systemctl restart vboxservice
  4. 再度Waylandセッションでログインし、コピペをテスト。

ステップ5:それでもダメな時のトラブルシュート

  • 症状A:Guest Additionsのビルドエラー(dkms失敗)
  • ログを確認:/var/log/vboxadd-setup.log
  • kernel-develのバージョンが異なる場合が多い。sudo dnf downgrade kernel-devel-で合わせるか、kernelをアップグレードしてから再ビルド。

  • 症状B:「共有クリップボードが有効になりません」エラーダイアログ

  • ホストOSがWindowsの場合、VirtualBoxアプリを「管理者として実行」してから仮想マシン起動。
  • セキュリティソフト(特にHIPS機能)がVBoxTray.exeをブロックしていることがある。一時的に無効化して試す。

  • 症状C:コードを貼り付けると文字化け

  • ゲスト側の環境変数LANGがCJK系でないと文字化けする。~/.bashrcexport LANG=ja_JP.UTF-8を追加して再度ログイン。

  • 症状D:VirtualBox 7.x以降で「拡張パック」未導入

  • 「ファイル」→「ツール」→「拡張パックマネージャ」から拡張パックをインストール。これがないとゲスト追加モジュールの署名が無効化される。

解決策

上記手順を順番に実行した結果、Ubuntu 24.04(Waylandセッション)+VirtualBox 7.0.12環境で双方向クリップボードが正常に動作することを確認しました。
最もハマったポイントは「kernel-develのバージョン不一致」と「Wayland無効化パッチ」でした。これらをケアした後は、WindowsホストからUbuntuゲストへ、逆方向でもUTF-8日本語テキスト・ソースコード・ファイルパスを一切文字化けなくコピペできるようになりました。

まとめ

本記事では、VirtualBoxでホスト⇄ゲスト間のコピー&ペーストができない理由と、Guest Additionsの正しい導入手順、Wayland環境でのトラブルシュートまで網羅的に解説しました。

  • Guest Additionsはkernel-devel/headersのバージョンが一致していないとビルド失敗する
  • Ubuntu 22.04以降のWaylandセッションでは専用のパッチが必要
  • 拡張パック未導入やセキュリティソフトが原因で共有機能が無効化されることも

この記事を通して、仮想マシンでも快適にホストとデータをやり取りできる環境が整い、開発効率が大幅に向上することでしょう。
次回は、同じくVirtualBoxで「フォルダ共有+自動マウント」ができない時の対策を深堀りする予定です。

参考資料

  • Oracle公式:VirtualBox User Manual - Chapter 4 Guest Additions
    https://docs.oracle.com/en/virtualization/virtualbox/7.0/user/guest-additions.html
  • Ubuntu Community Wiki:VirtualBox/GuestAdditions
    https://help.ubuntu.com/community/VirtualBox/GuestAdditions
  • 日本語フォーラム:VirtualBox 7.xでコピペができないスレ
    https://teratail.com/questions/8z4j3ng8e3p4ya