環境
- Mac mini (macOS Catalina 10.15.6)
- Intel Core i7 3.2GHz, 32GB DDR4
- VirtualBox 6.1.14
- Ubuntu Server 20.04.1 LTS
手順
VirtualBox と Ubuntu Server のインストール
まずは VirtualBox をインストールする。
$ brew cask install virtualbox
次に、VirtualBox を起動して「新規」から仮想マシンを1つ新規作成する。仮想マシンの名前は「ubuntu-server-20.04」に設定。あとは、デフォルト設定のまま GUI をポチポチやるだけでいい。
「起動」アイコンを押して、あらかじめダウンロードしておいた Ubuntu Server の iso ファイルを選択すると、インストールが始まる。
…と思ったのに、ここでコケた。
エラーは、
「/dev/loop2: Can't open blockdev」
「systemd[1]: Failed unmounting /cdrom.」
え?なんで?
何回試しても、この画面が出て仮想マシンが突如落ちる。
そして、次のようなエラーがポップアップされる。
「You must specify a machine to start, using the command line....」
確かに Mac mini には DVD ドライブが付いてないから、unmounting でエラーが出るのかなァ……でも、仮想ドライブに iso ファイルを入れていて、実際にそこからインストーラが立ち上がってるわけだしなァ……などと考えながら、VirtualBox の GUI をあちこちいじっても直らず。
とりあえず、エラーの表示にしたがって、コマンドラインから仮想マシンを起動した。
$ VirtualBoxVM --startvm ubuntu-server-20.04 &
……なんかよく分からんけど、動いた。
正確には、先ほどの「Can't open blockdev」のエラーは表示されるが「unmounting」のエラーは出ず、そのままインストーラが走って、あっという間にインストール完了。
インストール後も、VirtualBox の「起動」ボタンを押してもうまく起動せず、コマンドラインからなら起動する。なぜそうなのかはいまだに分からない。
問題なく起動するから別にいいけど、理由が分からないのは気持ち悪いので、誰か教えてほしい。
ポートフォワーディングの設定と SSH 接続
ホストOS(macOS)からゲストOS(Ubuntu Server)に SSH で接続するために、NAT のポートフォワーディング(IPマスカレード)を設定する。具体的には、ホスト OS の 2222 番ポートを通るパケットを、ゲスト OS の 22 番ポート(SSH ポート)に横流しするように設定する。
VirtualBox の「設定」→「ネットワーク」→「高度」→「ポートフォワーディング」を選択し、プロトコルに「TCP」、ホストポートに「2222」、ゲストポートに「22」を設定すればいい(名前は適当でいい)。
あるいは、以下のコマンドを叩いても設定できる。
$ VBoxManage modifyvm "ubuntu-server-20.04" --natpf1 "guestssh,tcp,,2222,,22"
そして、接続ポート 2222 を指定して SSH 接続する。
[hajime-f@borneo:~]$ ssh -p 2222 localhost
hajime-f@localhost's password:
...(中略)...
Last login: Tue Sep 22 09:49:22 2020
hajime-f@tonga:~$
無事に borneo から tonga に上陸できた(参考:ホスト名に南の島の名前を付けるとおもしろいよ)。
たぶん、ホストとゲストで閉じたネットワークを構成するのではなくて、ゲストにアダプタを追加してプライベート IP を割り当て、/etc/hosts
で名前解決すれば、$ ssh tonga
で接続できるんだろうけど、面倒だからやめた。
同じ要領で、Ubuntu Server をもう一台セットアップして「bali」と名付けた。
この2台の仮想マシンを使って、次は Docker で遊んでみようと思う。