2019/03/24

T2-Macでもシングルユーザモードを(mojave)...

single-user mode

T2チップ搭載*1のMacでも、設定変更によってシングルユーザモードで起動できる
(部/外部ボリューム問わずシングルユーザモード起動が可能)
変更は上のように、macOS復元(cmd + r 起動)し、起動セキュリティユーティリティを起動して行い、「安全な起動」欄で「セキュリティなし」を選択することでシングルユーザーモードでブート出来るようになる
(外部ボリュームでも可能にしたい場合は、(当然)起動セキュリティユーティリティの「外部起動」欄も「外部メディアからの起動を許可」に変更しておくこと)


BootSecUtility

但し、外部ボリュームから起動している場合は、一度、内部ボリュームから起動し直した後に、macOS復元起動しないと、起動セキュリティユーティリティのアカウント認証時に失敗するようです
これは
Secure Enclave に送信される「復元時認証」資格情報をドライブの「Preboot」APFS ボリュームに保存する場合にのみサポートされるため..(macOS導入リファレンスより抜粋)
からで、Secure Bootの効かない外部(Preboot)ボリュームではなく、起動時に読み込むPrebootボリュームに保存しないとイケナイから...です
またこれは、Prebootボリュームの存在しないHFS+ではSecureBootは出来ないということになります

-参照:起動セキュリティユーティリティ-macOS導入リファレンス


SingleUserMode

補1)
シングルユーザモードでfsckをかける場合も、上の表示を見る限りでは
$ fsck -fy
だけで(fsck_apfsとしなくても)apfsのチェックも行っているようだ
...そして-fオプションは無効と怒られる^^///




補2)
シングルユーザモード抑制は、先の「安全な起動欄」設定で行なうべき*2だが、旧来からの方法で(疑似的に)行なうことも出来ないことはない

シングルユーザモードではOpenDirectoryでなく /etc/passwd , /etc/group , /etc/master.passwd を見ているので root の情報を見てみると/var/root:/bin/sh (ホームディレクトリ:ログインシェル)となっている
そこで /var/root/.profileをつくり下のように強制的にrebootさせることでシングルユーザーモードを擬似的に抑制することも出来る
$ cat /var/root/.profile
#!/bin/sh
/sbin/reboot
補3)
逆にシングルユーザで起動させる方法は、起動ユーティリティで許されていれば、NVRAMに書き込む方法
$ sudo nvram boot-args="-s"

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
に起動時オプション(Kernel Flags/-s)を書き込むという手もある(SIPプロテクト外すことに注意! /macOS復元起動で $csrutil disable)


ref.
*1 安全についてはSecureBoot,StorageEncryption,TouchIDなどを担当
*2 「起動セキュリティ」の「安全な起動」欄が「完全なセキュリティ」「中程度のセキュリティ」だとシングルユーザモードで起動出来ない(「セキュリティなし」設定のみシングルユーザモードで起動できる)

-起動セキュリティについて
https://support.apple.com/ja-jp/HT208198

-Apple T2 セキュリティチップについて
https://support.apple.com/ja-jp/HT208862

以上.




0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。