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)