錦です。
なんか、特に理由はないけどMacで別のOSを使いたくなったのでUbuntu入れます。というよりかは、また自分がやるときに絶対忘れるからブログにメモっとこうって話です。
環境
今回の環境は以下の通り
- MacBook Air Late 2020
- macOS Monterey 12.4
今回はRosettaの出番はありません。
仮想マシン作成の手順
Multipassのインストール
M1 Macでは、Multipassというソフトを使って仮想環境を整えます。というかMultipasssだけでCUIで環境が整います。Mutipassは、MacでUbuntuの環境をかんたんに整える事ができるソフトです。このソフトさえあれば別途で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
を実行します。
で、UbuntuのGUI環境は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の公式サイトの下の方に眠っていますので合わせて御覧ください。