Previous Topへ Next

OSXのtips1-18

今まで運用記録に書いてきたシステム運用のtipsを一カ所にまとめることにした。 要するに記事の量が当初の想定よりも多くなってしまい 私自身探すのが大変になってきたからだ。 ちょっとしたメモとしてのtipsも結構重要な情報になったりするので ここで項目を集めることにした。
システムメンテナンスのtips

anchor

Yosemiteの日本語入力のキーマッピングをことえり風に戻してみる〜注意は必要だができることが判明した

Yosemiteの導入記事にも書いたが、OS X 10.10Yosemiteでは噂通り日本語入力メソードの「ことえり」が廃止されてしまった。

ことえりのユーザ辞書は引き継がれるので、デフォルト辞書の外来語、例えばターミナルがterminalというように先頭小文字で変換されてしまうという困った点以外は問題ないのだが、キーマッピングがWindowsなどと同じJIS標準になってしまった。

何が困るって長年ことえりに慣れてしまったユーザはLキーでラ行のラリルレロを入力する癖がついてしまっているので、これが一朝一夕には治らない。
このあたりの経緯についてはこちらのYosemiteインプレッションで書いた。
Yosemite続報〜iOS8にアップデートしたらiPhoneがWi-Fiで同期できない問題の解決法3〜結局アップデートが決め手やね〜Finderの重さが辛い…ことえり廃止に伴うキーマッピングの変更について


ことえりユーザがなぜLキーを使うことに慣れてしまっているかというと、ローマ字の子音を右手、母音を左手で入力するスタイルが便利だからだ。
ラとかレはL+A、L+E、逆にリルロはR+I、R+U、R+Oというように使い分けることで、子音、母音を左右の指で交互に打つ運指が楽なので自然にこうなってしまった。
ことえりユーザはこういうことでタイプを少し高速化していたのだ。

ただこれが通用するのはことえりだけで、以前からATOKや旧EGBridgeなどを使用していたユーザはWindowsユーザと同じくJIS標準のL+子音で小文字という入力ルールに慣れていたはずだ。

だからマイノリティなんだし、もはやWindowsユーザだけでなくMacユーザの中でもマイノリティなのだからJISルールにそろそろ慣れるべきだと思っていた。

ところがやはりこのスタイルで20年近く文字を打っていると、もう指が勝手に動いてしまってYosemite移行してからタイプミスが劇的に多くなった。


そこで以前からBBSにさくらさんから情報を頂いたのだが、日本語IMの実体アプリがシステムフォルダの中にあって、その中にはことえりルールのファイルも存在するという耳寄り情報を頂いていたのでこれを試した。

以前に試したときはラ行のルールの項目だけデフォルトのルールにコピーしたところ、確かにラ行単独ならLキーを使って入力できるのだが、一文の中にラ行も含めてまとめて変換すると変な文字列になってしまいうまくいかなかった。
またコピーを作るとシステムフォルダの中のファイルのルール通りACL付きのファイルになってしまうのも気になっていた。
これではバックアップにならない。

それで断念したのだが、再度さくらさんから手順の情報を頂いた。

お世話になります。
あれだけ嫌がっててWindowsキーを慣れてしまった今更ですが(笑)、詳しく記載されてました。

1.以下のようにフォルダを開きます。
 Macintosh HD/システム/ライブラリ/Input Methods/JapaneseIM/Contents/Resources
 (なお、「JapaneseIM」を開くときはアイコンを右クリック(もしくはcontrolキーを押しながらクリック、以下同様)して「パッケージの内容を表示」を選択してください。この方法、iPhotoなどでも使えます)

2.RomajiRule_Default.txtのアイコンを右クリックして、「複製」を選択します(もちろん、「command+D」でもOK)。ここから先はことあるごとにパスワードを求められますが、面倒でも毎回パスワードを入力してください。

3.複製した「RomajiRule_Defaultのコピー.txt」の名前を「RomajiRule_Default_old.txt」に変更します。RomajiRule_Derault.txtのファイル自体を捨てても構わないのですが、もしもの時を考えて残しておいた方が無難かと思います。名前の変更の仕方ですが、アイコンの名前の部分を絶妙に左クリックするか、普通にアイコンを左クリックしてEnterキーを押してください。

4.RomajiRule_Default.txtをゴミ箱に叩き込みます。

5.「2.」と同様の手順で「RomajiRule_Kotoeri.txt」を複製します。

6.複製した「RomajiRule_Kotoeriのコピー.txt」の名前を「RomajiRule_Default.txt」に変更します。

7.Macを再起動します。

8.ラ行がLキーで入力できる喜びを噛み締めます。


これで簡単にできるかと思います
ご参考までに。

この手順だと出来上がったRomajiRule_Default.txtがやはりACL付きのファイルになってしまい危険だという問題がクリアされていないが、でもこの手順がヒントになった。
要はACL付きのファイルは文字列を取るためのバックアッププールとして置いておけばいいのであって、ルールファイルは元からシステムフォルダの中にあったものを使ってその中のテキストだけ書き換えるという原則にすればクリアできそうだ。

そこでこの手順を少し私なりにアレンジしてみた。

1)Macintosh HD/システム/ライブラリ/Input Methods/JapaneseIMを右クリックで「パッケージの内容を表示」で開く
Contents/Resourceの中のRomajiRuleで始まるテキストが日本語入力ルールファイル

2)RomajiRule_Default.txtのアイコンを右クリックして、「複製」または「Command+D」でコピー

3)複製した「RomajiRule_Defaultのコピー.txt」の名前を「RomajiRule_Default_backup.txt」に変更。

4)RomajiRule_Default.txtをテキストエディタ(コード書き用に認証機能があるものが良い、私の場合はCotEditor)で開く

5)RomajiRule_Kotoeri.txtをテキストエディタで開いてCommand+Aで全文を選択しコピー。

6)RomajiRule_Default.txtをCotEditorで開きCommand+Aで全文を選択し、ここに先ほどのKotoeriルールを全文上書きペースト。
つまり出自も名前もRomajiRule_Default.txtだが中身はそっくりRomajiRule_Kotoeri.txtというファイルにする

7)Macを再起動。

8)ラ行がLキーで入力できる喜びを噛み締める。

9)元に戻す時はRomajiRule_Default_backup.txtの中身を全文選択してコピーしRomajiRule_Default.txtを開いて全文ペーストして再起動。


この手順で余計なACLが付加されることなく中身だけことえりルールに書き変わる。
ここまでする必要はないのかもしれないが、このACLには前にも一度痛い目にあっているので。

この手順を早速実行したところ、私のMacBook Proの日本語入力はことえりタイプに戻った。
こうしてこの文章はLキーをガンガン使って入力している。
やっぱり、これが快適だわ…ラリルレロラリルレロラリルレロ…

ただしこの方法はシステムフォルダの中身をいじるので、やってみようという人は十分注意して自己責任で試すこと、やる前に必ずTime Machineなどで完全なバックアップを取っておくこと、自分が何をやっているのかよくわからなくなったら直ちに作業を中止して全てを元に戻すこと…を厳守していただきたい。

さくらさん情報ありがとうございます。





ことえり廃止に伴い慣れ親しんだLキーのラ行入力ができなくなりタイプミスが劇的に増えた
Yosemiteのシステムファイルの中にもことえりルールのバックアップは残っているとの情報を得て
以前IMの日本語ルールをコピーを試したのだが、ACLが付与されているのに気がついたので
ことえりルールからラ行のルール文字列だけ持ってきてDefaultにコピーしたところ
ラ行だけなら確かにLで入力できるようになったのだが、ラ行を含む単語を変換すると
変な言葉になってしまう問題が起きたので断念していた




今回の改良した方法でもやはり/System/Library/Input Methods/JapaneseIM.appの中身をいじる




このJapaneseIM.appを右クリックして「パッケージの内容を表示」でその中身を展開する




Contents/Resourceの中のRomajiRuleで始まる日本語入力ルールファイルが幾つかある
有効になっているのがRomajiRule_Default.txtで、
ことえりルールが記述してあるのがRomajiRule_Kotoeri.txt




このRomajiRule_Default.txtを複製またはCommand+Dキーでコピーを作るのだが
「情報を見る」で確認すると「カスタムアクセス権が…」という表示が出る
これが曲者で以前にもシステムファイルをこのACL付きファイルに
入れ替えてしまって大事になるという経験をしている
(参照iTunesライブラリが共有できない〜例によってACLの仕業か〜一気に解除とかやったら
システムぶっ壊れて再インストールするはめに…よいこの皆さんはマネしないでね

そこでACL付きファイルが残らない手順を考えてみた




まずRomajiRule_Default.txtのコピーを作るところまでは同じ
これは中身を取って元に戻すのに使うのでバックアップという名前にでもしておく
もちろんそのまま〜のコピーという名称のままでも構わない




次にRomajiRule_Kotoeri.txtCotEditor で開いて全文選択してコピー
RomajiRule_Default.txtCotEditor で開いて全文選択してペースト
つまりRomajiRule_Default.txtというファイルはそのままに
中身だけRomajiRule_Kotoeri.txtとそっくり入れ替える




これを保存するには管理者のパスワードが要求される
保存してもRomajiRule_Default.txtにはACLが付加されず
元どおりシステム所有のアクセス権が有効のまま




一応念のために不正なPreferenceなどが生成されて影響がないようにMainMenuで掃除しとく




こうして再起動後MacBook Proのキーボードはことえりルールに戻った
ラ行を含む文章をまとめて変換しても変にならない
何度か再起動を試したがルールが消えるなどの挙動不審もなさそうだ
うまくいったんじゃないだろうか



2014年12月13日








システムメンテナンスのtips

anchor

【大公開!】Yosemiteを快調に動かし続けるために私がやっている年末大メンテナンス手順

MacはOS Xになってかなりメンテナンスフリーに近くなっている。

かつてOS9以前の時代はMacを快調に動かし続けるのは初心者には非常に難しく、これを快調に動かす上級者のスキルと秘密のノウハウがいろいろあった。
OS9には非常に手を焼いたが、こういう上級者たちの話を聞くのは楽しかった。

翻ってOS Xである。
このOSもパソコンのOSである以上残念ながら完全にメンテナンスフリーというわけにはいかなかったが、普通に初心者が買ってきて、電源を入れて、何もしないで使い続けてもそうそう調子が悪くなることはない…という程度のケアフリーなOSにはなった。

かつて旧OSを快調に動かすことで尊敬を集めていた上級者たちは、OS Xの普及によってだんだんいいところを見せられる場面が減ってきてしまった。

ということで、今回たいそうなタイトルをつけてしまったが、OS Xを快調に動かすマル秘テクニックなんて存在しない。
とっても普通だ。
しかもMainMenu Proに完全におんぶにだっこだ。

わざわざ解説するまでもなかったかもしれない。
ただ古い記事で「Macのメンテナンス、私はこんなことやってます」というようなものが弊サイトにもあるので、じゃ、最近は何やってるのと聞かれるとこんだけしかやっていません…ということになる。

さすがに何もしないと2年目からだんだん動きがおかしくなってくるかもしれないから、年に一度くらいはこの程度のメンテナンスはやろうよ…という意味で今回の手順をまとめた。

大掃除の季節だしね(ってあと11時間ほどで今年も終わるのだが…)
Macも掃除しちゃいましょう。





Macのメンテナンスには私は主にMainMenu Proを使う
同等の機能があれば他のアプリでもいいのだがシェアウエアではあるが必要な機能が全部
そろってるのでつい便利さからこれ一択になる…というより最近ではこれに頼りきっている
まずはユーザキャッシュの削除だがこれだけは年に一回と言わずに毎月でも毎週でもやったほうがいいと思う
特にYosemiteになってから仮想メモリを多用しない分、どんどんキャッシュに書き出す仕様になったようで
これをやるだけでディスク空き容量が数GB増えたりする
大量のキャッシュは破損の可能性が増加する原因になり不具合を招くので私は毎日のようにやっている
とりあえず「ユーザキャッシュの削除」をやっておけばその下のSafariのキャッシュは一緒に削除される




私はDashboardを殺す設定をしているのでこのメンテナンスはやっていないが
アクティブにしている人はDashboardを使っていなくても
たまにキャッシュ削除はやったほうがいいかもしれない




キャッシュの削除を徹底的にやりたい場合は「システムキャッシュの削除」、
「すべてのユーザキャッシュの削除」、「フォントキャッシュの削除」、「DNSキャッシュの削除」、
「すべてのファイルの削除」「検索キャッシュの削除」
を実施しておく
システムキャッシュは後で再起動さえすればゴッソリ削除されても問題ない
「すべてのファイル」とはアーカイブ化されたログファイルのことでこれが数十GB溜まって
システムの動きが悪くなった経験もあるのでたまには削除したほうがいい




次に「不正なPreferenceファイルを削除するを実行する
Mavericksから導入された設定の自然修復機能のせいなのかMavericks以降OS Xは
Preferenceフォルダの中にやたらテンポラリファイルを作るようになって
これが破損してゴミファイルを大量に発生させるようになってしまった
こういうものは貯めておいてもいいことなんかひとつもないのでさくっと削除してしまう




以上削除系のメンテナンスを実行したらOS Xを再起動させる
この時にコマンド+Sキーを押しながら起動させてシングルユーザモードに入る
ここでfsck -fyと打って通常のファイルシステムチェックを実行する
こんな表示が出れば問題無し・リサルトに「Volume was repaired」というような
修復したというログが出たらこれが出なくなるまで繰り返し何度でも実行する
bashなので上カーソルキーとEnterキーだけで同じコマンドを何度でも繰り返せるので便利
完了したらrebootと打ってEnterしてやれば通常のGUIから起動できる




次に修復系のメンテナンスを一式
まずは定番の「起動ボリュームのアクセス権修復」を実施
これはDisk UtilityでもTerminalでも実行できるがMainMenu Proなら
ワンストップで全部できるので最近はもっぱらこれを使っている




これは週間、月間、それとほぼ毎日システムが自動実施している手順を一通りやる
「すべてのメンテナンスをを実行」でこの3つのメンテナンスを全部実行する




メモリは再起動で解放されているはずだがここで実施してメモリ使用量に変化がないか確認しておく
再起動後あまりに効果があるようなら逆に何かメモリを束縛するプロセスが動いているのかもしれない
ここでは「Launch Servicesを再構築」「Whatis データベースの更新」
「LocateDatabaseの更新」
などの再構築系のコマンドも実行しておく
また「Spotlightインデックスを再構築」「Apple Mailインデックスを再構築」も実施しておく
前者はSpotlightインデックスを削除するコマンドなのでこの後1〜2時間程度CPUが跳ね上がるが
これもたまにやっておかないとSpotlightインデックスが破損するとプレビューが正しく表示できないとか
検索にあるべきものがかからないとかのおかしな動きになってくる




ゴミ箱はユーザフォルダ内のものだけでなくゲストユーザ、rootユーザのフォルダも全て消しておきたい
「強制的にすべてのゴミ箱を空にする」を実行しておく
この時に普段使っている外付けハードディスクも挿したままならその中のゴミ箱のゴミも削除できる
ここまでやれば以上で完了となる…今年もご苦労様…来年もよろしく



2014年12月31日








システムメンテナンスのtips

anchor

Yosemiteの虹色ボールを防ぐためにメモリ管理をMemory Cleanにやらせてみたが一長一短のようだ…

気のせいかもしれないが、たぶん気のせいではない。

MacもOS10.9から10.10へとなってインターフェイスを整理したりで、軽くなったはずだった。
そのように聞いていた。

ところがYosemiteになってなぜか虹色ボールが頻繁にぐるぐる回っているように思う。
気のせいに違いない。

気のせいだと思いたい。

しかし虹色ボールは実際にぐるぐる回っている。

メモリ管理の方法が随分変わったようで、メモリが逼迫するとどんどんSwapをページアウトしていた初期の頃のOS Xと違って最近の世代のOS XはSwapをほとんど書き出さなくなった。
最初から1GBある代わりに、いつまでたっても1GBのままだ。
だからOSは軽くなったはずなのだが、圧縮メモリにどんどんページアウトするようになってやっぱり虹色ボールは回っている気がする。

私の2009年型のMacBook Proが非力なせいなのかもしれない。

そこで少し考え方を変えてみた。

anchor

Memory Clean for Mac
(Freeware)
OS10.7Lion対応OS10.8Mountain Lion対応OS10.9Mavericks対応
OS10.10Yosemite対応

以前ここで紹介したメモリ解放する常駐型アプリがYosemiteにも対応している。

これはクリックでメモリを解放するだけでなく定期的にメモリを解放する常駐アプリとしても使える。
Yosemiteになってメモリに影響を及ぼすコマンドが色々変わったのか効果が変わっているものが多い。
例えばpurgeコマンドなんてあるバージョンまでは絶大な効果があったが、だんだん効かなくなってきている。

いろいろ試した結果、YosemiteではこのMemory Cleanがメモリの空き容量を確保するという意味では一番目に見えてこうがあるように思う。

ただし空き容量は確保できるのだが、その結果Swapにはページアウトし始めた。

これならメモリ圧縮を無効化するコマンドを実施しても同じことかもしれない。
これについてはそのうち触れるかもしれないが、今のところメモリ圧縮を無効化する方がいいというところまでは割り切れていない。

どんなものなんだろう?





Memory Cleanのバージョンが上がっていてYosemiteにも対応していた
メモリ解放アプリもいろいろ試しているがOS Xのバージョンが上がるにつれて
効果が弱くなっているものあれば効果があるものもある
Memory Cleanも試してみた




その結果は1.68GB、圧縮メモリも多少減らすことができた




常駐させることで結局見かけ4.4GB、実質3.4GBの空き容量を稼ぎ出している
ただし1GBから増えることがなかったSwapが2GBになっている
結局トレードオフということだがどちらがマシなんだろうか?
もしSwapの方がマシなら圧縮メモリを無効化すればいいと思うのだが
どちらが虹色ボールが少なくなるのか難しいところだ
しばらくはこれで使ってみようと思っているが…



2015年3月15日








システムメンテナンスのtips

anchor

VMWare FusionでゲストOSとホストOSの時刻同期をオフにする〜同様のことをVirtual PC 2007でもやる方法

お仕事の関係でWindows7環境でリスク検証をしなくてはいけなくなった。
システムぶっ壊れるの覚悟の検証なので実機でホイホイやるわけにもいかないので、バーチャルでやるのだがお仕事で使っているバーチャル検証システムにまだWindows7のライセンスがないため、ライセンスを買ってもらえるまでは私物のVMWare Fusion@MacBook Proで検証することにした。

そうしたら少し困ったことが起きた。

いままでVirtual PC 2007でやってたのと同じ検証をやるために、過去や未来の日付の現象を再現する必要が出てきた。
そこでVMWare Fusionでゲストとホストの時刻同期をしない方法を調べた。

VMware Fusionの場合はマウスの統合と同じく、その辺はVMware Toolsがやっていることが判明。
その設定変更は以下の手順で可能だ。





VMWare Fusionの仮想マシンの内容を表示する
仮想マシンはデフォルトでは~/Documents/Virtual Machines.localized/にある
(ローカライズドなのでGUI上の表示は「仮想マシン」という名称になっている)
この中の開きたい.vmwarevmファイルを右クリックで「パッケージの内容を表示」




開くと仮想マシンファイルの中に.vmxという拡張子のファイルがある
ここにVMWareToolsの設定が書き込まれている
Terminalでここに書き込んでもいいし
ここではテキストエディタで設定を書き換える方法を紹介する




この中を「tools.syncTime」という文字列で検索するとこういう設定項目が見つかるはずだ




デフォルトではtools.syncTime="TRUE"となっているはずなので
これをFALSEに書き換えて保存する
元に戻したい時はここをまたTRUEに書き換える




これでゲストOSのWindowsの時刻はホストに同期しなくなる
ただしVirtual PCの時刻同期と違ってシステム起動時には
同期してしまうのでその時は時刻を設定し直す必要がある



以上がVMWare Fusion上でのゲストの時刻日同期の設定だが、同じことをWindowsがホストのVirtual PC 2007などでやることもできる。
その場合は

<components> <host_time_sync> <enabled type="boolean">false</enabled> </host_time_sync> </components> というような項目を仮想マシンファイルの.vmcファイルに追記してやる。





Windows上のVirtual PC 2007のゲストOSをホストと
時刻日同期にする時にはこのような項目を追記してやる
Virtual PCの場合は再起動しても時刻は同期されないのでこちらの方がちょっと便利



2015年4月11日








システムメンテナンスのtips

anchor

Yosemite最新バージョンアップ10.10.3の3本指タップがなにげに便利〜重要なセキュリティアップデートを含んでいるようなのでアップデート急げ!

昨晩遅まきながらYosemiteを10.10.3にアップデートした。

地味に機能が色々追加されているらしいが、ヴェアダルさんのこちらの記事で知った3本指タップでリンク先のプレビューポップアップが見られるそうだ。
Mac OS 10.10.3からSafariや"メール"でリンク先の内容を3本指タップでポップアップ表示できるように - Macの手書き説明書

早速色々試してみたが、メールやSafariだけでなくfeedlyなんかでもリンク先プレビューができるのでなにげに便利。

特にYosemiteにあがってから、Safariの動作が遅いというか読み込みが重くなったので、ちょっとイライラしていた。リンクを踏むのが最近だんだん億劫になってきていたので、この機能はありがたい。

でもこれを追加したからSafariの修正はちょっと待ってね…という意味だったら悲しいが…・゚・(つД`)・゚・

あとエクスプロイトを使ってrootをぶっこぬくリスクがあるとかないとか、その修正がYosemiteの最新版にしか当たっていないとかの噂を聞いてただいまリサーチ中。
特に理由がないなら最新版にアップデートしとくのが良いように思う。
Hidden backdoor API to root privileges in Apple OS X





OS10.10.3のアップデートがYosemite復旧アップデート、iTunes12のアップデートと一緒にかかってきた




ヴェアダルさんのサイトで知った情報だが新バージョンから
リンク先を3本指タップでプレビューできる機能が追加された
Safariメールだけでなくハイパーリンクを扱うアプリなら
feedlyなどでもこの機能が使えることを知った
リンクをクリックしてブラウザが立ち上がるのを
舌打ちしながら見ていた人には便利な機能になる




特に最近とみに動きが重くなったSafariでいちいちリンクに飛ばなくても
リンク先をチラ見することができるようになったのは本当にありがたい




これも新機能なのかな
リンク以外のところを3本指タップするとLook Upの説明が出てくる




続けるとクリックすると次からは辞書やWikipediaの解説、
App Storeの記事の見出しなどが検索されて出てくる



2015年4月11日








システムメンテナンスのtips

anchor

MacBookで電源ケーブルを挿して充電が始まったら音が鳴る機能を2009年型MacBook Proでいちはやく体験するTips

新型MacBookが発表されて以来ずっとそわそわしっぱなしの私が通りますよっと。

MacBookのスペックは私にはキーボード付きのiPadにしか見えないのだが、だからこそこれは面白いなと思っている。
Apple製品を使うものの鉄則として
「初物は避けよ」
というのがあるので、この4月のMacBookは見送ることにしたがMacBookは魅力的だ。

MacBook Proを素直に更新したほうがコストメリットがあるというのがなんとなく逆説的だが、今MacBookを導入するか新MacBook Proに更新するか悩み中だ。


それはともかく、悩んでいる間現在の2009年型MacBook Proでその雰囲気だけ味わうことにした。
そのTipsはこちらにあった、
手持ちのMacBookで、新型12インチMacBookの気分をちょっぴり味わう方法 | ライフハッカー

Terminalを起動して以下のコマンド打ち込む。

defaults write com.apple.PowerChime ChimeOnAllHardware -bool true; open /System/Library/CoreServices/PowerChime.app &

電源ケーブルを挿して充電が始まったらMacBook新機能の「ホワン」という感じの音がする。

このサウンド効果を無効にしたい場合は、以下のコマンドをTerminalに打つ。

defaults write com.apple.PowerChime ChimeOnAllHardware -bool false;killall PowerChime

これで気分は新型MacBookだ!(というほどのものではないかも)





電源ケーブルを挿した時に音がする機能を有効にする
このコマンドを打つと電源ケーブルを挿した時にMacBook風の音が出る




この音を無効にしたい時にはこのキャンセルコマンドを打つ



2015年4月21日








システムメンテナンスのtips

anchor

強制終了などの操作をするとOneDriveが起動できなくなってしまう〜再インストールしかないのでなるたけ強制終了はしないこと

Microsoftのクラウドサービスクライアントアプリの OneDriveが最近立て続けに起動できなくなるという問題が起きた。

クラウドドライブのアプリをいくつか並行して使っていて、そのうち写真の同期などにこのOneDriveを使っている。
ことさら便利ということもないが10GBというドライブ容量のためにこれにそうした大量のファイルの同期を分散している。

このクライアントアプリが起動できなくなる問題は、主にOSの強制終了などで起こる。
Macのメンテナンス法を紹介するページがあって、OSの再起動を促す記述で
コマンド+Control+Ejectキー
で再起動するということが書いてあったので試してみたら、これはすべてのアプリを確認なしに終了してシステムを終了するというキーコマンドだった。

これはアプリなどがクラッシュしてOSがいうことを聞かなくなった時に、強制終了をする時には有効なコマンドなので覚えておいて損はないと思うが、日常のメンテナンスのためにこれを常用すると不具合の原因になる。
で、早速OneDriveが起動できなくなってしまった。

OneDriveにも、どうも壊れやすい問題があるようだ。
これが起こったらアプリケーションフォルダからOneDriveを一旦削除してApp Storeから再インストールするしか方法はない。
何かの修復で治ったりはしないようだ。

ということでOneDrive2回目の再ダウンロードということになった。





OneDriveが起動できなくなってしまった
今週2回目の頻度というのがちょっと問題だ




修復はできなさそうなので結局一旦アプリケーションフォルダから
削除してApp Storeからダウンロードしなおした




それで無事起動できるようになってメデタシ…なのだが強制終了コマンドなどを
日常メンテナンスで使用するのはできるだけ避けよという教訓を残した



2015年4月25日








システムメンテナンスのtips

anchor

VMWare Fusion上のWindowsが起動即フリーズを繰り返して操作不能になってしまった〜バージョンアップ前にVMware Toolsをアンインストールしておくこと〜でないとこうなるぞw

VMWare Fusionが先日v7.1.2のアップデートの告知があったので何気なくアップデートした。
そうしたところWindowsが操作不能になってしまった。
正確にはWindows7がほぼ起動直後にフルアップしたままフリーズ状態で操作できなくなる、XPもフルアップしたままCPUが止まらないなどの問題が起きた。

結論からいうとゲストOSとホストOSのマウスを統合したりスクリーンサイズを整合させるVMWare ToolsというアプリをゲストOSにインストールするのだが、これがホストとバージョン不適合を起こして、コンフリクトを起こしたような状態になっていた。

これまでもVMWare Fusionのアップデートなんて何回もやってきたのに、こんなことは初めてだ。

特に問題なのはWindows7で起動直後にフリーズしてしまう>強制再起動する>起動する>フリーズして操作不能…を繰り返すためどうしようもない。
バックアップから復元を検討したが、まずWindowsXPの検証をしていたところフルアップしていたのはVMWare Toolsのプロセスだったことが判明。
Windows7もログイン直後にタスクトレイのVMWare Toolsのアイコンを右クリックして強制終了したところ、操作できるようになってようやくコンパネからアンインストールができるようになった。

他のMacの10.9や10.10などは普通にアンインストール、インストールができたので問題なかった。
Windowsに関してはVMWare Fusionのアップデート前にVMWare Toolsはアンインストールしておけということらしい。

VMWare Fusionを使っている理由のほぼ9割はWindowsを使うためなので、私にとってはこれはちょっとヘビーな問題だった。





VMWare Fusion上ですべてのゲストOSが
フルアップして操作不能になってしまう問題が起きた
特にWindows7が深刻で何もできないままフリーズしたようになって
強制再起動を繰り返すという悪循環になってしまった
WindowsXPはまだ少し動いていたのでタスクマネージャーを開いて
何がフルアップしているのか確認したところなんとゲストOSと
ホストOSの操作性の橋渡しをするVMWare Toolsだった




四苦八苦してなんとかVMWare Fusionのメニューコマンドから
VMWare Toolsのインストールにこぎつけた
が、この通り表示も何かと異常




アンインストールに成功してインストールウイザードまでなんとかたどり着いた




WindowsXPについては苦労したがMac OS Xの10.9と
10.10は問題なく(でもないが、なんとか)アップデートできた




アップデート後はCPUのフルアップはすんなり止まった
やはりこれが原因だった




問題はWindows7だった
起動直後にCPUがフルアップして操作を受け付けないし再起動しても同じことの繰り返し
何度か試行錯誤するうちにログイン後ほんのわずかな時間操作できることが分かったので
その間にタスクトレイのVMWare Toolsのアイコンを右クリックして終了させる
これで操作できるようになる




操作できるようになったら気が変わらないうちに
コンパネを起動してVMWare Toolsをアンインストールする




アンインストールがうまくいったらあとはVMWare Fusion
メニューバーからVMWare Toolsをインストールする




ここまで進むことができたら後は通常のツールのインストールウイザードに従って進む




ツールのバージョンの確認はこんな感じ




これでフリーズしたようになって全くいうことを聞かなくなっていたWindws7も落ち着いた




VMWare FusionにはMac OS Xの10.9と10.10もインストールしている
こちらの方も同じようにフルアップしたがVMWare Fusionのメニューから
ツールのインストールをかけるとディスクイメージをマウントする
ここにVMWare Toolsのアンインストーラも同梱されているのでこちらは問題なくアップデートされた



2015年7月8日








システムメンテナンスのtips

anchor

AppleJackをYosemiteや多分El Capitanでももっと便利に使う〜ワンキーでメンテナンスナビゲーションを実行できるようにする手順

【注意】YosemiteでAppleJackをワンキーで動かすTipsだが、以下の文章の最初だけ読んで意味もわからないで真似しないこと。最初の方法はリスキーな手順を含んでいる。
さらに後半にオチがあるが後の方法は簡単で安全でもある。
やってみようという人は必ず最後まで読んで、意味を理解してからから取り掛かること。


MacのメンテナンスキットでJaguar以来便利に使ってきたAppleJackがついにYosemiteでは動かなくなってしまった。

シングルユーザモードのアクセス権がrootユーザーと管理者ユーザがごっちゃになっていて、それがMacのセキュリティ的弱点だという指摘が多かったので、その二つを厳しく分けた結果ということらしい。

MacのメンテナンスはほぼAppleJackMainMenuの二つだけに頼りっきりだったので、ちょっと衝撃だったのだが、結局シングルユーザモードの時でもパスが通っていないだけでパスを打ち込んでやればYosemiteでもAppleJackは動くことを前回取り上げた。 詳細はこちら。
AppleJackはYosemiteでも使える〜ただし一部機能制限あり

Yosemiteでシングルユーザモードの時にAppleJackを使うコマンドは以下。
/private/var/root/Library/Scripts/applejack.sh

ただシングルユーザモードのシェルは履歴を覚えないので毎回このコマンドを打たなくてはいけないのが面倒だった。
シェルである以上どこかにプロファイルはあるはずだし、シェルヒストリーファイルもあるはずだと思って探していたらついに見つけた。





シングルユーザモードの時のシェルヒストリーファイルはrootフォルダの中にあった
なのでまずこれをやっていない人はrootを有効にしないといけない
Terminalを起動してsudo passwd rootと打つ
初見なら「sudoを誤って使うと大切なデータを失いシステムファイルを破壊する
man sudoと打ってそこよく読め」
という警告が出てくるはず
昔は「大いなる力には大いなる責任が伴う」という
スパイダーマンで引用された有名な文句が出ていた
管理ユーザーのパスワードを求められて
新しいパスワードを2回入力することが求められる
パスワードを変えたくない時には同じでもよい




試しにsuと打ってみてパスワードを入れる
するとプロンプトが$マークから#マークに変わったはず
これでrootにログインできている
確認したいならwhoamiと打ってみればrootになれているかどうかわかる




rootを有効にしたら一度ログオフして
新しくできた「その他」というユーザでユーザID「root」、
パスワードは先ほど設定したものでログインする
rootでログインするとシステムファイルのあらゆる禁止事項を超越して
なんでもできてしまう神の権限になるので何をするにもいちいち確認する注意力が必要




シングルユーザモードの時のシェルのヒストリーファイルはここにある
/private/var/rootの中の.sh_historyがユーザフォルダの中の.bash_historyにあたる
ここはrootにならないと中を見ることもできないのでrootでログインした




この.sh_historyをテキストエディタか何かで開いてここに
/private/var/root/Library/Scripts/applejack.shというコマンドを追記する




すると次回からシングルユーザモードで入った時に上向きカーソルキーで
履歴をたぐってEnter一発でapplejackを実行できる




rootでログインしているTerminalの上でAppleJackが起動できることを確認した



ということでこれで次回からシングルユーザモードに入った時に上向きカーソルキー一発で例の長ったらしいコマンドを呼び出すことができて、後はEnterキー一発でAppleJackを動かすことができる。
残念ながらアクセス権の修復が管理権の制限で実行できないが、それはリペアボリュームからもできることだしまあよしとしよう。

不正終了したのでなければfsckもルーティンの扱いでいいだろうし、それならキャッシュの削除とセットで一気にやってくれるなら手間も省ける…とここまでは良かったのだが、シングルユーザモードの履歴に他のコマンドも残っているのが気になった。
SUMでは履歴を記憶しないはずなのに、なぜ履歴が残っているんだ?…と思案していてはたと思い至った。

別にわざわざrootでGUIにログインして.sh_historyに直接追記するような危険なことをしなくても、Terminalsuコマンドでrootになったら、その時実行したコマンドが履歴に残るらしい…ということに思いいたった。

つまりこのTipsは以下の手順で十分。
1)最初のrootを有効にするsudo passwd rootを実行してパスワードを入れてrootを有効にしておく
2)suコマンドでrootになる
3)/private/var/root/Library/Scripts/applejack.shとコマンドを打ってEnterでAppleJackを起動する
4)コマンド+Sキーを押しながらMacを起動するとシングルユーザモードの履歴にこのコマンドが残っているので上向きカーソルキー、Enterキー一発でAppleJackを実行できる





わざわざrootでGUIにログインしなくても
もっと簡単で安全な方法があったことに気がついた
Terminalでrootを有効にしたらsuコマンドを打つ
先ほど設定したパスワードを求められるここで例の
AppleJackを呼び出す長ったらしいコマンドを打ってEnter




こうして一度実行しておけば次回シングルユーザモードに入った時に
上向きカーソルキー一発でAppleJackを呼び出すコマンドを実行できることを知った
なんだ、わかってみれば簡単じゃない…しかもいちいち
applejackと打たなくてもいいので前よりも簡単になった




同じことがEl Capitanでもできることを確認した




手順も全く同じでrootを有効にしてsuコマンドでrootになっておき
/private/var/root/Library/Scripts/applejack.shのコマンドを一度実行しておく




するとrootの履歴に残って次回からはカーソルキーだけで呼び出せるところまでは確認した
私のところではまだEl CapitanはVMWare Fusion上で
テスト中なのでシングルユーザモードには入れない
もし実機にインストールした人がこの記事を読んでいたらEl Capitanでも
AppleJackが使えるか確認して情報を教えてほしい
多分同じだと思うので使えるはず…



2015年7月18日








システムメンテナンスのtips

anchor

ことえり風のキールールに変更するTipsはEl Capitanでは使えない…ていうか使えるが危険でお勧めしないが一応方法を書いとく〜Rootlessについて…カンブリア紀の終わりは近づき…

このエントリを書くのがものすごくしんどい。
というかもうMacサイトもMacユーザもやめるかもしれない。
別に嫌気がさしているからじゃない。
動機がなくなってきたから…ということかな。
詳しく書く気力が湧かないので、できるだけ簡潔に書く。

以前にBBSでさくらさんに情報をもらって、その方法を改良してYosemiteの日本語入力を「ことえり風のキーマッピング」に変更するTipsを書いた。
詳しくはこちら。
Yosemiteの日本語入力のキーマッピングをことえり風に戻してみる〜注意は必要だができることが判明した

漢字Talk以来馴染んだことえり風のキー、例えばラ行の入力は
ラ リ ル レ ロ
LA LI LU LE LO

とタイプする。

今ではWindowsでもMacでもLキーは小文字の入力に割り当てられていて、JIS配列、Windows風キー配列もみんなそうなっているから世間的にはそれに慣れた方が汎用性は高い。
どこでキーボード触ることになるかわからないから。

でも慣れてしまったものは仕方がない。
これが使えると使えないとでは、文章の入力のスピードが1.1倍くらい違う。
たった1.1倍と侮るなかれ。1割能率が違うというのはでかい。

それでYosemiteになってからも廃止されたことえり風のキーで入力を続けていた。
ところがEl Capitanになって、この
/System/Library/Input Methods/JapaneseIM.app
のパッケージの中のファイルの書き換えができなくなってしまった。

rootになってGUIやTerminalからもやってみたが
「この操作は許可されていない」
という表示が出て拒否されている。
sudoやsuの権限も拒否されてしまうなんて!
UNIXのsuの権限は神の権限だと教わったはずだ。
その神の権限もついにEl Capitanからは制限されることになってしまった。
rootが唯一絶対神からやおよろずの神に降格してしまった瞬間だった。

それでこのシステム領域の中身の書き換えを禁止している機能はSystem Integrity Protection、通称SIPと呼ばれるセキュリティ機能で
/bin、/sbin、/System、/Applications/Utilities
が制限区域になっている。
これはrubyなどのコード開発者やMacPortなどを使用するユーザ・開発者には大迷惑な機能で、これのために一部のそうした人々が阿鼻叫喚地獄になって
「若者よ、El Capitanにだけはアップデートしてはならん!このことしかと心得よ!絶対にEl Capitanには触れてはいかん!」
などという会話が交わされているかどうかは知らないが、私にとっても大迷惑な機能になっている。

/bin、/sbinが制限されているということはそこにコマンドをインストールすることも当然できない。
だけでなく/usr/localは対象外になっているといっても、プリインストール版ではこの領域は存在しないため制限解除して新規で作成するとか、アップデートのたびに制限解除の手続きを踏まないといけないとか、いろいろ面倒なことになっている。
UNIX開発者なら
「もうMacめんどいから削除してBSD入れる」
ということになってしまうと思う。

/Applications/Utilitiesもユーティリティーアプリを大量にインストールしている私としては、El Capitanにアップデートする前にそれらのアプリをその外に退避させないといけない。
でないと、もう一生アンインストールやアップデートができなくなる。
一部のアプリはパスが変わると機能しなくなって再インストールが必要になるかもしれない。

このバイナリ認証で煮え湯を飲まされたTrimEnablerは代替アプリのDisk SenseiがEl Capitanに対応したようなので問題なさそうだが、冒頭に触れた日本語入力はアップデート時に/System/Library/Input Methods/JapaneseIM.appも上書きされてしまうので、ことえり配列は使えないことになる。

このSIPはrootlessというYosemiteでも一部の領域の制限で使用されてきた、神の権限を上回る超神の権限で守られているらしい。
これを無効化するコマンドは以前から知られていて以下の通り。
sudo nvram boot-args=“rootless=0”

これはnvramというOS起動以前に読み込むファームウエアレベルの設定を、かつてPRAMと呼ばれた領域に書き込むコマンドでrootlessを無効にするというもの。
TrimEnablerはこのrootless無効化で非認証のカーネルエクステンションをシステムフォルダにインストールしてYosemiteに対応していた。

これを元に戻すコマンドは
sudo nvram boot-args=“”
これはnvram(PRAM)に書き込まれたパラメーターをデフォルトに戻すという意味。
PRAMクリア(コマンド+Shift+P+Rキーを押しながら起動、現在の正しい名前はnvramリセットというらしい)と同じ効果がある。

ということはPRAMクリアを何かのはずみでやってしまうと、インストールされたカーネルエクステンションは無効になってしまう。
TrimEnablerはシステムの起動に関わるカーネルをインストールするので、これが無効になってしまうとMac自体が起動できなくなってしまう。
このNVRAMリセットがPRAMクリアの時だけでなく、セーフブートなどの時にも起こることを知らなかったために、ある日突然Macが起動しなくなるという久々の恐怖を味わった体験の詳細はこちら。
MacBook Proが突然「進入禁止」マークを出して起動できなくなった〜YosemiteでSSDを使用してTrim Enablerを使っている場合、セーフブートも危険〜その復旧法

この問題は認証を回避しないでカーネルを更新するDisk Senseiのおかげで解決した。
YosemiteでSSDのTrimを有効にしていると通行止めマークが出て二度と起動できなくなる恐怖の体験を克服〜Disk Senseiがこの問題を解決してくれる

しかしTrimの問題はDisk Senseiのおかげで解決したが、日本語入力を「ことえり風」のキーにする場合、日本語入力のルールファイルを書き換えるためにこの
sudo nvram boot-args=“rootless=0”
を使うと問題が起きる。
「さくら」さんはこのコマンドは動かなかったとのことだが、Webにはこれで回避できるというTipsも書いてある。
このコマンドを使用した場合、TrimEnablerのケースと同じで何かのはずみでPRAMがリセットされてしまうと、日本語入力ができなくなってしまう可能性がある。
ていうか多分できなくなる。

もし何かのログインIDなどに日本語名をつかっていたら、そのログオンは不可能になってしまう。
PRAMなんて何のはずみでリセットされてしまうかわからないあてにならないものだから、これはかなり危険だ。
SIPを根本的に無効化するコマンドもある。
リカバリーモード(コマンド+Rキーを押しながら起動)で以下のコマンドをTerminalで実行。
csrutil disable

元に戻すのは
csrutil enable

これもOS Xのアップデートのたびにおそらく上書きされてしまうのでSIP無効化は解除され、日本語入力はできなくなると思われる。
そうなると解消する方法は再度無効化するか、システムの再インストールしかない。

nvram追記もcsrutilコマンドも、いずれの方法もあまりお勧めできる方法ではない。
このリスクを知った上で、それでもやりたいという人限定のTipsということになる。

なお私は常用している重要なアプリがEl Capitanで動かないとか、先ほどのユーティリティーフォルダの件などの理由により、手持ちのMacはどれもアップデートしていないし今のところする予定もない。
とりあえずVMWare Fusionの中にインストールして評価試験だけはしているが、仮想環境だと上記のコマンドが使えないので効果は確認していない。
「さくら」さんによるとcsrutilの方だけは有効だったとのことだ。





Yosemiteで成功した日本語入力でことえり風のキーを使うTipsが
El Capitanでは使えないとの情報を受け仮想環境上のEl Capitanで試してみた
日本語入力のルールテキストをことえりルールに書き換えて上書きしようとしたところ
以前なら「認証が必要だ」という表示になっていたが「保存できませんでした」と
いわれるだけでパスワードすら要求されなくなってしまった




最初このファイルにまたACLか何かがかかっているのかと思ったがACLは関係なかった
アクセス権はシステムのみ書き込み可能になっているが変更可能じゃないかと試してみた
しかしここからはどうやっても変更できない




そもそもアクセス権変更のアクセス権がないというニワトリタマゴ状態




ACLの時はBatChmodで回避できたので今回も試してみたが
BatChmodを使っても読み書き権限は変更できず
ACL消去などのオプションも効果なしだった




余談だがアクセス権の修復を試してみようとDisk Utilityを起動したところ
El CapitanからDisk Utilityにアクセス権の修復という項目がなくなってしまった




Disk Utilityの見た目が大きく変わったのもEl Capitanの評価に響いているところで
強制マウントボタンがないとかいろいろあれな感じ




First Aidを実行したところカタログデータ、パーティションマップの診断だけをやっているようで
どうやらEl Capitanからはアクセス権修復はシステムがバックグラウンドで自動的にやるので
ユーザは触らなくてもいい…というより触らせないという仕様に変わったようだ




頭にきたのでTerminalを起動してrootになってことえりルールテキストを
日本語ルールテキストに上書きコピーするコマンドを実行した
神の権限発動である…まいったかモータマラン (;´Д`) ハァハァ…と思いきやOperation not permittedという答え
神の権限をも退ける神を超越する何かに守られているということか!ガ━━(゚Д゚;)━━━ン!!




神の権限を超越する超神の権限の正体がこれ、rootless
これで制限された領域はsuでrootになろうが触ることができない
唯一絶対神ゼウスがやおよろずの神ぬらりひょんやだいだらぼっちに変わってしまった瞬間である…
これを無効化するsudo nvram boot-args=“rootless=0”というコマンドを実行してみた




が、仮想環境にはもともとNVRAMという概念がないのでこのコマンドは効果がなかった
セーフブートをしようとするとスクリーン真っ黒のままいつまでたっても起動しない




root権限でGUIにログインするが同じく超越神の権限により
絶対領域のファイル改変は悉く拒否されてしまった
実機ならNVRAMの書き換えがうまくいくのではないかと
「さくら」さんに試してもらったがうまくいかなかったそうだ
結局新セキュリティシステムのSIPそのものを
無効化するcsrutil disableコマンドが有効だったとのこと
リカバリーモードがない仮想環境では打つ手がないということだ
何れにしてもこの方法は何かのはずみでシステムが動かなくなるリスクがあるので
そのリスクを許容できる人だけにしか勧められない手段だ


と、ここまでが長い前置きで、実はここからが本文だ。

ここでAppleはボケだのジョブズが死んでからやることなすことトンチンカンだの批判するのは、実はピントがずれている。

Appleはジョブズが生きていた頃から決められた既定路線上で仕様を変更し続けているにすぎない気がする。

Appleはサードパーティーに続いてユーザもシステム領域からどんどん排除する方針で進んできている。


ユーザが何も考えないで使える環境。

iPhoneのようにただタップしてLINEや動画を楽しむだけのメディア。

Appleが最終的に目指すのはMacという洗練されたUIをまとったUNIX汎用マシンではないと思っている。

OS Xを最終的にiPhoneやiPadのOSのiOSと統合するという道程表があるようだ。

しかもその内容はMacとiOSの良いとこ取りというような生易しいものではなく、OS XのiOS化、MacのiPhone化が最終的に行き着くところらしい。

実際今度の新型MacBookがまさにその目標を体現しているのだが、MacBookはバッテリーはもちろんメモリもドライブも一切あとから変更できないオンボードタイプで、バックヤードのハイスペック機を画面共有で操って重い作業をやらせたりするリモートコントロールマシン、ネットのリソースを操作するクラウドサービスマニピュレーター…というような内容になっている。

あのMacBookにスクリーンタッチをつけて、Finderを廃止し、すべてのアプリの起動はLaunchpadからやるようなOSに変更していくというのがMacの目指しているところなのかもしれない。
まさにキーボード付きのiPadという仕様だ。

Macそのものをハックしたりカスタマイズして使いやすくするような使用は制限されるが、LINEとツイッター、Youtube、SNSを楽しみたいという向きには安定していてつき合いやすいマシンになるだろう。

それは今に始まったことではなくもう何年も前から予兆のあることで、Appleはその流れに反対するどころかジョブズが生きていた頃からその流れを積極的にリードして推進してきた立場だし、そうなるとAppleの行き着く先は…

もはやユーザがハックする趣味のユーティリティーマシンのMacintoshではない。
実用的で多機能なiPadで十分ネットは楽しめる。

最後はMacを殺す

これしかないと思う。

どうやら9年前に書いた文章が本当に現実になってきていると思う。

カンブリア紀以降の世界の鎮静
10年後のPCなど個人用情報機器の世界なんてのを軽く予想してみた

ここまで書くのに本当に時間がかかった。

穏やかな夜に身を任せてはいけない
絶え行く光に向かって、怒れ!怒れ!

…そして死はその支配力を失う…




2015年10月10日



anchor

El Capitanでもことえり風のラ行をLで打つキー配列をRootlessにも引っかからないで実現する方法〜Karabinerを使えば簡単…というお知恵をいただいた<追記あり>

ことのおこりは先日あげた仮想環境でのEl Capitanのレビューで、システムファイルを書き換えてことえりキー配列を復元するTipsがEl Capitanでは実行できない(実行はできるがリスクも伴い、レスキューボリュームがない自家製FusionDriveではSIPの解除もできない)件を書いたこと。
ことえり風のキールールに変更するTipsはEl Capitanでは使えない…ていうか使えるが危険でお勧めしないが一応方法を書いとく〜Rootlessについて…カンブリア紀の終わりは近づき…

これに対してツイッターでMacの手書き説明書ヴェアダルさん、BBSでnya-0さんのお二人から
「Lキーでラ行を入力することえりキー配列を実現したいのならKarabinerを使えば簡単ですよ」
という旨のご指摘をいただいていた。

Karabinerは現在も私のMacBook Proのメニューバーに常駐しているので、お二人のおっしゃる通り導入は簡単だがキーカスタマイズのフィルタリング構文の書き方を考えるのがめんどいなぁ…そのうち時間があるときにじっくり考えよう…とか思っていたら、なんとnya-0さんがそのXMLを書いてBBSに投稿していただいた。

そのnya-0さんのKarabiner向けキーカスタマイズのプライベートXMLが以下の内容。


<?xml version="1.0"?>
<root>
<inputsourcedef>
<name>MY_Ja</name?>
<inputmodeid_equal>com.apple.inputmethod.Japanese</inputmodeid_equal>
</inputsourcedef>

<item>
<name>Old fashioned KOTOERI key</name>
<identifier>private.old_fashioned_kotoeri_key</identifier>
<inputsource_only?>MY_Ja</inputsource_only>
<autogen>__KeyToKey__ KeyCode::L, KeyCode::R</autogen>
</item>
</root>

フィルタリングをどう書いたらいいだろうかと思っていたが、こうなんですね。
ありがとうございます。

実際にYosemite環境で試そうとしてちょっと問題が起きた。
Yosemiteの日本語IM環境の設定ファイルをデフォルトに書き換えようとすると、「アクセス権がありません」と言われて拒否られてしまった。

ひょっとしてこの前のアップデートでYosemiteにも本格的にRootlessが取り入れられてしまったのか…とちょっとひやりとしたが、そうではなくて愛用のCotEditorが今回アップデートからApp Storeのみの配布になって、その条件としてSandboxに完全対応したためシステム領域のファイルの書き換えができなくなった…ということだった。
その解決法はキャプチャー参照。

ここでEl Capitanを導入するとどういうメリット・デメリットがあるかをついでに整理してみた。

El Capitanのメリット
1)思いつかない

El Capitanのデメリット
1)Yosemiteならシステム領域、UNIX領域をroot権限で書き換えができるが、El CapitanではRootlessの制限でSIP領域はほぼ編集不可能
2)cDockなど愛用しているアプリが一部機能していない
3)El Capitan起動中は冷却ファンが異常高回転するなど動作が不安定
4)日本語ライブ変換が使いにくい


と圧倒的にEl Capitanを入れない方向で考えていたが、
1)のrootlessは確かにYosemiteでは制限が少ないが、CotEditorのSandbox化のようにこれからアプリの方も制限がかかるようになる方向なのでアップデートしなくてもいろいろ不自由になっていくのは結局同じこと
とEl CapitanよりYosemiteの方がましともいえない状況なのでアップデートするかも…という非常にネガティブな比較論になってきた。
3)の異常回転についても解決法の情報をいただいているので、これもうまくいくか近日中にテストする。
テストして成果が上がったら、2)の機能しないアプリという積み残しもあるがEl Capitan本格導入ということになるかもしれない。
4)のライブ変換の使いにくさは、そのうち慣れるだろう…慣れなきゃオフにもできるし…





キーの役割を自由に変更できるメニューバーアプリKarabinerの環境設定画面を開く
Misc & Uninstallタブに入ってOpen private.xmlボタンをクリックする




するとFinderでxmlの場所が表示されるので、これをCotEditorなどのテキストエディタで開く




このxmlに上記の構文をコピペする
すでに何か入っている場合もその後ろに追記する形で良い




Karabinerの設定画面に戻ってChange Keyタブに移動する
右上のリロードボタンでXMLをリロードすると追記した名前の新項目が増えているはず




まずこれをYosemiteでテストしようと思って前回のTips
ことえり風に変更していた日本語入力をデフォルトに戻そうとした
ところが「アクセス権がありません」と警告が出て上書きができない




ひょっとしてこの前のアップデートでYosemiteにもRootlessベースの
SIP機能が追加されたのか…とちょっとヒヤッとしたがそうではなかった
問題はCotEditorの方で、今回アップデートからApp Storeのみの配布になって
旧バージョンがあまりに頻繁に落ちるのでCotEditorも最新版をApp Storeから入れ直していた
このバージョンはSandboxに対応してシステム領域のファイルの
書き換えができなくなっていたのが原因だった
そこで昔のインストーラのバックアップから2.0.3を引っ張り出してきた




2.0.3も頻繁に落ちるバージョンだが、テキスト一枚コピペして
上書き保存する間ぐらいは保ってくれてちゃんとシステムファイルの上書きもできた
あらためて旧バージョンもこういうときのために残しておかないとという教訓だ
こうしてなんとか保ってくれて再起動後、日本語入力はデフォルトにもどった
「LA、LI、LU、LE、LO」と入力すると「ぁぃぅぇぉ」と小文字で入力されるようになった




この状態でKarabinerの新規で追加された方のチェックを入れた




するとこちらは再起動もしないでいきなりキーに反映された
もちろん「アクセス権がありません」なんて無粋なポップアップも一切無しにだ
これなら元に戻したいときもワンクリックだしシステムファイル書き換えよりはるかにお手軽だ
同じことをEl Capitanでやるときも特に障害になりそうなところは何もない




といいことばかりは続かない
懸念した通りかなモードでShiftキーを押しながら全角アルファベットを
LRLRLRLRLRLRLR…と入力すると全部Rになってしまった




これは残念ながら「エル」と入力して変換するしかない
めったに使うことはないし何回もやっていたら変換候補の
上位に上がってくるだろうから大きな障害ではないが
Shift+Lキーをまた別キーに割り当てたらいいのかな? そのうち考えてみよう…


<追記>

ここでことえり風のキールールをKarabinerで実現するとかな入力は問題ないが、アルファベット全角入力で問題が起きると書いたら、早速nya-0さんから改良版をBBSにいただいた。
素早いレスポンスありがとうございます。

「ModifierFlagというShiftなどのキーを含めたキーの判定をする部分を、Shiftキーがない状態で、という条件をつけるという方法です。これによって、Shiftキーを押して、Lを押す際の判定が通常の動作に戻るはずです。」

ということで<autogen?>で括った一行に上記条件を追記した改良版がこれ。


<?xml version="1.0"?>
<root>
<inputsourcedef>
<name>MY_Ja</name?>
<inputmodeid_equal>com.apple.inputmethod.Japanese</inputmodeid_equal>
</inputsourcedef>

<item>
<name>Old fashioned KOTOERI key</name>
<identifier>private.old_fashioned_kotoeri_key</identifier>
<inputsource_only?>MY_Ja</inputsource_only>
<autogen>__KeyToKey__ KeyCode::L, ModifierFlag::NONE, KeyCode::R</autogen>
</item>
</root>
これで全角アルファベットも問題なく入力できるようになった。

(あと昨日あげた元コードも一部写し間違えがあったので修正、ゴメンm(_ _)m)




いただいたautogenの行をprivate.xmlに上書き




この状態でXMLをリロードしてチェックを入れなおした




結果ひらがな入力のときにはLキーはラ行の入力になり、ShiftキーとコンビネーションだとLキーになる
何かのはずみで全角アルファベットを入力するときに舌打ちすることもなくなった
さっそくの改良ありがとうございます



2015年10月17日








システムメンテナンスのtips

anchor

ユーザ辞書に余計な変換学習が消しても消しても復活してしまう〜原因はiCloud Driveだったが、復活しないようにする手順をちょっと整理してみた

以前ここで紹介したTipsで、スニペットアプリを使ってやっていたスニペット入力が、システムデフォルトのユーザー辞書でも入力できるという便利機能をずっと使ってこのサイトのタグの手打ちなどに利用していた。
参照↓
OSXのシステムの機能だけでスニペットを使う方法〜意外にお手軽な文書即製術


ところがMavericksあたりからだったと思うがこのスニペット入力をことえりのユーザー辞書に残しておくと、タグのをコピペした時に勝手に該当する文字列をペースト先のテキストで変換してしまう。
それに気がつかないでサイトのレイアウトが壊れてしまっているのに後から気がつくなんて事故もあって、このユーザー辞書のスニペットが邪魔になってきてなかなか便利な機能だったけど泣く泣く削除した。

ところがこの削除したはずのタグの自動変換がしばらくしたら勝手に復活している。

それだけではない。
iPhoneの変換学習と思われる変な辞書とか、入力を間違えて読みのところに変換結果を入れて変換結果のところに読みを入れてしまった逆の辞書データもゴミなので削除するが、しばらくするとこれも復活している。


最初これはまた設定ファイルか何かの復活機能が誤動作しているのかなと思ったが、いろいろ調べた結果iCloud Driveが原因と判明した。
システム環境設定iCloudに入ってiCloud Driveのチェックを外せば復活はしなくなる。
しかし戻せばまた復活する。

どうやらこれはMacのバグではなく、iCloudのバグらしい。

と原因がわかっても、iCloudが対応しないと治しようがないのでiCloud Driveの設定を切ることにした。
日本語変換学習がMacからiPhoneやiPadに自動的に移行する便利な奴だったが、タグのコピーをするたびに誤変換をやらかされたんではたまらないので、この機能は諦めることにした。

この設定を切ってからはゴミ辞書は復活しなくなった。
メデタシメデタシ…


ちなみにこの設定はMavericksの10.9.2にアップデートした時に、ユーザー辞書が消えてしまったため、それを復活させるためにチェックを入れていたのを継承したらしい。
当時はiCloud Driveという名称ではなく書類とデータという名称だった。
10.9.2アップデート時にことえりユーザ辞書がすべて消えてしまう〜iCloudの設定が原因〜まだ尾を引くアップデート時システム環境設定の設定が変わってしまう問題

これを切ることによる影響は日本語辞書を共有できない…以外にKeynotePagesなどのiWorkアプリで作成した書類を共有できないとか、些細な影響でどれもDropboxなどで代替できるものばかりなので問題ない。





そもそもがこの設定を入れるようになったきっかけはシステムのアップデートの時に
ユーザー辞書が全部消えてしまった事件だったのでゴミ辞書を削除した時点でバックアップをとる
取り方はコマンド+Aですべての辞書項目を選択してデスクトップにドラッグするだけでいい
ユーザ辞書.plistというファイルができる




iCloudから一度ゴミを含む辞書データをクリーンアップする目的で辞書データを全部削除した
すべてを選択してマイナスマークボタンで削除する
しかし後ほどの検証でこの方法ではiCloud上のデータは消えないことがわかった
どうもiCloudの辞書データ自体が「不要な項目なんて出るはずがないから
削除なんて同期しなくていいだろう」という前提で仕様決定されている気がする
辞書は増えこそすれ減ることはないという発想なのだろうか?




システム環境設定に入ってiCloudiCloud Driveのチェックを外す




するとMacからiCloud Driveのデータを削除するか聞いてくる
上記のマイナスボタンで削除はものすごく時間がかかるのでiCloud Driveとの同期なんて
どうでもいいという人はこの削除ボタンでサクッと削除してしまう方が早い
こちらは一瞬で消えるが、何回かやってみて消えない場合もある
動作が不安定なiCloudらしい微妙な反応だ




削除ボタンで辞書データが消えなかった人はユーザフォルダの中のライブラリに入って
Documentフォルダの中のUserDictionaryDescripttion.plist
JapaneseInputMethodeフォルダの中身を削除することで綺麗にユーザー辞書データを削除できる




この方法でもユーザー辞書はこの通り真っ白になる




ここに先ほど取ったバックアップファイルをドロップするとユーザー辞書は復活する
このバックアップは何か事故が起きてユーザー辞書が消えてしまった時のためにとっておくとよい




再登録後の保存先は先ほど削除したデータの場所ではなくJapaneseInputMethodeフォルダの中の
ユーザ辞書.dictionarydataというファイルになる
Yosemiteになってことえりが廃止されたりでいろいろ仕様が変わったらしい
なおすべてのiCloud対応デバイスを一度ログオフして上記手順でデータを
削除するというのもやってみたが見事にゴミ辞書が復活してしまった
iCloudは根本的に辞書データ削除に対応していないということなのだろうか?



2015年10月11日








システムメンテナンスのtips

anchor

日本語入力でスラッシュ・バックスラッシュを入力する/キャップスロックで英字を入力/ことえり補強辞書などサードパーティ辞書データをYosemiteで利用する方法(多分El Capitanでも可)

ことえり死亡後のMacの日本語インプットメソードについて、例によって小ネタTips三本立てだよ。

先ずは日本語キーボードを使っている時に誰でも感じるMacの不満。
1)バックスラッシュの入力ができない件

英数入力でバックスラッシュを入力しても「¥マーク」になってしまう。
どうせWebとかでは¥マークに化けるんだからそのままでも別に構わないのだが、
テキストの時は
\\WinMachine\Windows\System32
という具合にちゃんとバックスラッシュで表示したい時がある。

この時に日本語入力で全角バックスラッシュも半角バックスラッシュも英数バックスラッシュも入力可能だ。





先日のユーザ辞書問題を解決するためにあちこちいじっていてこんな設定があるのを見つけた
システム環境設定キーボードペインの中の入力ソースタブに入る
ここにキーボードの/キーや¥キーで中黒を入力するかスラッシュを入力するか
円マークを入力するかバックスラッシュを入力するかの選択がある
スラッシュやバックスラッシュを設定してもoptionキーを
押しながら¥キーや/キーを押したら設定と逆の文字が打てる
スラッシュ、バックスラッシュを頻繁に使う人はここの設定を変えたほうが楽になるはずだ


その2
2)キャップスロックで英数文字・カタカナを打ち分ける





同じくシステム環境設定キーボードの中の入力ソースタブにはキャップスロックの振る舞いの設定もある
Macの場合キャップスロックは役に立たなくて邪魔になるだけの盲腸みたいなもんだとして
殺して使っているユーザも多いと思うがこの設定で少し使えるようになるかもしれない
ここで英字かカナを選択できるので英字入力が必要な人は役に立つかも
願わくば半角カナとかもう少し選択肢が増えればもっと役に立つと思うのだが…
今のところMacにとってキャップスロックは相変わらず盲腸でしかない



小ネタその3
3)Yosemite(そして多分El Capitanでも)で昔のOS9向けのことえり補強辞書など各種サードパーティ辞書を使えるようにする

Mac向けの日本語インプットメソードはいろいろあるにもかかわらずことえりにこだわってきたのは鍛えに鍛え抜いたユーザ辞書を活用したいということもあるし昔から集めて便利に使っていたサードパーティのことえり補強辞書を使いたいという理由も大きかった。
それがMavericksから日本語辞書の扱いが大きく変更されて、サードパーティ辞書が無効になってしまった。
しばらく不便な思いをしていたが、これもNADなどの作者さんのサイトなどにちゃんと利用法が書いてあったのを見ていなかったのが悪い。
以下の方法でOS9時代の辞書もちゃんと現役のYosemiteや多分最新のEl Capitanでも使える。

ただしNADさんの解説によるとYosemite以降は普通辞書はそのまま使えるが、指定変換辞書はやはり無効になっているとのこと。





昔から使っていることえり補強辞書各種のファイルは~/Library/Dictionariesに残っている
外来語を英字で入力するとか四文字熟語辞書とか便利な辞書がたくさんあった
これがMavericks以降使えなくなっていたが使うには辞書フォルダに.dictという拡張子をつける




これを先ほどのシステム環境設定キーボード
入力ソースタブの中の追加辞書のリストにドロップする




するとしばらく読み込みが続いて~/Library/Dictionaries/JapaneseInputMethod
の中に同名の.dictionarydataファイルができている
作者サイトに解説があった通りすべてが変換できるわけではないがかなり救うことができた
古いユーザ辞書.plistデータも読み込まれるとここに保存される




例えば外来語を入力すると言語のスペルを入力してくれる
NADのカタカナ語辞書なんてもの凄く重宝しているのだが
これがMavericks以降すべて小文字しか変換候補に現れなくなった
このように頭文字のみ大文字の言語が一発で変換できる辞書は本当に重宝する
MacのライブラリフォルダをLibraryと打ちたいのに小文字で変換して
わざわざ頭文字を大文字のLに直す手間が「最初からLibraryとタイプしても手間は一緒」
と情けない感じだったが一発で入力できるようになったのが本当に嬉しい



2015年10月14日








システムメンテナンスのtips

anchor

iTunesがクラッシュしてOSがフリーズ・再起動したら起動に異常に時間がかかるようになって『The IOUSBFamily is having trouble』のエラーを吐くようになってしまった

ことの次第はこういうことだ。

iTunesのライブラリを同期しようと思い、無線LANネットワーク経由でMacBook ProとMac miniのiTunes LibraryをSyncTwoFoldersでコピーしようとしていた。

それでiTunesが起動したままだと、同期できないのでMac miniの方のiTunes画面共有経由で終了させようとした。

そしたらいつまで経ってもiTunesのフルスクリーン起動時に出てくるグレー画面のまま終了しそうにない。
Mac miniのデスクトップを見ると虹色ボールがぐるぐる回転したまま何も操作できなくなっていた。

めでたくMac miniのMavericks様おフリーズ〜ということでsshからhaltを実行して強制終了した。


ここまでは日常的によく見かける光景である。
(よく見かけるというわけでもないけど割と見かける…)

早速再起動したところ、いつまでたっても白画面のままリンゴマークもギヤアイコンも何も出てこない。
ちょっとOS壊したかなと思って、何度かやってみたがやはりギヤアイコンまでは進むがリンゴマークが出てこない。

経験的にリンゴマークが出てこないのは、ファームウエアレベルで問題を起こしていることが多いので厄介な問題になるケースがある。
さっそくコマンド+Sキーを押しながら起動で、シングルユーザモードに入ってファイルシステムチェック、ディスクチェックを実施しようと思ったら起動時にIOUSBFamilyのトラブルという意味合いのログがずらずらっと出始めた。

詳しくはこの2種類を先頭としたメッセージ。
The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying.

The IOUSBFamily gave up enumerating a USB device after 10 retries.


最初のはIOUSBファミリーのカーネルが重大な問題を起こしているという内容で、二つ目のは10回リトライしたがUSBデバイスの制御を諦めたよという内容。

これと同じトラブルを過去に経験した記憶が蘇ってきた。
詳しくはこちら。
USB機器を認識しなくなった場合の対処法〜IOUSBFamilyの不適合について

この時は不適合デバイスを使用し続けたせいでUSBカーネルがぶっ壊れたので、Appleから入手したUSBカーネルインストーラをインストールしてクリアした。
後かなり前のことで忘れたが手動でうっかりIOUSBFamilyカーネルをバージョンの違うOSのものに入れ替えてしまい、キーボード、マウスなどの操作デバイスが一切使用できなくなるということもあった。
あの時は確かOSを泣く泣く再インストールした記憶がある。

何れにしても結構大事になる可能性が高く、原因はハード故障、HDDの故障、ファームウエア破損などいろいろ考えられる。
今回は外付けハードといったってキーボード・マウスと外付けハードディスクぐらいしかついていないしファームウエアをいじるような危険な作業をしていないのでなんとかソフトウエア的に解決したかった。

年末のクソ忙しい時にTime Machineからの復旧やOS再インストールなどはやりたくないからだ。

あちこちに記述はあるが、大体OS再インストール、カーネル再インストールを推奨しているところが多い中、こういう記述も見つけた。
USBが認識しない-Apple サポートコミュニティ

Mac:USB接続機器(特にHDD)を認識しない、警告が表示される等のトラブル時に試してみることのまとめ。-Macとかの雑記帳

原因にもよるので効果はなんとも言えないが
PRAMクリア(NVRAMクリア)
SMCクリア(ハードウエアリセット)

それで治らないならやはりカーネルかOSの再インストールということになる。





Mac miniのiTunesを終了しようとしたところ
フルスクリーン起動時に一瞬出るクロススキン風の
グレー画面になったままいつまでたっても終了しない
遠隔から操作できなくなったので直接コマンド+Option+Escキー
iTunesを強制終了しようとしたがキー操作そのものができなくなっていた
デスクトップには虹色ボールがぐるぐる回っているだけでいつまでたっても
操作できるようにならないので結局外からsshでhaltコマンドで強制終了した




するとOS起動画面が真っ白のまま、あるいはギヤアイコンのみ回転している状態のまま
いつまでたっても起動できないので何回かやっているうちに起動はできたが
今度はiTunesが起動時にLibraryを読み込むような
動作をしたままフリーズして操作できなくなってしまった
要するにOSぶっ壊れた状態になった模様




システムファイルのアクセス権などが大規模に壊れたのかもしれないと思い
コマンド+Sキーを押しながら起動してシングルユーザモードで修復しようとしたら
IOUSBFamilyがトラブルだのデバイスの表示を諦めただの物騒なメッセージがぞろぞろ出始めた




ハード故障の場合はそうそううまくいかないが、
今回はiTunesのクラッシュによる連れ込みエラーなので
PRAMクリア(コマンド+Option+P+Rキーを押しながら起動)でクリアできた
人によってはSMCリセット、再インストールが必要になるかもしれない
「Macとかの雑記帳」さんによるとシングルユーザモードに入らなくても
sudo dmesgコマンドでもIOUSBFamily関係のエラーは確認できるそうだ
やってみたが確かに出なくなった



今回は、もちろんfsckコマンドやアクセス権修復などを試してみたが全く効果はなかった。
起動に異常に時間がかかり、iTunesを起動するたびにOSがクラッシュしてしまうという問題を繰り返していた。
そして今回に限りPRAMクリア(NVRAMリセット)が効果を発揮して問題は解決した。
事後にメンテナンスの作業は一式実行したが、そういえばPRAMクリアはもう数年やっていなかった気がする。
やっぱりメンテナンス大事。

そして不幸にもこの方法で治らなかった場合はMavericksの10.9.4までのバージョンに限りApple Developerサイトからカーネルインストーラをダウンロードできる。
さらに不幸にもこれより新しいバージョンの場合はOSの再インストールということになると思う。





Appleメニューの「このMacについて」でOSのバージョンを確認する
Mac miniは事情があってMavericksの10.9.5で運用していた




こちらのApple Developerサイト(登録無料)でカーネルインストーラを
ダウンロードできるDownloads for Apple Developers
ただし10.9.4までで私の場合ギリギリアウトだった
これより新しいバージョンのを使っている場合は
やはりOSの再インストールということになる



2015年12月27日













Previous Topへ Next





site statistics
青木さやか