05月29日
未解決:サーバーへ接続するアドレスを変更後に、元のアドレスで警告が出ます
先日、smb接続をBonjourを使ったホスト名に変更しました。
( 192.168.0.5 -> homepc.local )
変更前:
homepc 固定IPで運用
192.168.0.5と接続していない状態から、バックアップがはじまると
192.168.0.5と接続し、ボリュームをマウント後、バックアップする挙動でした。
変更後:
homepc DNSで運用
homepc.localと接続していない状態から、バックアップがはじまると
エラーが表示されます。(自動マウントされません)
「サーバ"192.168.0.5"への接続で問題が発生しました」
手動でsmb://homepc.local/f$に接続後は、
タイムマシーンの都合f$上にあるMyMacBackupがマウントされます。
変更直後、自動マウントは、うまく動作していたはずです、
振り返ると、IPアドレスが同一だったため、
問題が発覚しなかったと推測しています。
( 192.168.0.5 -> homepc.local )
変更前:
homepc 固定IPで運用
192.168.0.5と接続していない状態から、バックアップがはじまると
192.168.0.5と接続し、ボリュームをマウント後、バックアップする挙動でした。
変更後:
homepc DNSで運用
homepc.localと接続していない状態から、バックアップがはじまると
エラーが表示されます。(自動マウントされません)
「サーバ"192.168.0.5"への接続で問題が発生しました」
手動でsmb://homepc.local/f$に接続後は、
タイムマシーンの都合f$上にあるMyMacBackupがマウントされます。
変更直後、自動マウントは、うまく動作していたはずです、
振り返ると、IPアドレスが同一だったため、
問題が発覚しなかったと推測しています。
なぜ?ホスト名.localではなく、IPアドレスでエラーが表示されるのか?
TimeMachineを手動で「今すぐバックアップを作成」を選んでもマウントされない。
マウント自体は、TimeMachineではなく、別のサービスが行っていると思っています。
実際の挙動から以下のような流れではないかと想像しています。
OS (TimeMachieの起動時間が近づく)
→ smb://192.168.0.5/f$が必要 (なぞのサービス)
→ smb://192.168.0.5/f$をマウント
→ TimeMachineへバックアップ指示
defaults read | lessで、IPアドレスを検索します。
これ、怪しげです。他は、Finder関連で4件、AirPortで1件ありました。
まずは、com.apple.NetAuthAgentを変えてみます。
入り組んでいるパラメーターってどうやって変更するんですかね・・
man defaultsを参考に、値を指定します。
plist指定
マウント自体は、TimeMachineではなく、別のサービスが行っていると思っています。
実際の挙動から以下のような流れではないかと想像しています。
OS (TimeMachieの起動時間が近づく)
→ smb://192.168.0.5/f$が必要 (なぞのサービス)
→ smb://192.168.0.5/f$をマウント
→ TimeMachineへバックアップ指示
接続先はdefaults値として、キャッシュしているんでしょうか?
defaults read | lessで、IPアドレスを検索します。
"com.apple.NetAuthAgent" = {
PreviouslySelectedShares = {
"192.168.0.5" = (
Users
);
};
};
これ、怪しげです。他は、Finder関連で4件、AirPortで1件ありました。
まずは、com.apple.NetAuthAgentを変えてみます。
defaultsでvalueが複雑な値を書き換える
入り組んでいるパラメーターってどうやって変更するんですかね・・
man defaultsを参考に、値を指定します。
plist指定
$ defaults write com.apple.NetAuthAgent
‘{ "PreviouslySelectedShares" = { “homepc.local” = ( Users ); };}';
(実際は、改行しないで、1行です)
parseエラーになります。
defaults[26160:707] Could not parse:
{ PreviouslySelectedShares = { “homepc.local” = ( Users ); }; }
. Try single-quoting it.
key,value方式
$ defaults write com.apple.NetAuthAgent PreviouslySelectedShare
'{ “homepc.local” = ( Users ); }';
defaults[26289:707] Could not parse: { “homepc.local” = ( Users ); }
. Try single-quoting it.
またもやTry single-quotingです><
man defaultsを再度確認します。array, dictなる指定があるようです。
array指定
defaults write com.apple.NetAuthAgent
PreviouslySelectedShares
-array '{ homepc.local = ( Users ); }';
コマンドは、成功しました^^
defaults readで確認すると、フォーマットが変わっています。
value全体が配列になってしまいました。
{
PreviouslySelectedShares = (
{
"homepc.local" = (
Users
);
}
);
}
dict指定
defaults write com.apple.NetAuthAgent
PreviouslySelectedShares
-dict homepc.local '( Users )'
コマンドは成功しました^^
defaults readで確認します。
defaults read com.apple.NetAuthAgent
{
PreviouslySelectedShares = {
"homepc.local" = (
Users
);
};
}
元と比較するとIPアドレスだけ書き換えることに成功しました。
すっかり、解決するものと思っていましたが、
「サーバ"192.168.0.5"への接続で問題が発生しました」
と表示されます。
一体、だれがキャッシュしているんだ?
継続調査です orz
解決しました。
$ defaults write com.apple.NetAuthAgent
‘{ "PreviouslySelectedShares" = { “homepc.local” = ( Users ); };}';
defaults[26160:707] Could not parse:
{ PreviouslySelectedShares = { “homepc.local” = ( Users ); }; }
. Try single-quoting it.
$ defaults write com.apple.NetAuthAgent PreviouslySelectedShare
'{ “homepc.local” = ( Users ); }';
defaults[26289:707] Could not parse: { “homepc.local” = ( Users ); }
. Try single-quoting it.
defaults write com.apple.NetAuthAgent
PreviouslySelectedShares
-array '{ homepc.local = ( Users ); }';
{
PreviouslySelectedShares = (
{
"homepc.local" = (
Users
);
}
);
}
defaults write com.apple.NetAuthAgent
PreviouslySelectedShares
-dict homepc.local '( Users )'
defaults read com.apple.NetAuthAgent
{
PreviouslySelectedShares = {
"homepc.local" = (
Users
);
};
}
コメントシステムを利用したくない方はお問い合わせからお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。