20190127のMacに関する記事は13件です。

brew cask で「Error: Cask 'filezilla' is unavailable: No Cask with this name exists.」エラー発生

背景

いつからか、 brew cask で以下のエラーが発生

エラー内容

$ brew cask list
Error: Cask 'filezilla' is unavailable: No Cask with this name exists.

解決方法

Caskroom下のfilezillaを削除
念の為、filezilla下には何もないことを確認した

$ pwd
/usr/local/Caskroom
$ rm -rf filezilla
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Slackにポケモンの絵文字を追加する

概要

Slack内にポケモンが大好きなメンバーがいたので、ポケモンの絵文字を追加しました。
これで、ちょっと幸せになれるはず。

作業環境

  • MacOS Mojave
  • Google Chrome

作業手順

1. 絵文字画像を入手

Slack絵文字向けのポケモン画像をgithubで提供している方がいるのでそちらから入手。
ありがたい:joy:
https://github.com/Templarian/slack-emoji-pokemon

2. 画像名を変更する

Slackのメッセージ入力欄からポケモンの絵文字が検索しやすくなるよう、
Macのターミナルから画像ファイル名を以下のフォーマットに一括変更する。
pokemon-{name}.png

cd slack-emoji-pokemon-master/emojis
rename 's/^/pokemon-/' *.png

---
変更前:zubat.png
変更後:pokemon-zubat.png
  • 画像ファイル名が絵文字の検索名になる。
  • MacOSにrenameコマンドがインストールされていない場合、brew install renameでインストールする。
    MacOSにHomebrewがインストールされていない場合、インストールする。
    macOSにHomebrewをインストール

3. Slack絵文字一括登録用のアプリをChromeにインストール

Slackは絵文字を1つずつしか登録できないため、ポケモンの数分、登録作業を行う必要がある。
それだと大変なので、絵文字を一括登録できる拡張プラグインをChromeにインストールする。

Neutral Face Emoji Tools

image.png

4. Slack絵文字を登録

https://{team_name}.slack.com/customize/emojiにアクセスし、ポケモン画像をドラック&ドロップしてSlackに登録する。

image.png

5. 動作確認

こんな感じで絵文字入力できるようになる。

image.png

↑ポケモン名が英語圏のものなので、名前検索しにくいです。
画像ファイル名を日本名で登録すれば、検索しやすくなると思います。

参考

Slack絵文字にポケモン導入

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【個人メモ】Texの環境構築(Mac編)(編集中)

ソフトウェアのインストール

Texディストリビューション
→ Mac Win Ubuntu全てで環境を統一するためにTexliveをインストールする
→ ただし、MacにはMacTexをインストールする

homebrewを利用したインストール

brew cask install mactex
sudo tlmgr update --self --all
sudo tlmgr paper a4

アンインストールする

brew cask uninstall mactex
# 残りのファイルを手動で削除
sudo rm -rf /usr/local/texlive/texmf-local/
rm -rf ~/Library/texlive/
rm -r ~/Library/TexShop/

Tex用エディタ
PDFファイルビューア
文献管理ツール
スペルチェッカー

作業例

ファイルを作成し,拡張子を.txtで保存する(test.txtとする)
組版結果ファイル(.dvi)ファイルの作成
platex test
pdfファイルへの変換
dvipdfmx test

テキストからpdfへの直接作成
ptex2pdf -l test

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

年賀状宛先自動入力をMicrosoft Excel & Word for Macで無料で作る

作成日:2019年1月27日

はじめに

紙媒体の年賀状を個人間で送り合う文化も薄れてきたように感じましたが、最近再び結婚式などを機に友人から年賀状が届くなるようになりました。今後の作業効率を考えて、年賀状の宛先の自動入力ソフトを馴染みにエクセルとワードで作ってみました。

補足

Windows版ワードは、Mac版ワードと異なり、「はがき宛名面印刷ウィザード」があるので、この記事に記載しているやり方とは異なる方法で作成することになります。
Windows PCで年賀状の宛先自動入力をしたい方は、以下を参考にしてください。
-->「年賀状の宛名印刷~ワープロソフト編


環境&使用ソフト

Mac OS High Sierra (10.13.6)

  • Microsoft Word 2018 for Mac
  • Microsoft Excel 2018 for Mac

テンプレート

連名が可能で、会社関係の方にも使用できるテンプレートになっています。

1.エクセルの準備

テンプレートを以下からダウンロードして、宛先を記入してください。

ダウンロード → エクセルテンプレート
(「View Raw」あるいは「Download」を押すとダウンロードできます)

エクセルテンプレートの説明

excel_template.png

  • :苗字
  • : 名前
  • 敬称: 敬称 (様・御中)
  • 名2: 連名者の名前
  • 敬称2: 連名者の敬称 (様・御中)
  • 会社: 会社名
  • 部署: 部署名
  • 郵便番号: 郵便番号(「ー (ハイフン) 」なしの7桁)
  • 住所1: 県庁所在地・区市町村・番地
  • 住所2: アパート名・部屋番号

※ 記入する必要のない項目は、空欄にしておいてください。
※ 数字は、漢字で記入してください(そうでなければ横書きになります)。

2.ワードの準備

テンプレートを以下からダウンロードして、5つの手順で作成を進めてください。

ダウンロード → ワードテンプレート
(「View Raw」あるいは「Download」を押すとダウンロードできます)

※ ワードを開く際に以下のメッセージが出るときがあるので「OK」を選択してください。
word_message.png

ワードテンプレートと手順

word_template.png

① 「差し込み文書」を選択する
② 「宛先の入力」>「既存のリストの選択...」を選択し、先ほどダウンロードした「postcard.xlsx」を選択し、「2019年」シートを選択する
③ 赤枠に自分の住所などを直接記入する
④ プレビュー結果を選択して、差し込みがうまくいっているか確認する
word_preview.png

⑤ プレビュー結果がよければ、「差し込みと完了」>「個々のドキュメントの編集...」を選択すると、別ウィンドウが開くので、一つ一つの宛先について微修正を行うことができる。編集が終われば、片面印刷すればOKです!

サンプル例 (プレビュー結果)

word_sample1.png
word_sample2.png


以上になります。
質問・コメントなどあれば気軽にご連絡ください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Cloud LaTeXのコマンドの自動補完機能紹介と、MacBook AirのSafariにおいてCloud LaTeXのコマンドの自動補完機能が無効化されている問題への対策

Cloud LaTeX

スクリーンショット 2019-01-25 17.53.39.png

無駄な環境構築のいらない最強のTeXの環境
https://cloudlatex.io/

Safari バージョン

スクリーンショット 2019-01-25 17.49.39.png
バージョン12.0.3(おそらく最新)

コマンド

TeXにはコマンドがあり、数式や特殊文字などを綺麗に書くことができる。

スクリーンショット 2019-01-27 15.34.38.png
こんなコマンドが・・・
スクリーンショット 2019-01-27 15.34.22.png
こんな感じの特殊文字になったりします!

コマンド自動補完機能

スクリーンショット 2019-01-27 15.36.43.png
\ と打つと上のような複数の選択肢が出てくる。
これらを用いることで余分なエラーや覚える量を減らすことができる。

問題

MACの中古を購入しSafariを利用していたが、この自動補完機能が出てこない。
しかし、
スクリーンショット 2019-01-25 17.29.55.png
このように推奨PCブラウザとなっている。

対策

FireFoxやGoogleChromeを用いる。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacBookでMicroSDカードにRaspbianを書き込むまでの道のり

はじめに

MicroSDカードが余っていたのでRaspberryPi Zero WH買ったのですが、
いつもMicroSDに書き込むまでの道のりを忘れてググっているので道標として投稿することにしました。

MacBookでとかタイトルにありますが、多分Mac全般に通用すると思います。

書き込むまでの道のり

公式からzipファイルをダウンロードする

https://www.raspberrypi.org/downloads/raspbian/
からダウンロードすればオッケー:thumbsup:

とりあえずLiteの方を落とします。curl -OL https://downloads.raspberrypi.org/raspbian_lite_latestとか、名前をつけたければcurl -o raspbian.zip -L https://downloads.raspberrypi.org/raspbian_lite_latestなどでもおそらく大丈夫。

デスクトップ版がいい場合は国内ミラーとかいうのがあるんでそちらから落としたほうが早いかも。

ダウンロードしたら念の為ハッシュ値の確認を行います。
今回ダウンロードしたのはStretchというバージョンのようです。

> openssl sha256 2018-11-13-raspbian-stretch-lite.zip
SHA256(2018-11-13-raspbian-stretch-lite.zip)= 47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d

openssl入っていない場合は以下のコマンドでも確認できるようです。

> shasum -a 256 2018-11-13-raspbian-stretch-lite.zip
47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d  2018-11-13-raspbian-stretch-lite.zip

どっちがいいかは好みの問題でしょうね。
ホームページに記述されているハッシュ値と値が違った場合はダウンロードし直しましょう。
同じなら解凍します。

> unzip 2018-11-13-raspbian-stretch-lite.zip
Archive:  2018-11-13-raspbian-stretch-lite.zip
  inflating: 2018-11-13-raspbian-stretch-lite.img

SDカードをフォーマット

(注)新品のMicroSDカードをお持ちで、容量が32GB以下ならばここの手順は不要と思われます。
32GBを超えている場合はRaspberryPiでサポートしていないexFAT形式の可能性があるため、その場合はこの手順が必要になります。

MicroSDカードをお手持ちのMacbookに挿し込み、ターミナルを開きます。
その後、diskutil listと入力し、MicroSDカードが認識されているか確認します。

> diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         121.1 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +121.1 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            98.7 GB    disk1s1
   2:                APFS Volume Preboot                 46.7 MB    disk1s2
   3:                APFS Volume Recovery                512.4 MB   disk1s3
   4:                APFS Volume VM                      3.2 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *63.9 GB    disk2
   1:             Windows_FAT_32 BE340262                524.3 MB   disk2s1
   2:                 Linux_Swap                         536.9 MB   disk2s2
   3:                      Linux                         2.1 GB     disk2s3

/dev/disk2が該当のディスクの模様。
見て思い出したのですが、すでにLinuxイメージを書き込んだことがあるMicroSDのようですね。

次にdiskutil eraseDiskでMicroSDカードをフォーマットします。
RaspberryPiのブートローダーはFATファイルシステムのみをサポートしているとのことなのでFAT32でフォーマットします。

> diskutil eraseDisk FAT32 RASPBIAN /dev/disk2
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk2s2 as MS-DOS (FAT32) with name RASPBIAN
512 bytes per physical sector
/dev/rdisk2s2: 124334400 sectors in 1942725 FAT32 clusters (32768 bytes/cluster)
bps=512 spc=64 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=124364800 bspf=15178 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk2

ddrescueを使い、MicroSDカードに書き込む

ここで普通はddコマンドで書き込むのですが、今まで使っていて、

  • 進捗の確認がしづらい
  • エラーからの復帰がきつい

などいろいろ感じることがありまして、単純にddコマンドよりも使いやすいddrescueをここで使うことにします。
入っていない場合はbrew install ddrescueなどで入れてしまいましょう。

まず、書き込む前にアンマウントする必要があるのでdiskutil unmountDiskコマンドを使い、アンマウントしてしまいます。

> diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

その後、ddrescueを使い、MicroSDカードにイメージを書き込みます。

> sudo ddrescue -f -v -r1 2018-11-13-raspbian-stretch-lite.img /dev/disk2 rescue.log

ここのオプションですが、
-f, --forceは強制上書きで、-v, --varboseは詳細表示、-r, --retry-passesはリトライ回数指定です。
こちらに詳細な説明ありますが、 まあだいたい上のやつを知っておけばいいと思います。
最後のrescue.logはログファイルとなります。

> sudo ddrescue -f -v -r1 2018-11-13-raspbian-stretch-lite.img /dev/disk2 rescue.log
GNU ddrescue 1.23
About to copy 1866 MBytes from '2018-11-13-raspbian-stretch-lite.img' to '/dev/disk2'
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors       Initial skip size: 128 sectors
Sector size: 512 Bytes

Press Ctrl-C to interrupt
     ipos:    1866 MB, non-trimmed:        0 B,  current rate:    393 kB/s
     opos:    1866 MB, non-scraped:        0 B,  average rate:    587 kB/s
non-tried:        0 B,  bad-sector:        0 B,    error rate:       0 B/s
  rescued:    1866 MB,   bad areas:        0,        run time:     52m 56s
pct rescued:  100.00%, read errors:        0,  remaining time:         n/a
                              time since last successful read:         n/a
Finished

入力後しばらくして上のようにFinishedと出力されれば書き込み終了です。
終了が確認できたら、diskutil eject /dev/disk2などしてMicroSDカードを取り出して終わりです。

おつかれさまでした。:white_flower:

さいごに

書いている途中で気づいたのだが、公式にすでに似たようなことやっているのページがあった

のですが、そっちではddを使っているのでまあ投稿する意味あるだろうと思い投稿することにしました。
公式ページのリンクも含めた備忘録と思ってもらって構いません。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Sequel Pro が macOS Mojave ですぐ落ちるからテストビルドのやつを使ってみた

なんか Mac を Mojave にしてから、Sequel Pro がすぐ落ちるようになった。タブをひとつ閉じたらアプリケーションまるごと落ちる。

Sequel Pro は公式サイトでテストビルド版も配布されてて、これを書いている時点での最新版は Mojave にも対応してるようなのでこれを使ってみた。
https://sequelpro.com/test-builds

いまのところ安定して動いてるみたい。

ダークモードにも対応してた。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacでJIS配列のキーボードを利用しつつ、US配列で入力されるようにする

会社で支給されたMacの付属キーボードがJIS配列だが、どうしてもUS配列で入力したいという方向けの記事
Karabiner-ElementsというアプリがMac内のキーイベントをキャプチャして異なるキーイベントに変換する機能を持っているため、その機能を利用することで実現する

環境

OS: macOS High Sierra
キーボード: Magic Keyboard(テンキー付き)- 日本語(JIS)

手順

Karabiner-Elementsのインストール

公式ページからKarabiner-Elementsをインストール

キー変換のプリセットをインポート

Karabiner-Elementsは、キー変換のプリセットが複数用意されていて、必要に応じてインポートすることができる
今回の目的に近いプリセットも存在していたが、ごく一部のキー変換しか対応していなかったため、自作することにした

以下URIをブラウザのURLバーに貼り付けて開き、「Karabiner-Elements.appで開く」をクリックすることで、自作したキー変換のプリセットをKarabiner-Elementsにインポートする

karabiner://karabiner/assets/complex_modifications/import?url=https%3a%2f%2fraw%2egithubusercontent%2ecom%2fshotaIDE%2fOriginalKeyBind%2fmaster%2fKarabiner%2dElements%2fjis2us%2ejson

karabiner_elements_01.png

Karabiner-Elementsが起動し、以下の画面が出てくるので、[Import]をクリックする
karabiner_elements_02.png

以下の画面が出てくることを確認し、OKをクリックする
karabiner_elements_03.png

「JISキーボードの配列をUSキーボードの配列にする」の項目の[Enable All]をクリックする
karabiner_elements_04.png

以下の状態になることを確認する
karabiner_elements_05.png

次に、[Devices]タブを選択する
接続されている物理キーボードのチェックがOFFになっている場合は、ONに変更する
karabiner_elements_06.png

これで、キー入力がUS配列になっているはずである
試しに、Shift+2を押してみて、「@」が入力されればキー変換が効いている

補足

キー変換プリセットのインポートについて

ブラウザからインポートできない場合は、以下のJSONファイルを~/.config/karabiner/assets/complex_modificationsのフォルダの中に保存することでインポートすることができる
https://github.com/shotaIDE/OriginalKeyBind/blob/master/Karabiner-Elements/jis2us.json

Karabiner-Elementsは、現状のキー変換ルールを保持するファイルを/.config/karabiner/karainer.jsonに持っているが、このファイルを直接編集してもキー変換は発動しない
そのため、上記までで紹介したように、プリセットとしてインポートした後アプリから有効化する必要がある

キー変換プリセットの自作について

キー変換プリセットのJSONファイルを自作する場合、各キーのkey_codeを調べる必要がある
key_codeは、Karabiner-Elementsをインストールすると一緒にインストールされる、Karabiner-EventViewerというアプリで調べられる

アプリを起動し[Main]のタブを選択した状態でキーを押すとキーイベントの詳細が表示されるので、そのnamekey_codeとして読み取れば良い
karabiner_eventviewer.png

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SwiftとObjective-Cの定数を共有

Objective-Cで書かれたプロジェクトのswift化を進めています。進め方としては、既存のObjective-Cのコードはそのままに、新規に作る画面や機能をswiftで書くというやり方。

Objective-C側で書かれたdefineの定数。よくNSUserDefaultsなどのKeyとしてまとめてたりしますよね。

あれをSwiftからも使えるようにすべく、ラッパーをかいてみました。

まず、Objective-CのコードをSwiftで呼べるようBridging-Header.h に一行追加します。

Bridging-Header.h
#import "Defines.h"

そして、Objective-C用の定義ファイルであるDefines.hにクラスを追加します。今までは#defineだけの塊のファイルです。

Defines.h
#define kUSERDEFAULTS_HOGEHOGE @"UserDefaults_HOGEHOGE"

@interface Defines : NSObject

+ (NSString *)hogehogeUserDefaults;

@end
Defines.m
#import <Foundation/Foundation.h>
#import "Defines.h"

@implementation Defines

+ (NSString *) hogehogeUserDefaults { return kUSERDEFAULTS_HOGEHOGE; }

@end

そして呼び出し側からは、

Hogehoge.swift
UserDefaults.standard.set(password, forKey:Defines.hogehogeUserDefaults())

というところまで書いて、できたできたと、なる予定だったのですが、

Hogehoge.swift
UserDefaults.standard.set(password, forKey: kUSERDEFAULTS_HOGEHOGE)

でもOKでした。あれれ?ラッパーいらなかった?
っていうお話でした。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Jenkinsの「成果物を保存」で.appの保存に失敗した時の備忘録

状況

UnityでMac用アプリを書き出す時の話。

「保存するファイル」に以下を指定

target/*.app

コンソール出力

成果物を保存中
ERROR: Step ‘成果物を保存’ failed: 指定されたファイルパターン「target/YourProject.app」に合致するファイルがありません。設定ミス?
Finished: FAILURE

原因

.appの実態はディレクトリなので、ディレクトリとしてパスを指定する必要があった。

解決策

「保存するファイル」に以下を指定

target/*.app/

コンソール出力

成果物を保存中
Finished: SUCCESS
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macを使って壊れたSDカードの修復を試みた手順のまとめ

はじめに

撮影が終わって、意気揚々と事務所でSDカードをパソコンに差し込んだ時...

スクリーンショット 2019-01-27 10.07.04.png

「セットしたディスクは、このコンピュータで読み取れないディスクでした。」...って何?
カメラではきちんと見れたのになぁ...とSDカードを差し込むとカメラでもフォーマットするように指示が...

そして「終わった...」と落胆する。

そんな経験はございませんか?

最近、ドローンやカメラでの撮影、RaspberryPIを使ったIoTシステムの構築などmicroSDカードを多用するようになったことから、壊れたカードのデータを取り出す作業が時々発生するので、その手順をまとめてみます。

今回はビデオカメラで使用したSDカードからのデータサルベージです。

認識しないSDカードのデータを丸ごとコピー

認識できないカードは何か壊れているので、そのまま使用するのではなく、データを物理データで丸ごと取り出します。

以下のコマンドを実行し、対象のSDカードのデバイスを探します。

ls /dev/disk*
/dev/disk0  /dev/disk0s2    /dev/disk1s1    /dev/disk1s3    /dev/disk2  /dev/disk3  /dev/disk4s1
/dev/disk0s1    /dev/disk1  /dev/disk1s2    /dev/disk1s4    /dev/disk2s1    /dev/disk4

ここでは、disk3が対象のSDカードだったことから、以降disk3をサンプルとして使用します。
以下のコマンドでイメージファイルを作成します。

sudo dd if=/dev/disk3 of=sd.img bs=1m

終了したら壊れたSDカードを取り外します。

未使用のSDカードにデータを復元

先ほど取り出したデータを未使用のSDカードに入れ直します。

新しいSDカードを接続してみると、これもまたdisk3として認識されました。
もともと作成されていたパーティションがUNTITLEDとしてマウントされたので、マウントを解除します。

sudo umount -fv /Volumes/UNTITLED

続けて、以下のコマンドを実行してイメージを書き込みます。

sudo dd if=sd.img of=/dev/disk3 bs=1m

ファイルの取り出し

TestDiskというオープンソースソフトウェアを利用します。
まず、以下のURLにてTestDiskをダウンロードします。

TestDisk

解凍し、photorecを実行

tar -xvjf testdisk-7.0.mac_intel.tar.bz2
cd testdisk-7.0
./photorec

後はphotorecの指示に従ってサルベージファイルの出力先を指定し、ファイルのサルベージを実行。
指定したフォルダにサルベージできたファイルが保存されていきます。

以下のURLもあわせてご参照頂くと参考になります。

https://pctrouble.net/software/photorec.html

サルベージしたファイルの結合

今回の症例では、xxx.mp4とxxx_mdat.movというファイルが見つかったが、普通にカメラで撮影したデータにはmovファイルは含まれていないことから、一つのファイルが二つに分割されているのかなと想像。

mp4ファイルは全て524KBで、movファイルは数100MBから数GBあることから、mp4はヘッダー情報でmovが動画の情報ではないかと予測。

mp4とmovは元のものとは異なるファイル名になっていることから、日付順に並べ替えた状態でmp4とmovを一つのペアと仮定し、以下のようにファイル名の先頭に「a1」や「a2」などを付与。

mv xxx.mp4 a1_xxx.mp4
mv xxx_mdat.mov a2_xxx_mdat.mov

ファイル名を変更後、catコマンドでファイルを結合。

cat a* > ~/a.mp4

I've got it!

ただし、いくつかペアが成立しないmp4ファイルがあり、これはもしかするとサルベージできなかったものかもしれない...でも全滅は免れた!!

おわりに

大変ニッチな作業手順ですが、SDカードが壊れて読み込めなくなって、復旧ソフトを使ってみたけどmp4とmovが見つかり、取り出したファイルが読み込めなかったという事象に心当たりのある人にとっては大変貴重なお話のはず!

  • SDカードの読み込みに3時間
  • SDカードの書き込みに3時間
  • 市販のソフトを購入してそれっぽくファイルを取り出すのに2時間
  • 取り出したファイルを調査し、がっかりするまでに1時間
  • mp4の仕様を調べて、movファイルをバイナリーエディタで開いて調査するのに2時間
  • バイナリを調査して、mp4とmovを結合すれば良いことに気が付いてからデータを取り出すのに2時間
  • 取り出したファイルの結合作業に1時間

合計14時間の大仕事だったけど、今なら最短で3時間あればできそうです!

僕が失った貴重な時間をこの記事を読んだ方が節約され、有意義に活用できることを心から願っています。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macで壊れたSDカードの復旧を試みた手順まとめ

はじめに

撮影が終わって、意気揚々と事務所でSDカードをパソコンに差し込んだ時...

スクリーンショット 2019-01-27 10.07.04.png

「セットしたディスクは、このコンピュータで読み取れないディスクでした。」...って何?
カメラではきちんと見れたのになぁ...とSDカードを差し込むとカメラでもフォーマットするように指示が...

そして「終わった...」と落胆する。

そんな経験はございませんか?

最近、ドローンやカメラでの撮影、RaspberryPIを使ったIoTシステムの構築などmicroSDカードを多用するようになったことから、壊れたカードのデータを取り出す作業が時々発生するので、その手順をまとめてみます。

今回はビデオカメラで使用したSDカードからのデータサルベージです。

認識しないSDカードの丸ごとコピー

認識できないカードは何か壊れているので、そのまま使用するのではなく、一度データを物理データとして丸ごと取り出します。

以下のコマンドを実行し、対象のSDカードのデバイスを探します。

ls /dev/disk*
/dev/disk0  /dev/disk0s2    /dev/disk1s1    /dev/disk1s3    /dev/disk2  /dev/disk3  /dev/disk4s1
/dev/disk0s1    /dev/disk1  /dev/disk1s2    /dev/disk1s4    /dev/disk2s1    /dev/disk4

ここでは、disk3が対象のSDカードだったことから、以降disk3をサンプルとして使用します。
以下のコマンドでイメージファイルを作成します。

sudo dd if=/dev/disk3 of=sd.img bs=1m

終了したらSDカードを取り外します。

未使用のSDカードに復元

新しいSDカードを接続してみると、これもまたdisk3として認識されました。
もともと作成されていたパーティションがUNTITLEDとしてマウントされたので、マウントを解除します。

sudo umount -fv /Volumes/UNTITLED

続けて、以下のコマンドを実行してイメージを書き込みます。

sudo dd if=sd.img of=/dev/disk3 bs=1m

TestDiskの使用

以下のURLにてTestDiskをダウンロードします。

TestDisk

解凍し、photorecを実行

tar -xvjf testdisk-7.0.mac_intel.tar.bz2
cd testdisk-7.0
./photorec

後はphotorecの指示に従ってサルベージファイルの出力先を指定し、ファイルのサルベージを実行。
指定したフォルダにサルベージできたファイルが保存されていきます。

以下のURLもあわせてご参照頂くと参考になります。

https://pctrouble.net/software/photorec.html

サルベージしたファイルの結合

今回の症例では、xxx.mp4とxxx_mdat.movというファイルが見つかったが、普通にカメラで撮影したデータにはmovファイルは含まれていないことから、一つのファイルが二つに分割されているのかなと想像。

mp4のファイルは全て524KBで、movファイルは数100MBから数GBあり、mp4はヘッダー情報でmovファイルが動画データの情報ではないかと予測。

mp4とmovは元のものとは異なるファイル名になっていることから、日付順に並べ替えた状態でmp4とmovを一つのペアと仮定し、以下のようにファイル名を変更。

mv xxx.mp4 a1_xxx.mp4
mv xxx_mdat.mov a2_xxx_mdat.mov

ファイル名を変更後、catコマンドでファイルを結合。

cat a* > ~/a.mp4

I've got it!

ただし、いくつかペアが成立しないmp4ファイルがあり、これはもしかするとサルベージできなかったものかもしれない...でも全滅は免れた!!

おわりに

大変ニッチな作業手順ですが、SDカードが壊れて読み込めなくなって、復旧ソフトを使ってみたけどmp4とmovが見つかっても取り出したファイルが読み込めなかったという事象に心当たりのある人にとっては大変貴重なお話のはず!

  • SDカードの読み込みに3時間
  • SDカードの書き込みに3時間
  • 市販のソフトを購入してそれっぽくファイルを取り出すのに2時間
  • 取り出したファイルを調査し、がっかりするまでに1時間
  • mp4の仕様を調べて、movファイルをバイナリーエディタで開いて調査するのに2時間
  • バイナリを調査して、mp4とmovを結合すれば良いことに気が付いてからデータを取り出すのに2時間
  • 取り出したファイルの結合作業に1時間

合計14時間の大仕事だったけど、今なら最短で3時間でできる!
僕が失った貴重な時間をこの記事を読んだ他の人が節約されることを心から願っています。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macのダメなところ・不満な点

Macのダメなところ

Macに不満が多く、使いづらいと感じる点をひらすら列挙していきます。

使用している機種スペック

Mac mini (Late 2014)
プロセッサ:2.6 GHz Intel Core i5
メモリ:   8 GB 1600 MHz DDR3 ※増設不可
OS:    Mojave(10.14.2)
2017年8月、約7万円で購入しました。

使いづらすぎるショートカット

Windowsのように左端にあるctrlキーではなくcommandキーが修飾キーとなっています。
これだと、必ずしも修飾キーを小指で押せば良いとはいかなくなります。押しづらくないでしょうか。

他にも、
control + command + F:アプリケーションのフルスクリーン化
などなど押しづらい初期設定があります。

ユーザビリティを考えているのか疑わしいレベルと思います。押しづらいので覚えない→なかなか覚えられないの悪循環です。

設定で変えればいいじゃないか、と思われるかもしれませんが、
アプリによって動きが異なってくるので、なかなか最適なカスタマイズは難しいです。
Mac Bookであればトラックパッドを活かした快適な操作が可能なのかもしれませんが、
デスクトップは如何ともしがたいです。

統一性なき終了ボタン

スクリーンショット 2019-01-26 22.56.00.png
アプリによって終了ボタン(画面左上の❌ボタン)の動きが異なります。
基本的にはウィンドウの最小化として働きますが、
WinX HD Video Converter、システム環境設定、App Storeなどではアプリ自体の終了となります。
動きに統一性がないのが、かなり引っかかります。

酷すぎるメモリ すぐに重くなる

私の使っているMacはメモリ8GBですが、すぐに重くなります。

平常運転時の平均的な使用状況としましては下記。
・Chromeで10タブ、
・FireFoxで15タブ、
・Slack起動、
・PowerPoint起動、
・アクティビティモニタ起動、
・iTunes起動、
・メモ起動、
・CotEditor起動
・Nortonや時計アプリなど常駐ソフト5つ
スクリーンショット 2019-01-27 0.05.29.png
この状態でメモリプレッシャーは黄色になり、
ここでEclipseや将棋ソフトを立ち上げると、途端にメモリプレッシャーが赤になり、
殆ど何もできなくなりますので、強制終了するよりありません
(ここから強制終了するにもまた時間がかかるのですが)。

ちなみに平均的には、3日に1回はシステム終了しています。

実測はできていないので正確なことは言えませんが、
同じような使い方でもWindowsでは特に詰まることはない感覚です。

MacとWindowsではメモリ管理の方法が異なります。
平たく言えば、
なるべくメモリ消費量を抑えようとするのがWindows、
使えるメモリ領域を多く使ってレスポンスを早くしようとするのがMac。
どちらにせよ、詰まることなく快適に使用できれば良いのですが、
(特にMacでは)最低でも16GBは積んでおかないと話にならないと感じます。

当然メモリ増設したいところですが、私のはLate 2014モデルなのでアウト。メモリ問題が一番の不満です。

Office 低すぎる機動性と互換性のなさ

これはMSの問題とは思いますが、とにかく圧倒的にOfficeが使いづらいです。

この記事を書くにあたり改めて計測してみましたが、
Excel起動するだけで1分25秒かかりました。
スクリーンショット 2019-01-26 23.30.57.png

Word起動は4分10秒かかりました。
スクリーンショット 2019-01-26 23.27.01.png

しかも、作業中もやたらレインボーカーソルが多く現れます。

また、Macで編集したパワポファイル等をWindowsで開くと、レイアウトが崩れます。
ビジネスシーンでは殆どWindowsで閲覧されるでしょうが、これではアウトです。

Excelではオブジェクトの範囲選択ができないなど、Windows版と比べて機能性も下がっています。
断言しますが、MacでOfficeは使い物になりません。

いちいち遅いアプリの起動と切り替え

Office系だけでなく、他のアプリでも、起動が遅いです。
Safariの起動に1分36秒かかりました。
スクリーンショット 2019-01-27 0.14.39.png

App Storeの起動に2分4秒かかりました。
スクリーンショット 2019-01-27 0.18.35.png

起動後のアプリ切り替えでも、レスポンスが遅いものがあります。
(応答なし状態にはなっていないことは確認済み)
いちいち思考が乱されます。

Enterキーが「名前の変更」になる不自然さ

スクリーンショット 2019-01-27 0.21.24.png
FinderでEnterを押下すると、「名前の変更」になります。
Enterキーには本来「確定キー」としての意味があるところ、
ここで「名前の変更」になるのは大変不自然に感じてしまいます。

遅すぎるFinder、Launchpad、設定の表示

ただローカルでフォルダ移動したいだけなのに、クリックしてから表示まで10秒程度かかるのは日常茶飯事です。
(アクティビティモニタでFinderの消費メモリは70MB)
ブラウザからファイルアップロードする時にもフォルダ参照するかと思いますが、この時も時間がかかります。

Launchpadも場合によっては、アプリアイコンが左上から順番に描画されていきます。
スクショを撮る余裕があるほどです。
スクリーンショット 2019-01-26 23.49.17.png

画面左上のりんごを押して参照する「このMacについて」ですが、クリックしてから表示まで5秒以上はかかります。
スクリーンショット 2019-01-26 23.53.40.png
ネットワークも一切関係なく、複雑な処理ではないはずですが、何にそんな時間がかかるのか、意味がわかりません。
いちいち作業が中断させられます。

文字変換で詰まることが多い

スペースキーを押して漢字変換をしたいのですが、
反応がなく詰まることが度々あります。※ライブ変換はかえって使いにくいため、オフにしています。

切り取り(カット)→貼り付け(ペースト)がしづらい

もともと純正でカット&ペーストができなかったのもイマイチな仕様ですが、
できるようになったのは一歩前進。
しかし、
Command + Option + V
って使いづらいです。なぜCommand + Vではダメなのでしょうか。

充実していないソフト

差分比較ツールとして大変便利なWinmergeですが、Macでは使えません。
CompareMergeをインストールしておりますが、1700円で課金購入する必要があります。

また、私は将棋が趣味なのですが、やはりゲームソフトはWindows中心なので、
ラインナップが皆無です。※一応「将棋ぶらうざQ」をインストールして間に合ってはいますが。

家庭用PCではWindowsのシェアが圧倒的なのでAppleの問題ではありませんが、
残念な点であることに変わりはありません。

それでいて割高

一般的に、同価格であれば性能はWindows>>Macですが、コスパが悪いとしか思えません。
iPhoneも高価ですが、あちらは大変快適な動作で、5年使っていて不満を感じたことは一度もありません。
同じ企業の製品なのにここまで違うのかという思いです。

対応マウスが少ない

「戻る/進む」ボタンなどがあるマウスでMac対応となると、新宿の家電量販店に行っても見当たりませんでした。
いちいち画面の戻るボタンをクリックするのは本当に手間でしかありません。

また、「Mac対応!」という表示を信じて買ったマウスでも、
スクロールボタンが利かないものがあります。論外ですが、これはメーカーが悪いです。

それならばAppleが豊富なラインナップを用意すればいいのに、とも思いますが。。

おまけ:Macの良いところ

クイックルック

スペースバーを押下するだけで、アプリを立ち上げずにファイルの中身を参照できるのは便利です。
ファインダーの表示が遅すぎて意味なくなっている気もしますが。

iPhoneとの連携

iTunesでのバックアップ、機種引き継ぎはスムーズな印象があります(印象ですが)。

まとめ

ということで、この1年半Macを使って、すっかりMac嫌いになってしまいました。
最初はMacを使い慣れていない自分の問題と思ってきましたが、流石に耐えられません。
さんざんなので、Mac>>Windowsという記事を見ても全くしっくり来ないところです(苦笑)。
Windows買いたいです(涙)。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む