目的
今までカーナビで使用してきた8GBのSDカードを32GBの大容量SDカードに移行します
移行先SDカードは今回もドラレコでも使っているコスパの良い下記のmicroSDカード(Samsung EVO Plusシリーズ)の32GBを使いました
microSDの方がアダプタで色んな機器に応用しやすいので私は基本的にmicroSDを買っていますが、下記のSDカードでもOK
解決方法
ddコマンド
やり方は色々ありますが、今回はmac bookで行ったのでddコマンドでSDカードイメージを作成する方法にすることにしました
ディスクイメージであればブロック単位で完全な複製(ぶっこ抜き)が作れるので、手動コピーでは対応できないセクタ情報もぶっこ抜いて完全な複製ができる...はず
コピー元SDカードの名前を調べる
dfコマンドでまず差込前のディスク情報を見ておきます
df
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk1s1s1 489825072 29909808 89368344 26% 553757 2448571603 0% /
devfs 382 382 0 100% 662 0 100% /dev
/dev/disk1s4 489825072 20973864 89368344 20% 11 2449125349 0% /System/Volumes/VM
/dev/disk1s2 489825072 761440 89368344 1% 1336 2449124024 0% /System/Volumes/Preboot
/dev/disk1s6 489825072 984 89368344 1% 17 2449125343 0% /System/Volumes/Update
/dev/disk1s5 489825072 344329400 89368344 80% 1731438 2447393922 0% /System/Volumes/Data
map auto_home 0 0 0 100% 0 0 100% /System/Volumes/Data/home
次に移行元SDカードを差し込んでから再度dfします
df
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk1s1s1 489825072 29909808 89379760 26% 553757 2448571603 0% /
devfs 385 385 0 100% 666 0 100% /dev
/dev/disk1s4 489825072 20973864 89379760 20% 11 2449125349 0% /System/Volumes/VM
/dev/disk1s2 489825072 761440 89379760 1% 1336 2449124024 0% /System/Volumes/Preboot
/dev/disk1s6 489825072 984 89379760 1% 17 2449125343 0% /System/Volumes/Update
/dev/disk1s5 489825072 344317984 89379760 80% 1731444 2447393916 0% /System/Volumes/Data
map auto_home 0 0 0 100% 0 0 100% /System/Volumes/Data/home
/dev/disk2s1 15742976 10236864 5506112 66% 0 0 100% /Volumes/NO NAME
一番下に/dev/disk2s1が追加されたので、今回の移行元SDカードは/dev/disk2っぽいですね
※環境によってデバイス名は異なるので面倒でも必ず対象のSDカードを特定したほうが良いです
コピー元SDカードをアンマウントする
名前が特定できたらアンマウントします
アンマウントしないとddコマンド時にエラーになった...はず
diskutil umountDisk /dev/disk2
コピー元SDカードのディスクイメージを作成する
ddコマンドでSDカードのブロック情報をぶっこ抜きます
cd ~
sudo dd if=/dev/rdisk2 of=carnavi_sdcard.dmg bs=16m
しばらくするとコマンドが完了してユーザーディレクトリ直下にcarnavi_sdcard.dmgがSDカードと同じくらいの容量になっています
ちなみにbsは1mbにするとかなり時間かかりますので、私は16mbくらいにしてまとめて読み書きしています
また/dev/disk2ではなく/dev/rdisk2になっている理由は完全バックアップなので先頭からのシーケンシャルアクセスで良いからです
別にrをつけなくても大丈夫だと思いますが、ランダムアクセスになって効率が悪い=遅いらしいです
コピー先SDカードにディスクイメージを書き込む
コピー元のディスクイメージが作成できたら、コピー元SDカードを取り出して、移行先のSDカードを差し込みます
ちなみに移行先SDカードの中身はディスクイメージ書き込み時に完全に消滅します
コピー先SDカードを差し込んだら、まずはアンマウントします
diskutil umountDisk /dev/disk2
で、ddコマンドで書き込みます
cd ~
sudo dd if=carnavi_sdcard.dmg of=/dev/rdisk2 bs=16m
コマンドが完了したら複製完了
カーナビに複製後のSDカードを差し込んで動作確認する
パーティション情報も含めて複製されてるので特に問題なく再生できると思います