最近SDカードによって動画がうまく撮れたり撮れなかったり(撮れてはいるけどプレイヤーでロードがめちゃめちゃ長い)したので調査メモです。直ったわけではない。
FSまわりって未だに面倒くさい(小並感
環境
- MacBook Pro / Majave 10.14.5
- SDカード1: ノーブランド / 8GB / MBR-FAT32 (出荷時状態のまま)
- SDカード2: T○SHIBA製 / 16GB / MBR-FAT32 (出荷時状態のまま)
- SDカードリーダ: どこかの安いやつ
2種類のFAT32
パーティション種類をみると、FAT32の識別子が2種類ありました。
- 0x0B(or 0x1B) => 従来のFAT32
- 0x0C(or 0x1C) => LBA対応済のFAT32
LBA...
LogicalBlockAddressing。データがストレージのどこにあるか指定する方法。LBAでないものはCHSなど。ハード別に記録場所が異なるのを吸収する。
これをdiskutil list
すると、それぞれ
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *8.0 GB disk2
1: DOS_FAT_32 NO NAME 8.0 GB disk2s1
/dev/disk3 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *16.0 GB disk3
1: Windows_FAT_32 NO NAME 16.0 GB disk3s1
DOS_FAT_32
(0x0Bの方) と Windows_FAT_32
(0x0Cの方) という2種類のタイプ名で分かれて書かれるみたいです。
disk2がSDカード1、disk3がSDカード2(T○SHIBA製)のやつです。
後者のdisk3がうまく撮れてませんでした。
どこかのLBAマップ時にエラーになってるんでしょうか?謎です。
DOS_FAT_32にフォーマットにしてみる
とりあえずちゃんと動いている方に合わせてみる。
diskutil eraseDisk FAT32 "NO NAME" MBR /dev/disk3
この結果、
diskutil list
(...略...)
/dev/disk3 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *16.0 GB disk3
1: DOS_FAT_32 NO NAME 16.0 GB disk3s1
正しくDOS_FAT_32にできました。
コマンド中のMBR
はオプションなので、指定しなくても大丈夫なのですが、指定しないとGPTになっちゃうので注意が必要です。
このあともう一度動画撮り直しましたが結果変わりませんでした。残念。関係なかったけどコマンド覚えられたからおk