Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

M1 MacBook Airで仮想的にUbuntuデスクトップ環境を整えるのが驚くほど簡単だった

錦です。

なんか、特に理由はないけどMacで別のOSを使いたくなったのでUbuntu入れます。というよりかは、また自分がやるときに絶対忘れるからブログにメモっとこうって話です。

環境

今回の環境は以下の通り

今回はRosettaの出番はありません。

仮想マシン作成の手順

Multipassのインストール

M1 Macでは、Multipassというソフトを使って仮想環境を整えます。というかMultipasssだけでCUIで環境が整います。Mutipassは、MacUbuntuの環境をかんたんに整える事ができるソフトです。このソフトさえあれば別途でUbuntuを用意する必要もありません。一応、Ubuntu以外のLinuxも導入できるみたいですが、今回はUbuntuで行きます。

MultipassはこちらのGitHubのリリースからインストールすることができます。Homebrewにもあるみたいです。私は試していないので同じものかは保証しませんが。

インストール自体は、普通のインストーラなので、他のインストーラ同様にポチポチしていけば大丈夫です。

インストールできたかどうかの判定はmultipass versionをターミナルで実行することでできます。

仮想マシンの作成

まず、MultipassでインストールできるUbuntuのバージョンを確認します。multipass findを実行することでインストールできるイメージを一覧として表示できます。

$ multipass find
Image                       Aliases           Version          Description
18.04                       bionic            20220712         Ubuntu 18.04 LTS
20.04                       focal,lts         20220711         Ubuntu 20.04 LTS
22.04                       jammy             20220712         Ubuntu 22.04 LTS

この先、指定しなければ最新のUbuntu(この場合22.04)がインストールされますが、もし特段の理由があれば、Aliasesに書かれる名前を用いて仮想マシンを作ることができます。

では、実際に仮想環境を作っていきます。仮想マシンmultipass launchを用いて作成してきます。GUIをインストールしようとしている方は以下のコマンドをそのまま実行せず、読み進めて引数を設定の上、適切にリソースを割り当ててください(後述)

$ multipass launch -n test

これでtestという名前の仮想マシンが出来上がりました。launchコマンドは、作成と起動を行うコマンドとなっています。

ちなみにこのコマンドには引数が設定できます。

  • -c 割当CPUコア数
  • -m割当メモリ容量
  • -d割当ストレージ容量

そして、バージョンを指定する場合、最後にそのAliasesをつけることで指定できます。よって、6コア・8GB RAM・20GBストレージ割当で、v20.04の仮想マシンを作成する場合、

$ multipass launch -n test -c 6 -m 8g -d 20g focos

を実行します。

で、UbuntuGUI環境はCUI環境よりも必要要件が高く、2GiB以上のメモリが必要です。ただ、今回は快適に使いたいという思いから、私は上のコマンドの通り、CPU 6コア割当、8GBメモリ割当、20GBストレージ割当としました。ちなみに、6コアとは書きましたが、実際は性能コアしか動いてなさそう(そもそもLinuxカーネル自体がApple Siliconとしてのbig.LITTLEをそこまで深くサポートしていない可能性もあるが)。

なお、launchコマンドをすでに存在している仮想マシンに対して行うと、リソースの割当を変更することができます。

起動と終了

ついで、仮想マシンのシャットダウンと起動のコマンドを示します。

$ multipass stop test ## test VMのシャットダウン

$ multipass start test ## test VMの起動

シェル

Macのターミナルから仮想マシンのシェルにアクセスできます。multipass shellを用いてアクセスします。例えば、testという仮想マシンにアクセスする場合は

$ multipass shell test

とするとターミナルからシェルにアクセスできます。

ubuntu@test:~$で始まるシェル画面になれば、アクセスできています。

ログアウトは

$ exit

で行うことができます。このときLinuxターミナルからMacターミナルに切り替えられます。

パスワードの設定

ここから先、パスワードが必要なので設定します。

まず、通常のパスワードから。

$ sudo passwd ubuntu

これで、ユーザーubuntuのパスワードが設定できます。

なお、この時何も入力していないように見えますが、これはセキュリティの観点から桁数が分からないようになっているためであり、実際はちゃんと入力されています。

ついでrootのパスワードも設定しましょう。

$ sudo passwd root

これでrootのパスワードが設定できました。

インターネットアクセス

前節「前準備」で書いた通り、DNSを指定しないとUbuntuからインターネットにアクセスすることができません(少なくとも私の環境では)。Mac側ですでにDNSの設定をしたので、Ubuntuに対してDNSの設定を行います。

8.8.8.8をDNSとして使っている場合は以下の通りにコマンドを順番に実行します。

$ su ## rootへ移行
# cd /etc/systemd/ ## フォルダ移動
# vim resolved.conf

そうしましたら、Vimでresolved.confを編集します。エディタなら何でもいいですが、私Vimしかわからないので、Vimでいきます。まず、Iキーを押してINSERTモードにします。そして、#DNS=となっている行をDNS=8.8.8.8にしてあげるだけ。このとき、DNSの前の#はコメントアウト用のものなので消してくださいね。

Vimならこのあと、escキーを押して、:wqと入力してVimを保存して終了してください。これでネットに接続できました(インターネットによってはもっとめんどくさい設定をする必要がありますが割愛)。

GUI

ではここからGUI化していきます。正直かんたんです。

Ubuntuで以下のコマンドを実行します。

$ sudo apt update
$ sudo apt install ubuntu-desktop xrdp

これで必要なパッケージをインストールします。Ubuntu-desktopはデスクトップ環境、xrdpは後でお伝えしますがMicrosoft Remote Desktopでリモート接続するのに必要なパッケージです。

おわり。

GUIを開くぞ!

Macの作業に戻ります。Macのターミナルで以下のコマンドを実行。このとき、仮想マシンは起動したままにしてください。

$ multipass list
Name                    State             IPv4             Image
primary                 Stopped           --               Ubuntu 20.04 LTS
test                      Running           192.168.xx.x     Ubuntu 20.04 LTS

実行したらIPv4の列のIPアドレスを控えます。この例だと192.168.xx.xですね。

ついで、App StoreからMicrosoft Remote Desktop(以下、MRD)をインストールし開きます。

ではMRDにもどって「Add PC」をクリックし、出てきたウィンドウの一番上「PC name」のところに先ほど控えたIPアドレスを入力します。その他は触らなくても大丈夫。ディスプレイの項目などはお好みでどうぞ。あえて言うなら、PC nameの下のUser accountのところをクリックしてAdd Useraccountから「Ubuntu」と先ほど設定した通常のパスワードを設定しておくと、MRD側でのサインインが省けます。

Addをクリックするとアカウントとパスワードが求められます。ユーザー名は「ubuntu」でパスワードは前々節で設定したものを入力してください。サインインすると、Ubuntuの画面が開きます。GUIです。あとは画面に沿って進んでいけばUbuntuデスクトップ環境が出来上がります。

Macクリップボードを共有できる他、ファイルもシェアフォルダに入れれば共有できます。

動作感は・・・もっさりしまくる。これはLinuxが問題というよりかはMRD側の制約でしょうね・・・。ちょっと悲しい。

仮想マシンの消し方

では最後に仮想マシンの消し方をご紹介します。Multipassは、Vagrantなどと同様にかんたんに環境を構築、破壊することができます。

まず、仮想マシンを復元可能な状態で消します。ゴミ箱に入れるみたいな感じです。multipass deleteを用います。

そして、完全に消す場合は$ multipass purgeを用います。これで完全消去です。なお、purgeする場合は、その前にdeleteされている必要があります。purgeコマンドは、deleteコマンドで仮想マシンが捨てられたゴミ箱を空にするという解釈です。

$ multipass delete test ## 復元可能な状態で消去

$ multipass purge ## deleteコマンドが実行された仮想マシンを完全消去

これで消えました。便利ですね。もちろん、launchコマンドで新しく作り直すこともできます。

ということで、M1 Mac仮想マシンとしてUbuntuをインストールする方法をご紹介しました。

UbuntuというかLinuxの各種コマンドはチートシートがMultipassの公式サイトの下の方に眠っていますので合わせて御覧ください。

https://assets.ubuntu.com/v1/39a8dac8-Ubuntu_Server_CLI_pro_tips_2020-04.jpg