m4シリーズでmacminiがやーっと発売になった。
久しぶりに物欲に襲われて、発売された当日にappleのサイトで予約販売でポチっとクリック。
発売日の午前中、荷物来た。
去年からずーっと待ってたから長かったなぁ。
m3スキップしてm4になったからしゃあないか。
今年は配線も整理したから物理的な設置の分だけ手間が少しかかったし、仮想化の維持も想定と違って手間かかった。
結論(チョー速い)
とにかく起動も画面描画も速くなった。カクカクせんようになった。以下、macminiからwindowsとdockerのxrdpコンテナへのリモートデスクトップ接続。
macmini本体の起動からマウス使い始めるまで20秒以内(実際もっと速く感じる)、仮想マシンの起動も同じぐらい。
去年までvmwareの中のmacでkubernetes(microk8s)動かしてたのを、仮想マシンの外に出してmacminiから直接起動に変更。
musicの曲データも親ホストのmacminiで維持するように変更。これでトホホな性能だった環境が改善された。
そのためにssd512GB・メモリ24GBにした。intelのときと違ってm4のチップには後付けでメモリ追加できんらしい。
⭐️印箇所を物理的に用意して、現行のsonomaからsequoiaへ移行アシスタントでデータ移す。
ただし、UTMはusbが使えんからiphoneのバックアップとmusicの8400曲はmacminiの中で扱う。
microk8sはbrewでインストールしなおして、linuxホストにtar.gzでスクリプトやらデータを保管してるから、コンテナの永続化領域は/data
へコピーしてきて利用。
+-macmini⭐️--------------------+
| +-utm----------------------+ |
| | +-sequoia-------------+ | |
| | | vscode/cyberduck | | |
| | | office/brew/rdp | | |
| | +---------------------+ | |
| +--------------------------+ |
| |
| +-music----------+ |
| | 8400(37GB) | |
| +----------------+ |
| +-microk8s-------+ |
| | | |
| +----------------+ |
| +-multipass-containerd-----+ |
| | +-container-+ | |
| | | kubernetes| | |
| | +-----------+ +-/data-+ | |
| | +-container-+ | | | |
| | | Django | | d1 | | |
| | +-----------+ +-------+ | |
| | +-container-+ | | | |
| | | mariadb | | d2 | | |
| | +-----------+ +-------+ | |
| | +-container-+ | | | |
| | | xrdp-ubu24| | d3 | | |
| | +-----------+ +-------+ | |
| | +-container-+ +-------+ | |
| | | https | | d4 | | |
| | +-----------+ +-------+ | |
| +--------------------------+ |
+------------------------------+
準備作業
配線の整理したり置き場作ったり、使うソフトウェアを書庫にダウンロードして準備もした。
物理的な準備
予約販売の注文する前、hdmiの分配器は元から使ってたけどusbの分配器がなかったから買っといた。
macminiのusbはタイプcしかないようになったから、本体への変換アダプタも足しといて、これで普段使ってるキーボードとマウスが使える。
予備のwindowsホストを売ってきて場所あけておき、電源コンセントとLAN線も刺せるように場所あけて配線キレイにしといた。
ついでにPCまわりとファンのホコリ全部除去したから年末の大掃除はやらんで済む。
梱包開いてから困ったことが1つ。
なんと、電源ボタンが前面でなく裏側についてる。
なんで裏面やねん。
ガラストップのダイニングテーブルに置いて使うんやけど、ボタン押しにくい。
製品のページ見ると、こんな画像解説があった。
前面吸気で背面から熱逃すって言いたいんやろけど、底からやるんかいなぁ。
もー、めんどくさいなぁ。
しばらく考えて、熱逃がしやすくするのと電源ボタン押しやすくするために上げ底した。
ガラスやから多少発熱してもこれで耐えれるやろ。
電源ボタンは押せるようになったけど、酒のアテ入れて使ってたガラス皿が1個使えんくなったやんけ・・・。
論理的な準備
別のlinuxホストでsamba動かしてるから、必要なソフトウェアをあらかじめ準備してファイルサーバに保管。
macos sequoiaのインストーラ作成
仮想マシンで動かすために用意したんやけど、vmwareやなくてUTM使うことにしたから結果として使わんかった。
sonomaのインストールでiso作ったときの方法をほぼそのまま同じことする。
去年のsonomaは4.51GBってソフトウェアアップデート画面にあったのが、今年のsequoiaは4.46GBってあるから、インストーラのサイズ指定は去年のと同じでええ。
やってみたときの様子はこんな感じ。
nari@gvis-mac ~ % hdiutil create -o /tmp/Sequoia -size 16G -volname Sequoia -layout SPUD -fs HFS+J
created: /tmp/Sequoia.dmg
nari@gvis-mac ~ % hdiutil attach /tmp/Sequoia.dmg -noverify -mountpoint /Volumes/Sequoia
/dev/disk2 Apple_partition_scheme
/dev/disk2s1 Apple_partition_map
/dev/disk2s2 Apple_HFS /Volumes/Sequoia
nari@gvis-mac ~ % sudo /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/Sequoia --nointeraction
Erasing disk: 0%... 10%... 20%... 30%... 100%
Copying essential files...
Copying the macOS RecoveryOS...
Making disk bootable...
Copying to disk: 0%... 10%... 20%... 30%... 40%... 100%
Install media now available at "/Volumes/Install macOS Sequoia"
nari@gvis-mac ~ % hdiutil eject -force /Volumes/Install\ macOS\ Sequoia
"disk2" ejected.
nari@gvis-mac ~ % hdiutil convert /tmp/Sequoia.dmg -format UDTO -o ~/Desktop/Sequoia
Driver Descriptor Map(DDM: 0)を読み込み中…
Apple(Apple_partition_map: 1)を読み込み中…
(Apple_Free: 2)を読み込み中…
disk image(Apple_HFS: 3)を読み込み中…
..................................................................................................
経過時間: 35.792s
速度: 457.7Mバイト/秒
節約率: 0.0%
created: /Users/nari/Desktop/Sequoia.cdr
nari@gvis-mac ~ % mv -v ~/Desktop/Sequoia.cdr ~/Desktop/Sequoia.iso
/Users/nari/Desktop/Sequoia.cdr -> /Users/nari/Desktop/Sequoia.iso
nari@gvis-mac ~ %
5分ほどでisoファイル完成。ファイルサーバに置いとこ。
仮想化でvmware使うときには必要なはずなんやけど、UTMでやるときはコレいらんねんな。
仮想化のための用意
vmware fusionの用意。
broadcomがvmware扱うようになったみたいで、いつものダウンロードで使ってた認証サイトがどっかいってしもた。
個人利用は無償になったらしいし、新サイトでアカウント作り直してダウンロードしとく。
m4でもvmware動くんかなぁ。フリーズとかカーネルパニックとか発生しませんように。
って、インストールして動くのは動いたけど、やってみたらいきなりmacosがosの種類としてGUIから選べんかった。
サポートリストを見たら、ゲストOSの種類にsequoiaはあったんやけどなぁ。
くっそー、vmwareやめ。
USB使えんけど、前から気になってたutm使うことにする。
onyxの用意
テンポラリファイルとかをクリーンアップしてくれるソフトウェア。常用してるから準備対象。
前から思てるんやけど、ずっと使わせてもらってるからお金払いたい。
でも「寄付」って方法でクレジット情報入力するのは怖いからできん。
AppStoreとかで扱ってくれよな。
kensigntonのドライバ
これないとマウスがうまいこと動かんはず。丸い玉を転がして使う。
好みのボタンの利用レイアウト設定に必要。
その他
宅内LANのIPアドレスとか、dnsとか目視して再確認しとく。
箱あけて使い始める
こんな感じね。
音楽データだけをまずは引っ越し
iphoneで音楽聞くためにミュージックだけ転送。
たまたまやけど、ちょうど8400曲。30分ぐらいかかる。
ホンマは仮想マシンの中で維持したかったけど、UTM使うことにしたらUSB使えへんことに気づいたから、仮想マシンやなくて親ホストのmacminiで維持することにした。
きっちり8400曲入った。
どの曲でもええから、曲詳細見て崩れてへんか確認。
もちろん耳で音も聞く。
FF6に出てくるセッツァーのテーマ曲、疾走感あってええなぁ。
windows側にもホームシェアで提供できてるのを確認。
他にも目視と耳でプレイリストが維持できてることも確認した。
音楽データだけ移したつもりやったけど、エイリアス設定ができてるんやな。
たぶんユーザフォルダの中にある.zshrc
転送してくれたんやな。
まぁ困らんからええか。
なんでかgitのモジュールも来てるけど、brewはどっかいってるなぁ。
intelからm4への引っ越しやからプログラム類は使えんと思とかなアカン。
G3のmacbookをintelのmacminiに移した時もおんなじようなことあったかなぁ。
brewでパッケージ管理
試行錯誤したからちょっと曖昧やけど、brewのありかを見つけた。
そしたら最初こんなん出た。「CPUのタイプ違うぞコラァ|って怒られた。
/usr/local/Homebrew/Library/Homebrew/brew.sh: line 1024: /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby: Bad CPU type in executable
/usr/local/Homebrew/Library/Homebrew/brew.sh: line 1024: /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby: Undefined error: 0
Error: 'git' must be installed and in your PATH!
/usr/local/Homebrew/Library/Homebrew/brew.sh: line 1024: /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby: Bad CPU type in executable
/usr/local/Homebrew/Library/Homebrew/brew.sh: line 1024: /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby: Undefined error: 0
brew入れ直したらええんやけど、たぶん導入してたの全部入れ直しやな。
扱い方を書いておられる方がおられたので参考にさせてもらった。作者さんありがとう。
入れ直し開始。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
手動でbrewパッケージ入れ直し完了できた。導入してるモジュールのリストを残してるから手動ですぐに入る。
これでmicrok8s入れられるようになったはず。
nari@gvis-mac script % brew list
==> Formulae
ca-certificates glances libunistring nmap python@3.13 tree
gettext liblinear lua openssl@3 readline xz
git libssh2 mpdecimal pcre2 sqlite
==> Casks
nari@gvis-mac script %
onyxでいつもキレイ
システムを含んで、ファイル類のクリーンアップに常用。
macOSのベータ版の後、本家がリリースされたら2週間で毎年使えるようになることが多い。
もちろんちゃんと動いた。
仮想マシン環境の用意
OS壊して実験的なことをやりたいときに使う環境。
毎年の流れやとvmware使うんやけど、せっかく新しい機械使うんやし、前から挑戦してみたかったUTM使ってみる。
というか、vmware fusion使おうとしたらインストールOSにmacOS選べんかったしな。
UTMはちゃんとmacOS選べるで。
CPUコア数とメモリとディスクサイズを指定して仮想マシン作ってみる。
用意しといたISOファイルをマウントしたんやけど、UTMには要らんらしい。
vmware使ってるときの発想やとOSインストール必要って思うんやけど、UTMの場合はipswってのを使うらしい。
解説してる方がおられた。作者さんありがとう。
iosのための仕組みみたいやけど、UTMではmacos稼働ホスト用意できるらしい。
仮想マシン作って右クリックすると、Finderに表示させることで保存先を特定できる。
どんなファイル入ってるんかなって見たら、ディスク作成したときのサイズの.imgファイルができてるんやな。
見た目は100GBってあるけど、tar/zipで圧縮すると実際のサイズまで縮んでくれるし、du -shc *
とかしたら実際のサイズが見える。
仮想マシンをバックアップしたいときにはええことやね。
作った仮想マシンを起動してみると、さっきのipswをどこかから取ってきてmacOS使えるようにしてくれる。
ここまで5分ぐらいしかかからんかった。
去年どっかで見たscary fastってこういう感じのことも言うてるんかも。
練習で最初は100GBのディスクにしたけど、いったん150GBにして移行することにしよ。
sequoiaに魂入れる
データ転送行ってみよか。
音楽データは仮想マシンでは扱わないようにしたから、転送するデータ量は減ったはず。
途中でフリーズしたみたいに見える瞬間があってアセった。
ドキュメントとかアプリケーションあるから1時間ぐらいはかかった。
microk8sのqemuマシン削除せずにやったから時間かかったんかもな。
終わってから消しといた。
$ sudo rm -fR /var/root/Library/Application\ Support/multipassd
アプリケーションの動作確認
リカバリすること前提やから、いきなり確認はせんのよ。
UTMのイメージ維持の確認
アプリとかデータの確認する前に、仮想マシンに魂入れ終わった状態でバックアップとる。
勇気を出して作った仮想マシンを削除し、リストアしたものを動作確認してくことで、仮想マシンの維持ができることがわかる。
システムが吹っ飛ぶような検証作業しても巻き戻せる。
まずは削除。
linuxホストへバックアップしておいたzipファイルはおよそ100GB。
ディスク置き場に余裕のあるlinuxホストで展開する。
zipの時間と同じぐらいunzipも時間かかるけど、30分強ぐらいか。
展開したものをmacmini側からsmbマウントして確認。
おお、展開できとるやん。
gvis-sequoia.utmは単一ファイルやなくて実際はフォルダ。
これを、さっき確認したUTMのイメージ保管フォルダへコピーする。
nari@nariMac-mini Documents % pwd
/Users/nari/Library/Containers/com.utmapp.UTM/Data/Documents
nari@nariMac-mini Documents % cp -pR /Volumes/nari/nariHTTP/temp/Users/nari/Library/Containers/com.utmapp.UTM/Data/Documents/gvis-sequoia.utm ./
コピー終わったらスンナリ起動できた。
brewのパッケージもちゃんと蘇ってた。
続いて転送データも含んで動作確認してみよか。
vscode
バックアップ取る前、練習でmsのサイトにあるzipをダウンロードしてアプリケーションフォルダにドラッグして動かそうとしたんやけど、なぜかエラーになって起動できんかった。
ドラッグだけで済むからシンプルでええねんけど、困ったなぁ。
vscodeの設定フォルダとか完全に抹消してみてもアカンかった。
そういえばbrewはGUIアプリもインストールできたはず。brewでパッケージ名探したらあるやん!!
仕方ないからbrew使ってインストールしたら動いた。
プラグインも普段使うもの決まってるしメモあるからすぐに戻せた。
ちゃんとgitgraphも見えてるから、データ維持できとる。
gitの履歴とか入ったデータフォルダは小さなファイルとか入ってるし、gitgraphで前にいじったブランチの情報が見えるってことはキチっとデータが復元できてるって考えてええはず。
officeの利用
昔作ったexcelとか見れるか。
office365はライセンス認証やり直したらちゃんと動く。
なぜかintelからm4へ引っ越したのにちゃんと動くんやな。
どこまでも電波飛ばしてくるNHKみたいな粘着力でofficeも動いた。
power pointとかwordは自前文書がないから、そのうち確認してこ。
リモートデスクトップ – rdp
前はこんなアイコンのを使ってて、移行アシスタントで引っ越したあとそのまま使おうとしたら、最初接続できんかった。
リモートデスクトップは刷新されるってどっかで見た覚えがあるなぁ。
アプリケーションのフォルダからいったん削除してみて、入ったのかこんなん。
windows appっていう抽象的な名前になってて、リモートデスクトップ以外の用途にもなるんかな。
UTMの仮想マシンからも、macminiからもつながるようになった。
windowsでもlinuxのxrdpコンテナでもつながるやん。
母艦のwindowsホストとmacminiで、画面切り替え機とUSB切り替え機接続して使うことにしたんやけど、結局はmacmini側からrdpしてwindowsも操作することにした。
グラボを使ってsteamでゲームするときだけ、切り替えよっと。
ssh
macの中にあるターミナルでコマンドラインを使うには、フルディスクアクセスの権限を設定しとかなアカンのは覚えてたんやけど、windows側のtera termから接続したときにコマンドが使えんかった。
sequoiaのシステム設定の中にリモートログインってのがあって、フルディスクアクアセスの許可設定が別にあるんよ。
設定なかなか思い出せんかった。
リモートユーザのフルディスクアクセスを許可しとかんと、teratermで接続できても、コマンド実行に制限がつく。
これでwindows側からmacminiに接続するtera termのマクロ書いとく。
include 'Y:_connect\connect\teraIni\gvis.ini'
; --- 接続 --------------
conSTR = '192.168.1.35 /ssh /2 /auth=password /user=nari /passwd='
strconcat conSTR gvis_macP
strconcat conSTR ' /F='
strconcat conSTR gvis_iPTH
strconcat conSTR 'gray.INI '
strconcat conSTR '/timeout='
strconcat conSTR gvis_TOUT
; ---debug --------------
; messagebox conSTR 'info'
connect conSTR
if result <> 2 goto end
wait gvis_wS7
sendln "df -ahY"
wait gvis_wS7
sendln "w"
普通に繋がるんやけど、macのdf結果って見づらいなぁ。結局なんぼディスク使えるかが直感的にわからん。
仮想マシン用のは前からマクロあるから、それも繋がるか確認。
なんか、わけわからんマウントポイントがあるけど、また今度調べよっと。
cyberduckでクラウドのディスク参照
googleのドライブ接続してデータを維持しているのを、接続して使えるかどうか。
キラキラ星の譜面ちゃんと見えるで。
6番目の変奏が自分は一番好き。
このアプリのおかげで、google cloudの中で動いてるコンテナの永続化領域を持って来れる。
負荷の具合
macosにはアクティビティモニタってのがあるんやけど、windowsみたいにCPUコアごとの利用率がわかるわけやないし、GPUとかニューラルエンジンの混み具合が視覚化されてるわけやない。
brewのパッケージにglancesってのがあって、pythonで動くシステムモニタも全部のコアは見せてくれへんかった。
なんか視覚化できるものあるんかな。
日本語キーボード配列で使う
macminiは大丈夫なんやけど、UTMの中の仮想macosではキーボード配列がどうしても英語版になってまう。
カッコとかダブルクオートのキー位置がちゃうから記号類が入力やりにくい。
キーボード設定の画面で「キーボードの種類を変える」のボタンがあらへんのと、実行モジュール特定してキーボードアシスタントをコマンドラインから起動しようとしても動かんかった。
ちょっと調べるとKarabiner-Elementsってのを使ってJIS配列選ぶと日本語配列にできそうな感じ。
UTMの中のsequoiaにダウンロードしてインストールしたら、システム設定でログイン項目とバックグラウンド系の許可設定を付与して拡張機能を有効にした。
キーボードビューアで見ると配列が日本語になってるのがわかる。
何を有効にするかはkarabinerが教えてくれるから、その通りにやればええ。
英語でのナビゲートやけど、なんとなく読めるからすぐに設定できる。
って、キーボードビューアにはバックスペースキーの左に「|」と「¥」が見えるけど、入力できんことに気づく。円マークはバックスラッシュな。
円マークはあんまり使わんけど、縦棒がないとps -ef | grep xx
とかできへんようになる。キーのアサイン変えたろ。
ほとんど使わんキーやったら「無変換」とか「変換」って使いたかったんやけど、Karabiner-Elementsは反応してくれんかった。
他にも使わんPauseキーとかSclkとかやってみたけど、反応してくれへん。
あんまり使わんF5キーでええかな。キー押しながら、何て言う定義で「|」と「¥」が表示されるか確認したら「international3」でできるみたい。
ターミナルの画面で入力できるか試したらできた。
F5キー使う瞬間があったらキーあさいん変更したらええけど、めんどくさ。
残念なこと
どうしても解決できん問題が1つ残った。
UTMで動くsequoiaのapple id設定とicloud利用設定はできた。
けど、app storeとmusicのアカウント認証が通らん。
musicは最悪の場合はmacminiで音出したらええけど、前から思ってたcyberduckのappstoreからの購入ができん。
購入せんでもデータ移行アシスタントのおかげで今は使えてるけど残念。
悔しいけど使いながら調べよか。
apple virtualizationの制限でsequoia以前はicloudとかも使えんかったみたい。
ここまで書いて、macminiでのkuberntes(microk8s)はまた来週に書くつもりやったんやけど、軽く練習でmicrok8s動かしてみたらmultipass経由で作るlinuxノードがx86で作れん!!
m4やから、当たり前っていうたら当たり前なんかなぁ。uname -a
とかやった答えがaarm64って戻ってくる。
UTMのギャラリーページ見たらarmやなくてx86のubuntuあったから、なんとなくmultipassでそのまま動かせそうな気がしてただけで、自分の確認ミス。
macとは完全に切り離してkubernetes考えなおすか。