macOS Monterey 12.6でSMBマウントした時のメモ
CPU: M1 MAX
Finderを使う場合
- Finderを使ってマウントする場合は、「サーバへ接続」で
smb://<アドレス>
を入力すれば可能。 - 起動時に自動的にマウントする場合は、「設定」-> 「ユーザとグループ」-> 「ログイン項目」で
smb://<アドレス>
を入れると可能。
上記の方法では起動時には自動でマウントしてくれるが、スリープから復帰後は手動でマウントしてあげなければならない。
ターミナルからファイルを触るのにも操作性が良くない。
そこで、きちんとマウントポイントを指定してマウントする。
mountコマンドを使う場合
macではfstabが使えないため、マウントを行うスクリプトを作成しログオン時にこのスクリプトが実行されるようにする。
まず、シェルのpathを確認する
$ echo $SHELL
/bin/zsh
-> 必要に応じてシェルスクリプト1行目(シバン)を書き換えてください
スクリプトの作成
※ スクリプト中にパスワードをハードコードしているため、運用時は必要に応じて環境変数や1passwordを参照するようにしてください。
※ マウントしたいフォルダが日本語の場合はURLエンコードをしてください。
※ zshの場合は配列インデックスは1から始めないとinvalid subscript range
エラーが出る
$ vim ~/mount-test.sh
~/mount-test.sh
#!/bin/zsh
#== ベタ打ちの場合 ==#
USER="<SMBユーザ名>"
PASSWORD="<SMBユーザパスワード>"
HOST="<SMBサーバIPアドレス>"
#-- ベタ打ちの場合 --#
#== 1passwordを使う場合 ==#
eval $(op siginin)
_user="op://Personal/file_server/username"
_password="op://Personal/file_server/password"
_host="op://Personal/file_server/host/URL"
USER=$(op read ${_user})
PASSWORD=$(op read ${_password})
HOST=$(op read ${_host})
#-- 1passwordを使う場合 --#
# マウントポイント (ルート)
MNT_ROOT="${HOME}/mnt/srv"
# マウントしたいフォルダが複数ある場合は配列を増やしていく
## 例として Shareとdownloads をあげている
# zshの場合はインデックス1から始める
TARGET_ARRAY[1]="Share"
TARGET_ARRAY[2]="downloads"
for target in ${TARGET_ARRAY[@]}
do
# マウントポイントがなければ作成する
if [[ ! -d "${MNT_ROOT}/${target}" ]]; then
echo "create directory: ${MNT_ROOT}/${target}"
mkdir -p "${MNT_ROOT}/${target}"
fi
echo "mount ${MNT_ROOT}/${target}"
# マウントする
mount -t smbfs //${USER}:${PASSWORD}@${HOST}/${target}/ ${MNT_ROOT}/${target}/
done
実行権限を与える
$ chmod +x mount-test.sh
起動時にスクリプトが実行されるようにする
- 「設定」 -> 「ユーザとグループ」を開く
- 「ログイン項目」を開く
-
+
ボタンを押して、作成したシェルスクリプトを登録する
再起動してスクリプトが実行、マウントされていればOK