Ubuntu との NFS mount および現在のデスクトップ環境- M1 MacBook Air インストール覚書(22)

sshfs 断念からのネットワーク引越

MacBook Pro の VMware 上に Ubuntu 18.04 を飼っています。Ruby 1.9.3 のお仕事がまだ残っているので、ここで作業をする必要があるためです。これまでは、ホストの MacBook Pro から Ubuntu を NFS mount して仕事をしていました。

今回、MacBook Air を 43inch 4K に繋げてメイン活用してきたので、開発もこちらで実施したいと考えます。sshfs が使えれば、直接 VMware 内の ubuntu のフォルダをマウントできたのですが、MacFUSE の利用を断念したため別の方法を考える必要があります。

これまで、VMware は「ネットワークを共有」して macOS 内のプライベートネットワークで運用していました。これだと、M1 Air 側からアクセスするのが面倒なので、Ubuntu をブリッジ運用して同一ネットワーク上で直接見えるように変更します。

VMware の設定変更

まず、MacBook Pro の方で VMware のネットワークをブリッジに変更します。

f:id:hkob:20201222142256p:plain
ブリッジネットワークの設定

ひとまず、画面ありで起動し取得した IP アドレスを確認します。確認できたら、シャットダウンします。

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.24.157.3  netmask 255.255.224.0  broadcast 172.24.159.255

いつもの headless スクリプトで ubuntu を起動します。

#!/bin/sh

VMRUN="vmrun -T fusion"
VM="$HOME/Virtual Machines.localized/Ubuntu (64 ビット) Server 18.04.2.vmwarevm/Ubuntu (64 ビット) Server 18.04.2.vmx"

case "$1" in
  "start" ) $VMRUN start "$VM" nogui ;;
  "stop" ) $VMRUN stop "$VM" ;;
  "suspend" ) nfs_umount.sh; $VMRUN suspend "$VM" ;;
  "stopsoft" ) nfs_umount.sh; $VMRUN stop "$VM" soft ;;
  "suspendsoft" ) nfs_umount.sh; $VMRUN suspend "$VM" soft ;;
  * ) echo "ubuntu.sh [start|stop|suspend|stopsoft|suspendsoft]" ;;
esac

ここまでしてしまえば、MacBook Pro 側でやることはありません。M1 Air の方に戻ります。先程の ip を .ubuntu_ip としてファイルに記録しておきます。

hkob@hMBP ~> echo 172.24.157.3 > ~/.ubuntu_ip

Ubuntu に ssh ログインします。

hkob@hMBP ~> ssh (cat ~/.ubuntu_ip)

まず、/etc/exports に M1 Air 側の設定を書きます。当初これだけで動くと思っていたのですが、意外とうまくいきませんでした。探したところ、NFS/トラブルシューティング - ArchWikiに「macOS クライアントから接続できない」という項目があり、これが正解でした。

最初に /etc/exports ですが、オプションを(rw,insecure,no_subtree_check) のようにして insequre を追加して、exportfs -r を実行します。その後、M1 Air 側の nfs.conf に以下の設定を追加しました。

nfs.client.mount.options = resvport,intr,locallocks,nfc

あとは以前 MacBook Pro 側で使っていた nfs_mount.sh で二つのドライブがマウントされることを確認しました。

現在のデスクトップ環境

MacBook Air の環境が整ってきたので、机の周りはこんな感じになりました。まだケーブルなどは片付けていませんが、これが現在の最終形態になると思います。

左側は M1 の MacBook Air をクラムシェルスタンドに立てています。下に置いてある CalDigit の Thunderbolt 3 Hub にケーブル1本で接続しています。このケーブルから PD で充電も行われます。授業や会議の時は、ケーブルを抜いて持ち出します。今日、授業を二コマやりましたが、90分の授業でプロジェクタを映しながら運用した場合でも、多い場合でも10%しかくらいバッテリーが減りませんでした。驚異的なエネルギー消費量ですね。莫迦らしいので AC アダプタは持っていかなくなりました。

正面は 43inch 4K のモニタです。Caldigit からパススルーで接続しています。手元の HHPB と Magic Trackpad は有線で接続しています。キーボード前にある iPad Pro はイラストレータの方がかなり推奨していた BoYata のスタンドに乗せています。このスタンドは、角度は自由に設定できますが、固定した状態では Apple Pencil で書いてもびくともしません。このため、4K のモニタの一番下がギリギリ見える位置で、かつ書きやすい角度で固定しています。また、右下に見える MacBook は充電していますが、全く使っていません。今後、何か使い道を考えます。

右側は MacBook Pro とそれに繋がっている ColorEdge の CG275W です。Rails のテストのログなどがみやすいようにポートレートモードで利用しています。M1 Air の右端からマウスを右に移動すると teleport アプリで MacBook Pro が KVM スイッチのようにアクセスできます。HHKB や Magic Trackpad でそのまま MacBook Pro がアクセスできるのはかなり便利です。また、これまでの体験から、M1 Air は入出力周りが変わった瞬間に異常な処理が起こることが多いようです。そのため、ScanSnap などの入出力系は全部 MacBook Pro 側に接続する予定です。そのため、Anker の 13 ポート USB ハブもこっちに接続しています。

利用していたアプリもほぼインストールが終わり、だいたい運用体制が固まってきました。これからインストールしたアプリで実際に処理をした結果などを書いていきます。

f:id:hkob:20201222140503j:plainf:id:hkob:20201222140531j:plainf:id:hkob:20201222140624j:plain
最終的な研究室のデスクトップ

前の記事: アプリインストール(rust→librsvg→graphviz→plantuml) - M1 MacBook Air インストール覚書(21) - hkob’s blog

hkob.hatenablog.com