結構前からカクカクしだしたこと、長らくアップグレードの繰り返しでいらないソフトや設定も大量にあることから、一度クリーンインストールしてみるかなーと思い立ってやってみました。その備忘録です。
クリーンインストールすると、デスクトップがスッキリしますね!
さらにものすごく安定度がまして、速度もアップしました!
参考サイト
今回参考にさせていただいたのは、Google プロダクトエキスパートでもあるiSchool合同会社の
伊藤さんが書かれたブログです!とても助かりました!
 
最初にOSがすでに macOS 10.15 になっているとします。
- MacBookAir 13inch
 
- OS: macOS 10.15
 
STEP 1. バックアップ
TimeMachine でシステムまるごとバックアップします。
- Macintosh HD(OS)
 
- Macintosh HD - Data
 
- Recovery
 
の3つのボリュームがバックアップされているはずです。本当に保存されているか確認しておきましょう。また TimeMachine の例外に設定しているフォルダがあるなら、それを一時解除しておきましょう。筆者は Parallels Desktop の仮想イメージを対象外(100GBぐらいあって毎回 Time Machineでバックアップとるのがうっとうしかったので)にしていたのを忘れてました。まぁかなり上のバックアップはあるのでそこからやり直しかなー。
STEP 2. 復元するものを予めリストアップしておく
完全にクリーンインストールするならバックアップしたデータのみ気にすればよいです。とはいえ、一部再インストールが面倒なものは設定ごと復元したいものです。また開発者ならきっとシンボリックリンクや隠しファイルなど沢山あるはず!ならばどういったものがあるのか先に調べておくとよいです。
2要素認証
新しい端末と認識されるので、2要素認証を有効にしているサービスは再度確認が必要です。そのため、それぞれの確認コードが発行できる状態か確認しておくとよいです。
シンボリックリンク
iOSデバイスの同期データとか、写真($HOME/Pictures)は外付けHDDを参照にするように、シンボリックリンクを使っています。それ以外にも、.bash_profile などもオンラインストレージを経由して複数端末で共有しているので、そうした場合にもシンボリックリンクは重宝しています。
隠し属性の表示設定
ターミナルアプリを起動して
defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder
を叩けばよいです。
*逆に非表示にしたければ
defaults write com.apple.finder AppleShowAllFiles FALSE
killall Finder
 
ホームディレクトリ($HOME)
$HOME/Library (隠し属性)について、一部ソフトの再インストールは勘弁してほしいので、復元するものをリストアップしておく。割と沢山あってしんどそう...とはいえ全部復元しなくてもよい。
--> : シンボリックリンク
設定・データ類
- Applications (Parallels)
 
- Documents
 
- Library(隠し属性)
 
- Application Support
 
- Preferences
 
- Alfred 3
 
- MobileSync --> /Volumes/外付けHDD/MobileSync
 
- Google
 
- Mailplane 3
 
- SourceTree
 
- Dictionaries
 
- Firefox
 
- Fonts
 
- Parallels
 
- Safari
 
- Screen Savers
 
- Pictures --> /Volumes/外付けHDD/Pictures
 
ドットファイル
- .bash_profile
 
- .emacs.d
 
- .emacs.el
 
- .emacs --> .emacs.el
 
- .filezilla
 
- .ssh
 
- .tcshrc
 
- .wp-cli
 
 
 
アプリケーション(/Applications)
バックアップからのコピー
- Burn
 
- CotEditor
 
- Dropbox
 
- LiveQuartz
 
- Th-MakerX
 
- Parallels Desktop
 
- Skype
 
- Alfred 3
 
- Atom
 
- Google Chrome
 
- Google Chrome Canary
 
- Google Drive File Stream
 
- FileZilla
 
- Evernote
 
- Firefox
 
- Hex Friend
 
- LINE
 
- Mailplane
 
- Slack
 
- The Unarchiver
 
- UnicodeChecker
 
- VLC
 
- WinArchiver Lite
 
 
再インストール
- Xcode + Handy Graphics
 
- ESET
 
- Homebrew
 
- Microsoft Office(Office 365)
 
- Google 日本語入力
 
- マウスドライバ(Logicool MX Master)
 
- Adobe Creative Cloud
 
- プリンタドライバ
 
- Google Drive File Stream
 
 
まぁなんというか、必要最低限だけでもいろいろあるなぁという感じですね。
STEP 3. USBインストールディスクの作成
を参考に作成。筆者はOSをアップグレードするときには常に、インストーラーを捕獲(インストール開始の表示がでたらアプリケーションフォルダからデスクトップに一旦コピーしておく)して、残しているのでした。
STEP 4. 内蔵ディスクの消去
macOS Cataline インストーラー USB ディスクで起動し(インストーラーUSBディスク を入れて Option 押しながら端末起動すると起動選択ができる)、ディスクユーティリティから次の2つのボリュームを消去する。これでリカバリー領域ごと削除というメッセージがでてきた。おそらくUSBメモリから起動したため。
- Macintosh HD: APFS ボリューム(非暗号)
 
- Macintosh HD - Data: APFS ボリューム(暗号)
 
のような構成にしたくてやってみたら、
- Macintosh HD: APFS ボリューム(非暗号)<OS>
 
- Macintosh HD - Data: APFS ボリューム(非暗号)<OS以外のデータ>
 
- Macintosh HD - Data: APFS ボリューム(暗号)<何も入っていない>
 
というボリュームになって、暗号したものにはユーザーデータが入らなかった。
結局、暗号化するのかしないのかどちらかしか駄目。
こうなった場合には、再度USBインストーラーから起動して、
- Macintosh HD - Data: APFS ボリューム(暗号)
 
のボリュームを削除すればよい。
macOS の新ファイルフォーマット APFS は、可変ボリュームを採用しており、ボリュームに固定の容量を設定する必要がなくなっています。1つのディスク内の1つのパーティション内に複数のボリュームを割り当てて、ボリューム間の容量はパーティションの空き容量を自由に使えるってことですね。
 
STEP 5. macOS Catalina 10.15 の再インストール
ディスクユーティリティを終了し、「macOS Catalina をインストール」を選択
*再インストールではなく、インストールになった。
Macintosh HD を選択してインストール。
STEP 6. 初期設定
- iCloud のログイン
 
- FileVault の有効化(10分ぐらいで終わった)
 
- PC名を変更(システム環境設定の共有 - 前と同じにする)
 
- Xcode のダウンロードとインストール
 
- Xcodeの起動
 
- Command Line Tools がインストールされる
 
- Handy Graphicsをインストール
 
- Homebrew のインストール(最低下記はいれておく)
 
- Command Line Tools がHomebrew時にインストールされる(xcode-select --installが同時に走る)
 
- brew install coreutils (gls が使いたい)
 
- brew install nkf 
 
- ln -s  .bash_profile .zprofile
 デフォルトシェルが bash から zsh に変更されており、.bash_profile の設定ではなく、.zshrc を見に行くようになっている。同じBourn系シェルだから同じ設定がいけるはずと思って、シンボリックリンクでとりあえずごまかす。それで特に問題は起こっていない。zshrc だけに特化した設定をしたいなら、設定をコピーすればいいでしょう。 
- 「ターミナル」アプリに「フルディスクアクセス」権限を与える
 システム環境設定 > セキュリティとプライバシー > プライバシーにある
 *これしておかないと、自分のホームディレクトリ以下でも、sudo しないと Permission Denied と言われることが多すぎる 
- ファイヤウォールを有効にし、オプションで外部からのアクセスを完全遮断
 *ただし、プリンタのファームウェアを更新するときにはオプション設定を一時解除しないと通信できなかった。 
Python3 の環境整備
macOS 10.15 では標準で、python2 (pythonコマンド)と、python3 (python3コマンド)が入っています。ただし、pipや pip3 によるパッケージインストールの場合には、
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/3.7'
Consider using the `--user` option or check the permissions.
のようなエラーがでてインストールできません。これは macOS 10.15 のシステム領域(パーティション)が読み取り専用になっているためです。そのため、常に --user オプションをつけておく必要があります。
pip3 install --upgrade pip --user
pip3 install virtualenv --user
を実行し、pip3を最新版にすることと、virtualenv はいれておきましょう。
$HOME/Library/Python/3.7/bin
に入りますので、.zprofile (zshの場合)、.bash_profile(bashの場合)に対して、
PATH="$HOME/Library/Python/3.7/bin:${PATH}"
のようにパスを優先するように設定しておけばよいでしょう。
STEP 7. ファイルやフォルダの TimeMachine 属性削除
/bin/ls -ld@  ~/.filezilla
drwx------+ 11 ユーザ名  staff  352 10 17 15:59 /Users/ユーザ名/.filezilla
 com.apple.metadata:_kTimeMachineNewestSnapshot
  50
 com.apple.metadata:_kTimeMachineOldestSnapshot
  50
 com.apple.timemachine.private.directorycompletiondate
  17
のように権限(drwx------+)の末尾に + がついて、このフォルダに対する書き込み権限をどうしても付与できない。上記は、TimeMachineからのバックアップを属性ごとコピー(cp -rp)をしてしまったからだろう。こうなってしまったら、 xattr -cr ~/.filezilla で属性を消しても、属性自体(drwx------+ の +)が消すことができず、そのフォルダに対しての書き込み権限を取得できない。うーん、、、
とりあえず暫定的な解決手段としては
sudo mv .filezilla  filezilla
mkdir .filezilla
cp -r filezilla/*  .filezilla
のようにフォルダを再生成するしかなかった。もう少しスマートな方法があるかもしれないが、、すぐには探せず。
.ssh などそんなに多くないので、まぁ手動でもなんとかなった。
STEP 8. 各種復旧作業 
プリンター関連
macOS 10.15 に非対応の場合、まともに動作しない場合があるので注意。筆者が仕事で使っている OKI C811dn は、macOS 10.14 ドライバでは印刷できなかった。OKIの 
macOS Catalina 10.15 対応については、当初12月予定とかかれていましたが、今見ると10月中旬対応予定になってますね。さすがに問い合わせが多かったのですかね〜。
自宅プリンタはインクジェットプリンタ。こちらは macOS 10.15 対応の製品がでていました。
を確認。
あとEPSONプリンタを使っていて、CD/DVDラベル印刷として重宝しているソフトについては
が動作することを確認。これより前のバージョンは動きませんでした。
アプリケーション関連
- Microsoft Office 2019 for Mac Office 365 を契約しているのでダウンロードしてインストール
 忘れずに前端末のアクティベーションを解除しておく 
- Adobe Creative Suite これまた契約しているので、
 https://account.adobe.com/ より必要なソフトをダウンロード 
- Slack ログインし直し。ちょっと面倒。
 
- CotEditor フォントサイズを 14pt ぐらいにして見やすくする
 
- Dropbox ダウンロード完了まで待つ
 
- FileZilla $HOME/.filezilla がサイトマネージャーを含む設定フォルダ。これを移行していたら設定も引き継がれていました。
 
- Google Chrome / Google Chrome Canary こちらもGoogleアカウントでログインして同期してはいるものの、設定ファイルを移行しました。
 
- SourceTree 設定ファイルを移行した後、最初に起動すると bitbucket へのログインを促される。結構前にこのソフトを使うときの必須になったのでアカウントがあるはず。なければ作成するとよい。ただ筆者が利用するのは、GitHubのデータなので実際にアプリ上で連携するのはGitHubアカウントのみ。
 
まぁこれでざっとしたクリーンインストールは終了。
備忘録のため細かいところもありますが、何らかの参考になれば幸いです。
2019.10.22 @kimipooh