Apple silicon Macにおけるリカバリモードの起動
Rootlessを変更する方法を調べると、Macをリカバリモードで起動して、ターミナルを起動して「csrutil」 コマンドを入力する方法が多数案内されています。が、ほとんどの記事の作成日が古く、リカバリーモードを起動する方法として、「Command」+「R」キーを押すという案内になっていますが、これはIntel CPUを搭載したMacの場合。
M1以降のApple silicon Macの場合は、一度シャットダウンしてから電源ボタンを長押しで起動するが正しいです。ハマった・・・。
https://support.apple.com/en-us/HT201314
VNC セッションでスクリーンセーバーが無効にできない、解除できない
M1 Mac miniを使い始めて1年。MacOSでスクリーンセーバーの設定を無効化しているにもかかわらず、VNCを使ってリモートからGUI画面を操作していると、スクリーンセーバーが起動してしまうのです。さらにこのスクリーンセーバーが、どのようなキーを入力しても解除できない。。。さらに、VNCではなく直接MacOSにログインしても、スクリーンセーバーが表示され解除できない。。。イヤイヤイヤw
MacOSの不具合かと思い放置していましたが、MacOS 11「Catalina」 → MacOS 12「Monterey」にバージョンアップしても再現するのです。ということで放置はやめて検索したところ、やはり同様の事象に対する対応策がありました。設定ファイルを編集する必要があるのですが、、、
$ cd /Library/Preferences
### PowerManagementに関する設定ファイル名を確認。
$ ls -la com.apple.PowerManagement.*
-rw-r--r-- 1 root wheel 198 Nov 22 2020 com.apple.PowerManagement.C8B44F95-XXXX-XXXX-XXXX-XXXXXXXXXXXX.plist
-rw-r--r-- 1 root wheel 277 Nov 22 2020 com.apple.PowerManagement.plist
### それぞれのファイルの初期設定を控えておきます。念のため。
$ defaults read /Library/Preferences/com.apple.PowerManagement.C8B44F95-XXXX-XXXX-XXXX-XXXXXXXXXXXX.plist
{
"AC Power" = {
PrioritizeNetworkReachabilityOverSleep = 0;
"Sleep On Power Button" = 1;
"Standby Enabled" = 0;
TCPKeepAlivePref = 1;
TTYSPreventSleep = 1;
};
}
$ defaults read /Library/Preferences/com.apple.PowerManagement.plist
{
"AC Power" = {
"Automatic Restart On Power Loss" = 0;
DarkWakeBackgroundTasks = 1;
"Disk Sleep Timer" = 10;
"Display Sleep Timer" = 0;
"System Sleep Timer" = 0;
"Wake On LAN" = 1;
};
SystemPowerSettings = {
"Update DarkWakeBG Setting" = 1;
};
}
### UIDが含まれる方(ファイル名が長い方)を対象に、以下2コマンドで編集。
$ sudo defaults write /Library/Preferences/com.apple.PowerManagement.C8B44F95-XXXX-XXXX-XXXX-XXXXXXXXXXXX.plist "AC Power" -dict-add "System Sleep Timer" 0
Password:
$ sudo defaults write /Library/Preferences/com.apple.PowerManagement.C8B44F95-XXXX-XXXX-XXXX-XXXXXXXXXXXX.plist "AC Power" -dict-add "Display Sleep Timer" 0
### 変更後のチェック。
$ defaults read /Library/Preferences/com.apple.PowerManagement.C8B44F95-XXXX-XXXX-XXXX-XXXXXXXXXXXX.plist
{
"AC Power" = {
"Display Sleep Timer" = 0;
PrioritizeNetworkReachabilityOverSleep = 0;
"Sleep On Power Button" = 1;
"Standby Enabled" = 0;
"System Sleep Timer" = 0;
TCPKeepAlivePref = 1;
TTYSPreventSleep = 1;
};
}
【参考】
https://www.linkedin.com/pulse/how-turn-off-screensaver-vnc-sessions-macos-catalina-brian-pemberton
ちなみに起動してしまったスクリーンセーバーは、以下手順で抜けることが可能。
$ ps ax | grep -i screensaver
29767 ?? S 3:59.83 /System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -loginWindow
29768 ?? Ss 0:00.05 /System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver -AppleLanguages ("ja-JP")
29769 ?? Ss 0:00.11 /System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver-x86_64.appex/Contents/MacOS/legacyScreenSaver-x86_64 -AppleLanguages ("ja-JP")
29770 ?? Ss 0:00.05 /System/Library/Frameworks/ScreenSaver.framework/PlugIns/Computer Name.appex/Contents/MacOS/Computer Name -AppleLanguages ("ja-JP")
29771 ?? Ss 0:00.05 /System/Library/Frameworks/ScreenSaver.framework/PlugIns/iLifeSlideshows.appex/Contents/MacOS/iLifeSlideshows -AppleLanguages ("ja-JP")
29827 s000 S+ 0:00.00 grep -i screensaver
### 上記の場合、PID 29767 をkillすればよろし。
$ kill -9 29767
【参考】
https://medium.com/@jmrumble/stuck-in-macos-screensaver-2095e4bb48e5
iPhoneのバックアップデータ保存先
やってしまいました。iPhoneの機種変更時にアプリ等の断捨離を兼ねて、旧iPhoneのバックアップデータを使わずにセットアップしたところ、まっさらなアドレス帳でiCloud上のアドレス帳が消えました。。。
ってことで、旧iPhoneのバックアップデータからアドレス帳をサルベージ。
/User/(ユーザ名)/Library/Application Support/MobileSync/Backup
【参考】
https://www.fireebok.com/resource/how-to-view-and-browse-iphone-backup-in-macos-big-sur.html
ちなみに、ユーザのライブラリフォルダは不可視となっているため、さらに下記に記載した不可視ファイル・フォルダの参照手順も必要です。
さらに、バックアップ先を外部ドライブに変更したい場合は、、、
【参考】
https://infornography.blue/mac/mac-backup-changing-drive/
#GUIで不可視なファイル・フォルダを表示
Finderや各ソフトのファイルを開くメニューからファイル・フォルダが見えない場合、以下のショートカットで不可視を無効化・有効化の切り替えができます。
「Command + Shift + .(ピリオド)」
【参考】
https://tamoc.com/mac-display-hidden-files/
※ターミナルで、以下手順を実施すると見れるという情報もありましたが、Big surではNGでした。最近のmacOSではダメなのでしょうか。
$ chflags nohidden ~/Library
###不可視のフラグを無効化。有効化は「hidden」
$ ls -laO
###ファイル.・フォルダに設定されているフラグを確認
IPv6を無効にする
昨今は、Windows・macOS・各種LinuxとIPv6は標準で有効になっていますが、使わないので無効化しました。
※IPv6がhaproxyの利用を阻害していたので。。。
以下のサイトで対応方法が記載されていました。
https://qiita.com/yskuniv/items/2c6bee22aa0552c4103e
$ sudo networksetup -setv6off <networkservice>
###有効化は「automatic」
$ sudo networksetup -setv6automatic <networkservice>
###IPv6が有効な時の、Network I/Fの情報
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether e8:06:88:cc:ab:53
inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::1411:9451:d9df:8a99%en0 prefixlen 64 secured scopeid 0xc
inet6 2001:240:218d:c000:14d2:3228:8ddb:f2b4 prefixlen 64 autoconf secured
inet6 2001:240:218d:c000:9409:da3a:c50b:add8 prefixlen 64 autoconf temporary
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
###IPv6が有効な時の、Network I/Fの情報。スッキリ!
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether e8:06:88:cc:ab:53
inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
Portを使用しているプログラムをチェックする
Windowsなどでは、「netstat -abn」としてポートを使用しているプログラムを確認することができますが、macOSのnetstatではムリとのこと。
以下のサイトで対応方法が記載されていました。
https://do-zan.com/mac-search-using-port/
「sudo lsof -i<ポート番号>」とのこと。
$ sudo lsof -i:22
Password:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
(略)
launchd 1 root 58u IPv4 0xdbdc94c74c87e461 0t0 TCP 192.168.1.10:ssh->192.168.1.105:55472 (ESTABLISHED)
(略)
sshd 293 root 4u IPv4 0xdbdc94c74ae00099 0t0 TCP 192.168.1.10:ssh->192.168.1.105:55471 (ESTABLISHED)
(略)
SSHで接続する場合に、文字コードをUTF-8にする
macOSのsshdを有効にしSSHターミナルソフトで接続すると、初期状態ではlocaleがCになっているため、2バイト文字が正常に表示されず不便。
$ ls -la
total 2560
drwxr-xr-x 9 masa03 staff 288 Feb 28 13:16 .
drwx------+ 8 masa03 staff 256 Aug 6 01:37 ..
-rw-r--r--@ 1 masa03 staff 32479 Feb 28 13:15 r1syotoku-2.data
-rw-r--r--@ 1 masa03 staff 10742 Feb 28 13:08 r1syotoku.data
-rw-r--r--@ 1 masa03 staff 69470 Feb 28 13:09 r1syotoku.pdf
-rw-r--r--@ 1 masa03 staff 1048433 Feb 28 13:14 ???????????????????????????????????????-???????????????????????????????????????.webarchive
-rw-r--r--@ 1 masa03 staff 67268 Feb 28 12:32 ??????????????????????????????????????????SS000410 ?????????????????????.pdf
-rw-r--r--@ 1 masa03 staff 69622 Feb 28 12:33 ??????????????????????????????????????????SS000420 ????????????.pdf
-rw-r--r--@ 1 masa03 staff 111 Feb 28 12:14 ????????????????????????????????????.webloc
$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
$
以下のサイトで対応方法が記載されていました。
https://apple.stackexchange.com/questions/158673/how-to-get-utf-8-locale-when-connecting-via-ssh-to-macosx-from-putty-windows
「.bash_profile」に以下の2行を追記して、SSHを再接続するとOK。
export LC_ALL=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
$ locale
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL="ja_JP.UTF-8"
$ ls -la
total 2560
drwxr-xr-x 9 masa03 staff 288 2 28 13:16 .
drwx------+ 8 masa03 staff 256 8 6 01:37 ..
-rw-r--r--@ 1 masa03 staff 32479 2 28 13:15 r1syotoku-2.data
-rw-r--r--@ 1 masa03 staff 10742 2 28 13:08 r1syotoku.data
-rw-r--r--@ 1 masa03 staff 69470 2 28 13:09 r1syotoku.pdf
-rw-r--r--@ 1 masa03 staff 111 2 28 12:14 所得税の確定申告|国税庁.webloc
-rw-r--r--@ 1 masa03 staff 1048433 2 28 13:14 【確定申告書作成コーナー】-送信結果(即時通知)の確認.webarchive
-rw-r--r--@ 1 masa03 staff 67268 2 28 12:32 国税電子申告・納税システム-SS000410 入力内容の確認.pdf
-rw-r--r--@ 1 masa03 staff 69622 2 28 12:33 国税電子申告・納税システム-SS000420 送信結果.pdf
$
チョットしたことですが、備忘録として記載。