🚀
M1 Mac上にUTMで仮想マシンをセットアップをする手順
備忘録として書きます。
環境
Host machine: M1 MacBook Pro(arm64)
Host OS: Monterey v12.6.5
utmのインストールとUbuntu Setup
ただし自分の場合、arm64上で作業するとpreview版など不安定になるものがあるで変更点がいくつかある。
変更点:
バーチャルマシンの作成編
- Step2:Emulate
- Step4:Ubuntu for amd64
- Step5:お好みで(後から変更可能)
- Step6:お好みで(後から変更可能)
VMware: UTM
VM OS: Ubuntu v22.04.2 LTS(amd64)
VM Network setting: shared network
接続のテスト
- リモートマシンのipアドレスを確認。
リモートマシン
ip -4 addr show
- ターミナルから入る。
ローカルマシン
ssh username@hostname(ip_address)
Vscodeから仮想マシンにSSHアクセス出来るようにする
ssh-key setup
- local machineの作業
- 鍵の生成
ssh-keygen
- 生成された公開鍵のコピー
cat ~/.ssh/あなたの公開鍵ファイル名.pub
- remote machine(仮想マシン)の作業
vi ~/.ssh/authorized_keys
先ほどコピーした公開鍵を貼り付ける。
vscode remote extension (vscode sshを含むパック)
- Remote Development拡張機能のinstall
- (vscodeで)
~/.ssh/config
を開き、以下の形式で記述
# Host (任意の名前)
# HostName (接続先のIPアドレス)
# User (接続先のユーザーアカウント名)
# IdentityFile (秘密鍵のパス)
# IdentitiesOnly yes (指定した秘密鍵のみ使用する)
Userはログインするアカウント名、Hostnameはホスト(仮想マシンの名前かIPアドレス
ip -4 addr show
、IdentityFileは秘密鍵の場所(local machine)
- 拡張機能から仮想マシンのパスワードを入力し、ログインしてみる
~/.ssh/configのメリット
なぜconfigを作成するのかというとズバリめんどくさいから。これは登録したHost (任意の名前)
を使用すると下に記述した情報を展開するような動作になり、ターミナルやvscodeから楽にアクセス出来るようになる。
ssh -i user@hostname ~/.ssh/秘密鍵のパス
-> ssh (任意の名前)
共有ディレクトリのセットアップ
- ローカルマシンに仮想マシンと共有したいファイルを作成。
- utmでVMの設定からsharing設定で共有するファイルのパスを指定。
- リモートマシンにマウントポイント(仮想マシン側のディレクトリ)を作成し、マウントをする。
今回はVirtFSを使用する。
リモートマシン
sudo mount -t 9p -o trans=virtio share マウントしたディレクトリのパス -oversion=9p2000.L
- パーミッションの設定をする。
リモートマシン
sudo chown -R $USER マウントしたディレクトリのパス
- 自動マウントを設定する。
起動するたびに自動マウントがされるように/etc/fstab
に設定を書き込む。
/etc/fstab
share マウントしたディレクトリのパス 9p trans=virtio,version=9p2000.L,rw,_netdev,nofail 0 0
Additional Options
参考
Discussion
追記
なんかインターネットに繋がらなくなったが、ubuntu側のネットワーク設定からnetwrok proxyを一度automaticにしてdisableに戻したら治った。