ここのことはなかったことにするかもしれない

仕事がらみの記事を主として扱いますが、あくまで個人ブログです。2013年以前の記事は https://yellow-73.hatenablog.com/ にあります。

WindowsにVirtualBox+CentOSを入れてファイル共有まで実行

# ゲストでネット接続ができるようにする

今回は、ホストからゲストにアクセスできて、ゲストから外部にアクセスできて、ネットワークからゲストにアクセスさせたくない、という条件です。
CentOSにSSH接続してみる!VirtualBoxのNATとホストオンリーアダプターによるネットワーク設定のベストプラクティス!〜安全かつ快適な開発ができるようにする〜 - Qiita が合うので、NIC1をNAT、NIC2をHost-Onlyでやりました。

だいたい virtualboxでホストオンリーアダプターを利用して、SSH接続を行う|Windows10 - Qiita でいけます。nmtui で、NIC1は自動接続を有効にし、NIC2を 192.168.56.xx/24 にして自動接続を有効にすればOK。

# Guest Addition導入

ファイル共有を狙っていたのですが、Guest Additionsが必要です。
VirtualBox上のCent OSにGuest Additionsをインストールする方法 - Qiita を参考にします。

yum -y update
yum -y install kernel-devel kernel-headers gcc gcc-c++

これだけだと、make がないとrcvboxaddで怒られたので次も実行しました。

yum -y install gcc make perl kernel-devel

rcvboxaddで次のようなメッセージが出る場合、OSのカーネルバージョンとkernel-develのバージョンがあっていません。

The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-4.18.0-147.el8.x86_64

次のように、OSのバージョンにあわせてください。

yum install  kernel-devel-4.18.0-147.el8.x86_64

VBoxLinuxAdditions.runで次のようなログを吐いて(標準エラー出力には出ません)静かに怒られました。

Makefile:977: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel".  Stop.

次を実行します。

yum -y install elfutils-libelf-devel 


Addition CDを(Read onlyで)マウントします。

mkdir /mnt/cdrom
mount -r /dev/cdrom /mnt/cdrom
sh /mnt/cdrom/VBoxLinuxAdditions.run

次を実行しろと言われたので、実行します。

 /sbin/rcvboxadd quicksetup all

# 共有フォルダ

まず、ホスト側でフォルダを作成します。Windows共有は不要です。

VirtualBoxのゲストの設定→共有フォルダー→追加 を選択します。
そこから 「フォルダーのパス」で「その他」を選択し、フォルダ選択ダイアログが開くので、そこからフォルダを選択します。

「自動マウント」「永続化する」をチェックします。マウントポイントは書かないとデフォルトの /media/sf_{共有フォルダ名} が使われます。

これで共有ができるのですが、そのままだとrootにならないとアクセスできません。次を実行すると、root以外のユーザもアクセスできます。

gpasswd --add {ユーザ名} vboxsf

(参考: VirtualBoxにおいて、ホストOSとゲストOS (CentOS) 間の共有フォルダを作成する方法 - Qiita)