LinuxでMicroSDを使いたい
By Patineboot
SDカードリーダーの購入
2枚のmSDを同時に書き換えたい。ビックカメラのカメラ売り場にある、mSDカードとカードリーダーを詳しく形状、仕様、を見ていたら、UHS-IIのカードリーダーが買いたくなった。機能を確かめるとmSDを同時書き換え可能なリーダーで安心する。カラーは青が良い。残念なことに1つはSDのデュアルスロット。変換アダプターを使って対応する。
帰宅した後、風見鶏の楽天市場点で、有名なLexorが販売しているmSDとSDの同時読み書き可能な、形が三角形でカッコいいリーダーを購入する。こちらはUHS-I対応です。
カードのフォーマット
リムーバルディスクはexFATでフォーマットしたい。 fdiskとmkfsコマンドでする。
フォーマット前の準備
exFATモジュールをインストール
Raspberry Piは標準ではexFATファイルシステムを認識しない。モジュールをインターネットからインストールする。
コマンド実行:
sudo apt install exfat-fuse exfat-utils
これで、Raspberry PiがexFATファイルシステムを認識する。
mSDのデバイスの名前を調べる
lsblkコマンドでmSDのデバイスの名前を調べる。パーティションのUUIDを知りたい、oオプションで指定する。初期表示に追加、+指示を使う。
コマンド実行:
lsblk -o +UUID
コマンド出力(UUIDはマスキング済み)
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID
sda 8:0 1 xxx.xG 0 disk
mmcblk0 179:0 0 59.6G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot xxxx-xxxx
└─mmcblk0p2 179:2 0 59.4G 0 part / xxxxxxxx-yyyy-xxxx-yyyy-xxxxxxxxxxxx
フォーマット
パーティション新規作成
パーティションを作成して、フォーマットの準備をする。 fdiskコマンドは対話式で、指示を複数回、入力する。
コマンド実行:
sudo fdisk /dev/sda
コマンド出力:
Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
fdiskコマンドでの対話
o を入力して、パーティションテーブルを作成
Command (m for help): o
Created a new DOS disklabel with disk identifier 0x8645c72b.
m を押して、helpを確認してみると、 o 指示はDOSパーティションテーブルの作成と分かる。
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
n を入力して、パラメータを対話式に選択して、パーティションを新規作成
Command (m for help): n
プライマリパーティションに設定
デフォルトを選択するので、文字入力なしにリターンキーを押す。
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
パーティション番号を1、開始セクタ、終了セクタを最大する
デフォルトを選択するので、文字入力なしにリターンキーを押す。
Partition number (1-4, default 1):
First sector (2048-60825599, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60825599, default 60825599):
Created a new partition 1 of type 'Linux' and of size XX GiB.
パーティション番号1にファイルシステムのシグネチャが含まれると、警告が表示される。入力は y でも n でもどちらでも良い。 後ほどパーティションをフォーマットするので。
Partition #1 contains a exfat signature.
Do you want to remove the signature? [Y]es/[N]o: y
The signature will be removed by a write command.
t を入力して、パーティションタイプをexFATにする
Command (m for help): t
7を入力して、HPFS/NTFS/exFAT(0x07)を選択する。
Hex code (type L to list all codes): 7
Changed type of partition 'Linux' to 'HPFS/NTFS/exFAT'.
w を入力して、変更をmSDに反映。
Command (m for help): w
The partition table has been altered.
Syncing disks.
パーティションをフォーマット
作成したパーティションをexFATでフォーマット。LABELを付けて、PCでのmSDの名前にする。
コマンド実行:
sudo mkfs.exfat /dev/sdb1 -n "SONY ALPHA7III"
コマンド出力:
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
フォーマット指定誤り
コマンドで誤ってデバイスを指定すると、デバイスがフォーマットされる。パーティションテーブルは上書き破壊される。
sudo mkfs.exfat /dev/sdb -n "SONY ALPHA7III"
回復したいので、ローレベルフォーマットをddコマンドで実施して、fdiskでパーティションテーブルを作成する。
sudo dd if=/dev/zero of=/dev/sda bs=16M
sudo fdisk /dev/sda