LoginSignup
4
5

More than 3 years have passed since last update.

Mac の VirtualBox に Ubuntu Server 20.04 をインストールして SSH 接続する

Last updated at Posted at 2020-09-22

環境

  • 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 ファイルを選択すると、インストールが始まる。

…と思ったのに、ここでコケた。
スクリーンショット 2020-09-22 15.00.49.png
エラーは、
「/dev/loop2: Can't open blockdev」
「systemd[1]: Failed unmounting /cdrom.」

え?なんで?

何回試しても、この画面が出て仮想マシンが突如落ちる。
そして、次のようなエラーがポップアップされる。
Screen Shot 2019-05-31 at 4.50.41 PM.png
「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」のエラーは出ず、そのままインストーラが走って、あっという間にインストール完了。
スクリーンショット 2020-09-22 15.22.26.png
インストール後も、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 で遊んでみようと思う。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5