Ari's Blog

Reading makes me rich !

Archive for the ‘Apple’ Category

Appleの下取りプログラム

leave a comment »

 今日、Apple渋谷へ行ってiPhoneを2台下取りに出してきた。娘のiPhoneSE2、私のiPhone8。それぞれ「Apple Trade In」に示されている満額で下取ってくれた。

 なんでそんななんでも無いことを書くのか?それは

  • Appleの下取りプログラムがあってよかった!
  • 最終的にやっぱりApple製品は保証も何もかもAppleで良くて、キャリアのサポートプログラムなんて入らない方がいい!

と明確に記しておきたかったからだ。

 娘のiPhoneSE2なんて、docomo→ahamoにしたら機種変更する時、同じdocomoなのに下取り対象外。知ってた?「docomo→ahamo」なんて同じdocomoなのにキャリアを変えたのと同じ扱いになる。「au→povo」でも同じかもしれないから、同じキャリアでもブランドが異なるサービスへの乗換は、「下取り」についても確認しておいた方が良い。確認して「対象外になります」と言われても、iPhoneなら安心。今回の私のようにAppleへ持ち込めばすぐに下取りしてくれる。現金とかではなく「Appleギフトカード」だが無期限だし、Apple MusicやらApple製品やら次のiPhone買い替え時に使える。

 私のiPhone8はSoftbank→docomoに随分前にしていたから、その時点でSoftbankで入っていたiPhoneの保証プログラムは無効、docomoでの機種変更でも下取りプログラム対象外。

 ここで私が明確に記しておきたいのは以下だ。

  • キャリアの提供するApple製品の保証サービスは入ってはいけない。キャリアで保証に入らずに購入後、AppleのサイトでAppleCareに入るべし!(購入後一ヶ月以内)
  • Apple製品の下取りはAppleの「Apple Trade In」がサービス内容が明確でシンプル、かつ接客はピカイチで早い。買い替え時にキャリアで「下取り対象でない」と言われたら迷わずApple Storeへ!

 今日もAppleの接客はピカイチだった。ありがとう。docomoに問合せした時は唖然としたが、「Apple Trade Inがあって助かった!」という話でした。

Written by arito

2022-04-24 at 15:54

カテゴリー: Apple, iPhone

Tagged with ,

Monterey 12.2 のBluetoothバグに当たった

leave a comment »

Monterey 12.2にしてsleepにしていても、Bluetoothデバイスとの間で、つないだり切ったりを繰り返し、バッテリーがどんどん減るバグに当たった。

朝、macの蓋を開けても起動してこず、指紋のボタンを押してもうんともすんとも言わないので、電源を接続したらバッテリーが0%になっていて「あれれ?」と思った。「なんか暴走プロセスいるかな?」と調べたけど何も怪しいものプロセスはいない。念の為再起動して終日仕事をして、いつものようにパタンとmacを閉じて帰る。

そして翌朝…あぁー!?またバッテリー0%😫。「これは何か起こっている?!」と確信した。調べたらすぐ冒頭に書いたバグがヒットした。

NUTYPE F1キーボードと、会社ではトラックパッドを使っている。もちろん、Bluetooth接続だ。夜、macの蓋を閉じても、Monterey 12.2になったmacは、そのバグのためにこれらのBluettoothデバイスに接続を繰り返し、バッテリーが無くなっていたのだ…。この日から帰る時にはこれらのデバイスの電源を切ることにしたら、症状は改善された。

バッテリーの状況を見ると、だいたい6時間で0%になっている(上左図)。何もしていないのになんて消費量なんだ?!私のmacはこの前キーボードの修理でバッテリーも真新しいものに変わっていて、全然ヘタっていないバッテリーなのにも関わらず!だ。右側の図は、Bluetoothデバイスの電源を切って帰った時のバッテリー残量の推移だ。なんだかんだ12時間で20%くらいは減るみたいだけど違いは明らかだよね。

それ以来、本件を改善したOSアップデートを待ち望んでいるが、なかなか出ない…。影響が特定の条件でmacを利用する人に限られていて、対処方法があるからだろうか?確かに、MacBookなんだから、外付けのキーボードとかトラックパッドとか使う人、その必要がある人は少ないのかも?でも、バタフライキーボードは最悪だし、この前、無料で修理してくれたけど、製品上の問題でまたダメになることは間違えないような代物だし、自分にとってはキーボードは生産性には絶対必須なものだし、デスクワークでの快適な仕事空間を実現するのに、トラックパッドも地味に良い。(拡張ディスプレイももちろんだが、自分的には一つのことに集中する系の仕事なので、マルチディスプレイより鮮明で大きいディスプレイが一つの方が好き)

早く対応したパッチ出して欲しい…個別でいいから…

Written by arito

2022-02-06 at 14:23

カテゴリー: Apple, Mac

Tagged with , ,

MacBook Proのキーボード修理に出してみた結果

with one comment

 私のMacBook Proは2018年のもので、例の悪名高き?バタフライキーボードで、買ってから2年もしないうちにキートップの印字はハゲハゲだし、チャタリングが激しくなり、かなりのストレスになっていた。バタフライキーボードの薄ーい打感にはだいぶ慣れてきていたが、どうにもチャタリングの激しさが仕事に支障をきたしてきたので、外付けのキーボードをずっと使っていた。この外付けのキーボードがあまりにも秀逸で、もはやMacBookのキーボードはほとんど使うことがなくなり、修理もせずに放置していた。修理に出さなかったのには、そもそもバタフライキーボードそのものを違う仕組みのキーボードに交換することはできず、根本的には直らないので、修理したとしても結局まだ2年くらいで同じ状態になってしまうだろう…ということだからだ。

 この問題はAppleも認識していて、「キーボード修理プログラム」なるものもキチンとある。(この修理プログラムが発表されるまでにずいぶん時間がかかったらしいが…)バタフライキーボードを採用されているMacBookは全てがこの修理プログラムの対象なので、私のMacBook Proももちろん対象である。ただ、対象機器であっても、当然この対象となる「期間」が設定されている。「最初の小売販売日から4年間」である。

 さて、先日(9/15)の夕方、意を決してAppleへ行って修理に出してきたのだが、「なぜ今更このタイミングで?」というと、前述の4年間がもうすぐ訪れる、Apple Careの保証期間(購入から3年間)がもうすぐ経過する、という2つの理由からである。

 本記事を書いているのは、その結果がとてもラッキーだったからである!最近のMacBookの構造を良く理解している人には当然といえば当然だが、知らなかった私にはとてもラッキーなことが起こったのだ!それは…

 バッテリーも一緒に新品に交換されてキタ━━━━(゚∀゚)━━━━!!

のだ!これは、最近のMacBookのバッテリーが本体と一体型になっていて取り外せない構造になっていることに起因している。キーボード交換ということは、ディスプレイ以外の本体部分をまるごと交換することになるのだろうが、SSDやメモリは取り外せるが、バッテリーは取り外せないから、キーボードと一緒に交換になってしまうのだ。ほぼ3年使ってだいぶヘタってきたバッテリーがApple Care切れる寸前で新品に交換されるとはラッキーだ!「ナイス!俺!」と自画自賛😆

 高いお金払っているんだから…と思いつつも、いつもAppleのサービス内容にはとても満足できる。今回もそれを修理結果とともに書いていく。

 まず、その修理スピードだ。9/15に夕方にAppleに修理に出したので、工場への発送が翌日9/16になる。そして到着が9/17になる。その通り、9/17朝にAppleから「工場に到着した」旨のメールが来る。夕方には今度は「修理完了して発送した」とのメールが来るではないかっ?!「え?はやっ!」ってそして9/18の10:00頃には手元にクロネコヤマトで到着した。配送業者がクロネコヤマトというのも嬉しい。開封すると、専用の緩衝材に包まれた私のMacBook Proが帰還した!このパッケージにも安心感があるのがさすがAppleである。その納品書の内容を見て「はっ!」と気づいたのだった。「キーボード、バッテリー一体型」と。

 もはや私の頭はキーボードなんてそっちのけであった。返ってきたMacBookの蓋を開けると大きな起動音。ログインしてすぐさまシステムレポートを参照する!?そして…

 「おぉー!充放電回数がゼロー!」間違えない!バッテリーも一緒に新品に交換されている!やったー!ラッキー!ということになったのである。もちろん、キーボードも交換されているので、キートップのハゲはもちろんなくなり、新品のつや消し感のあるキートップが復活し、タイプしてもチャタリングはしなくなっている。まぁ、チャタリングはしなくなったけど、前述した通り、今使っている外付けキーボード(NUTYPE F1)が秀逸過ぎるから、外付けキーボードを使い続けるんだけど。

 あともう一つ。今回は、「キーボード修理プログラム」の対象だから、Apple Careに入っていなくても無料で修理出来ただろうけど、その費用を見ると、やっぱりApple Careに入っていて良かった!とも思えた。なにせ、\62,300が無料だからね!

 以上、MacBook Proをキーボード修理に出してみたら、この上なく満足な結果になった、という報告でした。

起動時、サードパーティーのbluetoothキーボードが機能しない問題への対処

leave a comment »

最初に書いておくが、ここに書いてある「対処」は、FileVaultをオンの場合での話であり、そして「根本的な対処ではない。Macを基本はスリープ運用し、必要な時だけ再起動する、という運用をしている人であれば以下に記載した対処が「有効な運用対処」となりえるだろう。FileFaultをオフにしてもいいなら、FaileVaultをオフにすれば根本的な対処となる。

 NuType F1を喜んで使っていたのだが、実は一つだけ問題があった。使い始めてからはじめてMacを再起動した後から気づいた問題だ。それは、起動時の最初のログインパスワードを入力する時、NuType F1ではうんともすんとも言わないのである。起動時の最初のログインだけMacBook Proのバタバタバタフライキーボードで入力してログインしてからでないと、NyType F1が使えるようにならないのだ!純正のマジックキーボードでは、最初のログインの時から使えるのに!だ。これはAppleの罠だ。あくまでも純正品を使わせようとするAppleの罠だ。Appleの純正品は悪くはないが、サードパーティーに明らかに劣る部分がある。キーボードは特にそうだ。NuType F1の方が打感も機能も断然上だ。

 最初は「まぁいいか…」と思っていたが、やはり我慢がならなくなってきた。調べると、FileVaultというMacのファイルシステム暗号化の仕組みが原因らしい。この記事に書いてあるように、FileVaultを無効化したら確かに起動後の最初のログインでも、NuType F1が機能するようになった。
※正確には、この記事に書いてある事象は、私の事象とは少し異なる。純正のマジックキーボードでもログイン時に入力できなかった、とある。

 これで一件落着!とならないのが技術者の性(さが)である…。私が使っているのはMacBookである。持ち運ぶのである。それなのにファイルシステムを暗号化しないなんて…。もちろん、自動ログインは無効にしてある。だが、ファイルシステムが暗号化されていないと、ディスクを取り出されて外付けにされたら、中身は労せずして丸見えである。私がMacBookを盗まれて、あるいはどこかへ置き忘れて誰かに持って行かれ、ディスクを抜き取られて中身を漁られる…なんて確率は万に一つも無いのは分かっている。だが、盗られた時の不安やリスクを考えれば、持ち歩くデバイスは暗号化されていないと安心できない。いや、怖くて持ち歩けない!今ってそんな時代…。

 そしてさらに調べた。そして、私の症状、希望とズバリ同じ案件でかつ、解決策が示されている記事を発見した!これだ!

 質問者はMacBook ProとMac miniを持っていて、それをロジテックのMK850をそれぞれにbluetoothで接続して使っている。MK850はApple純正のキーボードと違って、bluetoothで3台のデバイスに接続し、切替えて使えるので、MK850の一台でMacBook ProとMac miniをコントロールできるのだ。だが、この人もやはり起動後の最初のログイン時は、純正のマジックキーボードでログインしないと、MK850が使えるようにならない、と助けを求めている。

 解決策を示してくれている人のコメントによると、「FileVaultの問題のようだ」と言っている。解決策の一つとして、最初の「FileVaultログイン画面を迂回する」と言っている。

 ちょっと解りにくい話だが、FileVaultを有効にしている場合の、起動時のログイン画面(らしきもの)は、一般的なユーザID/パスワードを入力する画面のようで、実態は全く違うのだ。FileVaultで暗号化されているファイルシステムの暗号化を解く認証画面なのだ。Windows10でBitLockerを有効にしてPIN設定をすると、起動時にPINの入力画面が出る。それがMacでFileVaultを有効にしている時のログイン画面と同じ、と考えてくれれば少しイメージが湧くかも。(正確には、Windowsの場合、PINを求められるのはOS起動前だが、Macは起動後だ。また、Macはその後にさらにログインパスワードを求められることはない)

 話が横道にそれて長くなってしまったが、解決策は、次回の再起動時にFileVaultの暗号化解除画面を迂回する、ということだ。私は自動ログインを無効にしているので、見た目は「普通のログイン画面」なのか「FileVaultの暗号化解除画面」なのかは区別がつかないが、以下のコマンドを打つことで、再起動時のFileVaultの暗号化解除を求める処理は迂回され、通常のログイン画面が出るので、起動時からNuType F1が使えるのだ。なんだか何言っているのか?意味分かんないかもしれないが、コマンドは以下だ。

~% sudo fdesetup authrestart

 再起動が必要になったときは、リンゴマークから再起動するのではなく、このコマンドを打ち込むのだ。まずsudoに対する自分のパスワードを聞かれる。次に(おそらくバイパスする)ユーザー名を聞かれるので、自分のアカウント名をタイプする。次に再度そのユーザのパスワードが聞かれる。するとMacは再起動する。するとFileVaultは有効だが、ファイルシステムの暗号化解除の画面を迂回し、普通のログイン画面になっているので、ログイン時からNuType F1が使えるようになっている。すぐに再起動したくないなら、以下のようにオプションを付けると、再起動はされず、リンゴマークから再起動した最初の一回だけFileVaultの暗号化解除画面を迂回する。

~% sudo fdesetup authrestart -delayminutes -1
Password:
Enter the user name:foo
Enter the password for user ‘foo’:
~%

 既に「ん?」と思われているかもしれないが、再起動する前にいちいちターミナルからコマンドを打たなければならない。あるいは、再起動してログインしたら、まずこのコマンドを打ち込んでおくとか。そうすれば、うっかりリンゴマークから再起動してしまっても、ログイン時にあたふたすることは無い。しかし、そういった運用をしないと、毎度再起動後は有線もしくはUSBキーボード、あるいはApple純正品のマジックキーボードが必要になる、ということだ。なんでApple純正品のbluetoothキーボードだけが、FileVaultの画面で利用できるのか?全く理解不能である。Apple製品だけデバイス認証的なことをしているのだろうか?本当に止めてほしい。ちなみに、HHKBでは正式にこんなことが書いてある

Written by arito

2020-07-25 at 00:47

macOS版Cisco AnyConnectは多段VPNはできない仕様

leave a comment »

何言っているか分からない表題だが、それをこれから書く。

在宅勤務が「常識」になりつつある昨今、会社にVPNつないだら社内のどのサーバにもアクセスできる、なんてことにはならない。さらにセキュアな環境へはさらにVPNして、さらにゲートとなるサーバに入って…と延々と、そしてそれぞれの「関所」の「鍵」をもって通り抜けていく必要がある。

ところが、Cisco AnyConnectでSSL VPN接続した後、さらにSSL VPN接続しようとすると、SSL VPNは接続できるが、AnyConnectがクライアントのルーティングテーブルの変更をブロックしてしまうため、VPNの向こう側にあるサーバへの経路がなくアクセスできないという現象が発生する。Windows版ではこのようなことは発生しないが、macOS版では発生する。おそらく、Linux版もmacOSと同じ仕様と思われる。自分でroute addしても、逆にroute deleteしてもAnyConnectでSSL VPNした後ではルーティングテーブルを変更できないのだ!?AnyConnectでSSL VPNを切断した後なら、もちろん、どんなめちゃくちゃなルーティング設定でもaddもdeleteもできる。

VPN後に想定しない場所に自由に行かせないための?セキュアな仕様なのかもしれないが、Windowsではそれができる理由が分からない。バグとまでは言わないが、

  • プラットフォームによって仕様が違う
  • 最も利用者が多いWindowsプラットフォームの仕様が最もゆるい

というのも解せない。

そんなこんな(AnyConnectは使えない)がかなり時間かかってしまった…。さてさて、ではどうするか?世の中には素晴らしい人がいるもので、OpenConnectというOSSなAny ConnectのSSL VPNをサポートしたVPNクライアントソフトがあるのだ。JuniperやPaloのSSL VPNもサポートされているらしい。(もちろん公式ではないけれど)

これを使ってSSL VPN接続し、さらに次のSSL VPN接続してから最初の「関所サーバ」へ接続することができた。前述したように、クライアント(macOS)のルーティングテーブルがロックされるなんてことがなくなったからだ。

1件落着したところで、簡単にOpenConnectの使い方を書いておく。

1.インストール

$ brew install openconnect

以上。

2.接続方法

$ sudo openconnect SERVER –user=”username

以上。
斜体字は環境によって適宜変更するところ

でも、これだと、端末上で3回インタラクティブなやり取りが発生する。

1回目:sudoのパスワード
2回目:サーバへの接続確認
3回目:SSL VPN接続するために指定したユーザのパスワード

以下の対処をそれぞれすると、一度もインタラクティブなやり取りせずに接続できるようになる。詳細はここを参考にした。※今のOpenConnectは、「–no-cert-check」オプションは使えない

「1回目:sudoのパスワード」への対処:

$ sudo visudo

%admin    ALL=(ALL)    NOPASSWD:    /usr/local/bin/openconnect
を追記する

「2回目:サーバへの接続確認」への対処:

接続すると、

Server certificate verify failed: signer not found
Certificate from VPN server “SERVER” failed verification.
Reason: signer not found
To trust this server in future, perhaps add this to your command line:
–servercert pin-sha256:hogehogefugafuga12345678910hogehogefugafuga
Enter ‘yes’ to accept, ‘no’ to abort; anything else to view:

とプロンプトが出たところで「yes」タイプするのだが、上記に書いてある通り、「将来的にこのサーバを信頼するなら、コマンドラインに次のように追加する」とある。すなわち、コマンドラインに
–servercert pin-sha256:hogehogefugafuga12345678910hogehogefugafuga
オプションを追加するのだ。

「3回目:SSL VPN接続するために指定したユーザのパスワード」への対処:

これは、openconnectのマニュアルにもある通り、パスワードを標準入力から受け取る「–passwd-on-stdin」というオプションがあるから、このオプションをつけて、パイプでパスワードをopenconnectへ放り込めばよい。

かくして出来上がったコマンドラインが以下である。

echo “PASSWORD” | sudo openconnect SERVER –passwd-on-stdin –servercert pin-sha256:hogehogefugafuga12345678910hogehogefugafuga

 

Written by arito

2020-04-23 at 21:15

カテゴリー: Apple, セキュリティ, Linux, Mac

Tagged with ,

ssd(APFS) to ssd(APFS)

leave a comment »

iMacで内蔵のHDDは遅いので、外付けのSSDにシステムをコピーし、SSDの方を起動ディスクにして快適な生活を送っていた。が、数年前はSSDは高価であり(今もそれなりに高価)、256GBのサイズで、あまり使わないファイルをアーカイブ的に内蔵の遅いHDDに置いて、256GBのSSDを節約しながら使ってきた。

が、さすがに容量が逼迫してきた。いよいよダメ…ってなってからでは、だいたい半端なく右往左往しなければならなくなるので、サクッと512GBのSSDを買って鼻歌を歌いながらmacOSのディスクユーティリティーを使ってコピー始めた。

内蔵のHDDから256GBのSSDへシステムを移すときには、512GB→265GBだったので、内蔵のHDDのパーティションを切って256GB以下にシステム部分を縮めてから…とか手間だったけど、今回は256GB→512GBなので、鼻歌を歌いながらコピーが終わるのを待っていた。

があっ!!!最後にエラー…

APFS inverter failed to invert the volume – 無効な引数です(OSStatusエラー22)

あれ?たまたま調子悪かった?とか思ってもう一度最初からやり直してみても、同じエラー。しかも、数時間かけてファイルをコピーし終わって最後の処理でエラーする。調べると、どうもbootボリュームの処理で、High Sierra以降のバグ(あえてバグという。バグ以外の何物でもない!)で、APFSのbootボリュームが見えないことが原因らしい。これは、APFSに新規にmacOSをインストールする時も同様らしい。以前のHFS+ではこの問題は発生しない。High Sierra以降に導入されたAPFSでのみ発生する。このバグが未だに解決していないって、みんな困らないのだろうか?何故だろう?もっとたくさんの問題報告がされて、AppleでFIXされてもいいのに…。

※正確に言えば、High Sierra以降のディスクユーティリティーがAPFSにキチンと対応できていない、というバグ。APFSは悪くない。悪いのは対応していないディスクユーティリティ。

色々と調べると、High Sierra以前のインターネット復元起動で起動とか、Carbon Copy Clonerを使うべし、とかある。新規インストールして1から構築し直すなんて面倒すぎるし、C.C.Cなんてツールを使うのも抵抗がある…。さらに調べていくと、これでいいじゃん?!というか、この方法は*NIX屋な私の得意な方法じゃん?!というサイトを発見。(でも、Mac固有のコマンドの働きや意味は知らないので、だいぶ怪しい、いや、怖い感じの部分あり…)

下のリンクのAppleのコミュニティサイトにあった回答(英語)を、上の方が実際に自身の環境で実施した内容を詳しく日本語で書いてくれている(ありがとうございます!)ので、基本的には上のリンクのページを見ればいい。ただ、一箇所、sudoしないと「権限がない」と怒られるところがある。

ということで、私もやってしてみた!😆

今回、私は「ssd2」という名前を新しいSSDへ付けた。また、内蔵のHDDと外付けのHDDがあって、今は外付けのHDD(ssd1という名前)からmacOSを起動している。そこにさらに外付けのSSD(named ssd2)を接続して、外付けのSSD→外付けのSSDでコピーをする。そういったディスクの関係上、ディスクレイアウトやブートパーティションの場所(数字)が異なる。できるだけ出力そのものを記載するが、全く理解できない人はこの方法を実行するのは激しく推奨しない。もちろん、作業開始前にTimeMachineでバックアップを取得するのは必須だけど、もし失敗して正常に起動できなくなった時に、TimeMachineから起動できるのか?そもそも、バックアップディスクが見えるのか?とかとっても不安な操作だし、途中でエラーしたら元に戻れるのか?もかなり怪しい。ブートパーティションを切り替えてしまうから、その後は後戻りできないのでは?とか…。そんな不安を他所に、問題なくできたのでこの投稿をしているわけで😆


まず、現状の確認。

dfの出力結果:

$ df -h
Filesystem      Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk3s1   238Gi  172Gi   65Gi    73% 1167626 9223372036853608181    0%   /
devfs          199Ki  199Ki    0Bi   100%     688                   0  100%   /dev
/dev/disk0s2   139Gi   85Gi   54Gi    62%  952329          4294014950    0%   /Volumes/iMac HD
/dev/disk0s4   326Gi  234Gi   92Gi    72% 1721544          4293245735    0%   /Volumes/iMac HD 2
map -hosts       0Bi    0Bi    0Bi   100%       0                   0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0                   0  100%   /home
/dev/disk2s2   238Gi  232Gi  6.5Gi    98% 1616882          4293350397    0%   /Volumes/TRANSCEND
/dev/disk5s1   477Gi  832Ki  477Gi     1%      77 9223372036854775730    0%   /Volumes/ssd2

diskutilの出力結果:

$ diskutil list
/dev/disk0 (internal, physical):
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *500.1 GB   disk0
1:                        EFI EFI                     209.7 MB   disk0s1
2:                  Apple_HFS iMac HD                 149.0 GB   disk0s2
3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
4:                  Apple_HFS iMac HD 2               350.1 GB   disk0s4

/dev/disk1 (external, physical):
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *256.1 GB   disk1
1:                        EFI EFI                     209.7 MB   disk1s1
2:                 Apple_APFS Container disk3         255.9 GB   disk1s2

/dev/disk2 (external, physical):
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *256.1 GB   disk2
1:                        EFI EFI                     209.7 MB   disk2s1
2:                  Apple_HFS TRANSCEND               255.7 GB   disk2s2

/dev/disk3 (synthesized):
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      APFS Container Scheme –                      +255.9 GB   disk3
Physical Store disk1s2
1:                APFS Volume ssd1                    185.0 GB   disk3s1
2:                APFS Volume Preboot                 22.8 MB    disk3s2
3:                APFS Volume Recovery                517.9 MB   disk3s3
4:                APFS Volume VM                      20.5 KB    disk3s4

/dev/disk4 (external, physical):
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *512.1 GB   disk4
1:                        EFI EFI                     209.7 MB   disk4s1
2:                 Apple_APFS Container disk5         511.9 GB   disk4s2

/dev/disk5 (synthesized):
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      APFS Container Scheme –                      +511.9 GB   disk5
Physical Store disk4s2
1:                APFS Volume ssd2                    852.0 KB   disk5s1

1.ssd2のマウント

まぁ、ディスクユーティリティでssd2にAPFSパーティションを作成したから、マウントは最初からされているので、同様にしている場合はこのコマンドは不要。

$ sudo vsdbutil -a /Volumes/ssd2

2.コピー元(ssd1)からコピー先(ssd2)へ全てコピー

私は180GBくらいあったが、3時間ちょっとかかった。

$ sudo rsync -xrlptgoEvHS –progress –delete / /Volumes/ssd2

3.コピー先のディスク(ssd2)にboot Volumeを作成する

前述の「diskutilの出力結果」からすると、今、起動しているディスク(ssd1)はdisk3にある。disk3s2が「APFS Volume Preboot」となっているので、今はここがboot Volumeになっている。で、コピー先のディスクはdisk5になっている。disk5s1に「APFS Volume ssd2」というのが見えるだろう。

※心の中で、「このコマンド打った後、後戻りできないんだろうなぁ」と思った…

$ diskutil apfs addVolume disk5 apfs Preboot -role B

※「作成すると同時に/Volume/Prebootにマウントされる」らしい…。

4.コピー先にできたboot VolumeのUUIDを確認する

$ diskutil info disk5s1 | grep “Volume UUID”

※すみません、UUIDをメモるの忘れてしまいました。数字、アルファベット大文字、ハイフンで構成される36桁?の文字列です。コピー元(旧)のboot VolumeのUUIDを仮に「SSD1-UUID」、コピー先(新)のboot VolumeのUUIDを仮に「SSD2-UUID」としてこの先を表現させてください。

5.作成されたboot VolumeにUUID(新)からなるディレクトリを作成する

$ sudo mkdir /Volumes/Preboot\ 1/SSD2-UUID

※参考にしたサイトではいずれも「sudo」使っていませんが、使わないと「権限がない」とエラーします。(root権限が必要)

※私の環境では、新しいboot Volumeは「Preboot 1」になり、旧boot Volumeは「Preboot 2」となった。なんでそうなっているのか?この時によく状況を確認すればよかったのだけれど、そこら辺の状況を取るのを忘れたorz…。実は、そうなっていることに気づいたのは、この後の手順のVolume地点を指定するコマンド打ったらエラーして、ものすごい冷や汗を流しながらエラーを読み解いている時に気づいたのだ…。「やっちまったぁ!」と思ってものすごい焦っていたので、ログを残す余裕がなかったのだ。そういうときこそ、証跡を残すべきなのに…。

※コマンドラインでスペースの入ったディレクトリを指定する場合は、スペースを「\」でエスケープする必要があるので、そのつもりで読んでください。

6.コピー元の旧boot VolumeをマウントしてUUIDを確認する

$ diskutil mount disk3s2
$ diskutil info disk3s1 | grep “Volume UUID”

※「disk3s2」と「disk3s1」と微妙に違うがタイポではない。疑問に思ったら、冒頭の「diskutilの出力結果」の内容を確認してほしい。

7.コピー元からコピー先へ boot Volumeをコピーする

$ sudo rsync -xrlptgoEvHS –progress –delete /Volumes/Preboot\ 2/SSD1-UUID /Volumes/Preboot\ 1/SSD2-UUID

8.コピー元、コピー先両方のboot Volumeをアンマウントする

$ diskutil unmount disk3s2
$ diskutil unmount disk5s2

9.コピー先のデータおよびOS用ボリュームについて、prebootを更新する

※正直、このコマンドが何をしているのか?何をするためのコマンドなのか?皆目理解できません。参考にした日本語サイトでは実施していますが、大本の英語サイトでは実施していません。

$ diskutil apfs updatePreboot disk5s1

10.boot地点を指定する

$ sudo bless –folder /Volumes/ssd2/System/Library/CoreServices –bootefi

11.ダイナミックローダ(dyld)の共有キャッシュを更新する

$ sudo update_dyld_shared_cache -root /Volumes/ssd2 -force

12.いるかどうか分からない神様に祈りながら再起動する

「システム環境設定」→「起動ディスク」でコピー先のディスクが表示され、そっちから起動されることになっているはずだが、改めて、コピー先のディスク(ssd2)を指定して「再起動」ボタンを押す。

いるかどうか分からない神様があなたの祈りを聴いてくれたなら、何事もなかったかのように、なんのへんてつもなく、さっきまで起動していたのと何ら変化のないデスクトップが見えることでしょう。でもそれが新しいディスクから起動されていることを確認して、クツクツと湧いてくる「やったぜっ!」って思いを噛み締めてください。


お疲れさまでした…。

それにしても、こんな作業もう二度としたくない。早くAPFSに完全対応したディスクユーティリティーにしてくれっ!Appleさんっ!

iMessage の履歴を保存する2

leave a comment »

Written by arito

2018-05-01 at 13:05

カテゴリー: Apple, iPhone, Mac, Uncategorized

Tagged with , , ,

iMessage の履歴を保存する

with one comment

夜勤中に何を一所懸命やってるんだ?と思いつつ、ずっと気になって「やりたい!やらねば!」と思っていたことを調べはじめてしまったから仕方ない。

iMessage の履歴を保存したかったのだ。ソフトインストールしてテキストでエクスポート云々とか、メッセージの DB をどこぞのサイトへアップして…とかはどうもね…と思っていたのだが、iMessage の履歴は SQLite 形式の DB で保存されているってことが分かったから、そりゃもう「DB から直接引っこ抜けばいいでしょ!」と思ってやってみた。

※私は UNIX 屋なので、面倒な Finder 使わないでコマンドでやってしまう。意味不明な部分があるかも知れないけど、そこは適当に Finder 操作に置き換えて読んで。

必要なものはこれだけ。SQLite の DB の中身が見れるツール。これ(DB Browser for SQLite)でいいでしょ。よくメンテナンスされているみたいだし。もちろん、excel に保存するなら MS-Excel が必要。

iMessage は、~Library/Messages/chat.db が本体なので、ぶっ壊してもいいようにデスクトップへコピーしてコピーした chat.db を DB Browser for SQLite で開くことにする。

~% cp ./Library/Messages/chat.db ./Desktop/

DB Browser for SQLite を起動して、このデスクトップにコピーした chat.db を開く。メッセージの内容は、その名も「message」というテーブルに保存されている。「Browse Data」で message テーブルを開いてみて保存したい列を決める。メッセージ自体は「text」列に格納されているから、それは必須だな。後は「いつのメッセージか?」が分からないと意味ないから、「date」列。開かれた日付とか、配信された日付とかの列もあるけど、どっちでもいいからとりあえず「date」列。あとは、自分のメッセージか?相手のメッセージか?というのが分かるといいので、「is_from_me」列も。とりあえずこの3列あればいいかな。誰々とのやりとりとか絞り込みたい場合は、誰かとのメッセージの内容の「handle_id」の値を調べて、それで絞り込めばいい。例えばこんな具合。

select
datetime(message.date/1000000000 + strftime(“%s”, “2001-01-01″),”unixepoch”,”localtime”) as date_JST,
text as messages,
is_from_me
from message
where handle_id=72;

「date」列は、UNIX Epoch なんだけど、1970-01-01 からにすると、おかしな年が出て来る。調べてみると、どうも 2001-01-01 からにするとピッタリっぽいから、上記はそのようにしている。datetime のところはそのまま使ってくれれば日本時間でピッタリのはず。

これを「Execute SQL」で実行すると、結果が中段に出てくる。こんな感じ。

スクリーンショット 2017-12-30 2.57.22

で、中段に表示されている内容を全選択&コピーして excel に貼り付けたら出来上がり!後は excel の中で煮るなり焼くなりして好きなようにすればいい。

いやぁ、久しぶりにいい仕事したわぁ…?

 

Written by arito

2017-12-30 at 03:29

カテゴリー: Apple, iPhone, Mac

Tagged with , , , ,

さよなら Yahoo! 天気

leave a comment »

カレンダーアプリ、Yahoo!天気、tenki.jp アプリは開かないけどホーム画面に居続けた。アプリを開かなくもバッジ機能と表示だけで知りたいことが分かったから。

  • 日にち、曜日
  • 最高気温
  • 降水確率

バッジが出ないんじゃぁこれがわからない。Apple の仕様変更に対応したことが理由らしいので、tenki.jp も出なくなってしまうんだろうか…。

ホーム画面見ただけで分かる情報って、普段は気にしないけど、なくなるととっても痛いんだよなぁ…。

Written by arito

2017-10-17 at 15:25

カテゴリー: Apple, iPhone

Tagged with , , ,

AirPods の進化

leave a comment »

iOS 11 になって一番嬉しかった&便利になったのは、AirPods のダブルタップの時の動作が増えたこと。しかも、左右それぞれに設定できるようになった。

今までは左右別々の設定はできなかったし、一曲進める、戻るは無かった。

右側のダブルタップは一曲進めるで鉄板。左をどうするか?停止/再生か?一曲戻るか?

まずは「一曲戻る」に設定してみて、使い勝手を確認することにした。外せば止まるし。

後、私が望むことは以下。欲張りでごめんなさい。でもセンサーチップが入ってるのだから、今回みたいにソフトウェアで動作を追加できるはず!

  • 音量の調節
  • シングルタップによる動作追加

例えば、

  • シングルタップは停止/再生
  • 右連続タップで音量アップ
  • 左連続タップで音量ダウン

とかできたらもう完璧。全然できそうなんだけどなぁ。Apple さん!よろしくお願いします!

Written by arito

2017-09-21 at 00:44

カテゴリー: Apple, iPhone

Tagged with , ,