バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDイメージをPCとFatFsで認識&編集をするシミュレーションの話。
Windows上でFATフォーマット、テキストファイル作成、Linux上でディスクイメージ作成。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
シミュレーション手順

とりあえず、前回説明した手順のおさらいだ。
- WindowsでSDカードをFATでフォーマット
- 適当なテキストファイルをSDカード内に作成
- LinuxでSDカードのディスクイメージ作成
- そのディスクイメージをFatFsシミュレータで読み込み
- Windowsで作成したテキストファイルをFatFsで確認
- FatFsで適当なテキストファイルを作成
- LinuxでディスクイメージをSDカードへ書き込み
- Windows上でSDカードに作成されたテキストファイルを確認


まずはWindows上でフォーマットだねー。
Windows上でフォーマット

まぁ改めて説明はいらないと思うが、
SDカードをFATでフォーマットすればOKだ。

ん?
なんかフォーマット時に選べるのがNTFS、FAT、exFATになってるな?
FATってFAT12、FAT16、FAT32ってなかったっけ?

Windows10になってからのようだけど、フォーマットするサイズに応じて適切なFATを自動選択されるようだ。
まぁとりあえずFATでフォーマットで良いと思うよ。

了解。
適当なテキストファイルをSDカード内に作成

次はテキストファイルの作成かな。

とりあえず、
「0123456789」をコピペしまっくったテキストファイルでも放り込んでおこう。

じゃー、ファイル名は「long_file_name_file.txt」にして、
「0123456789」をコピペして11200[byte]のファイルを作ったよ。


そういえば、「System Volume Information」ってフォルダが最初から居たんだけど、これなんだろ?

私もあまり把握してないが、
Windowsでフォーマットすると作成される隠しフォルダみたいだね。
書き込み中にSDカード挿抜して、ファイルが壊れた際の断片データが保管されてることもあるようだけど、正確なところはわからん。

まぁ、とりあえず気にしないでおこう。
LinuxでSDカードのディスクイメージ作成

次はVMwareのLinux上でディスクイメージの作成だな。

VMwareとubuntuのセットアップは済んでるからとりあえず起動して、
コンソールの立ち上げまで来たよ。

じゃ、SDカードリーダーを抜き差ししてPCに再認識させる。

ん?なんかVMwareが聞いてきたぞ?


USBデバイスの接続先の切り替えだね。
「仮想マシンに接続」を選んでOKすれば、
VMware上のubuntuがSDカードを認識するはずだ。

お!
なんか開いた!


これは、Windows側で作成したlong_file_name_file.txtがちゃんと見えてるね。

その状態で以下のdfコマンドを実行。

とりあえず、コンソールにdfって打てばいいんだね。
~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1972948 0 1972948 0% /dev
tmpfs 400228 1912 398316 1% /run
/dev/sda5 19992176 8671044 10282540 46% /
tmpfs 2001128 0 2001128 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 2001128 0 2001128 0% /sys/fs/cgroup
/dev/sdb1 42640 24 42616 1% /media/user/BOOT

SDカードリーダは/dev/sdb1というデバイスとして認識されたようだね。
この状態で、以下を実行。
sudo dd if=/dev/sdb1 of=PhysicalDrive2

コンソール上にこんなのが出て、PhysicalDrive2ってファイルができたみたいだ。
85405+0 レコード入力
85405+0 レコード出力
43727360 bytes (44 MB, 42 MiB) copied, 0.639174 s, 68.4 MB/s

良し。
そのPhysicalDrive2ってファイルがSDカードのディスクイメージだ。
それをコピーしてWindows側にもってこよう。

なんか予想以上にサクっといったねー。

まだそのディスクイメージがそのまま使えるかわからなけどねー。
まぁ、理屈上は大丈夫なはずなんだけど。

ちょっと、不安になるようなこと言わないでよー!

次回はそのディスクイメージをFatFsで見てみよう。
まとめ

まとめだよ。
- WindowsでSDカードをFATでフォーマット。
- FAT12/FAT16/FAT32が選択できないのでFATを指定するのみ。
- 領域サイズで自動選択。
- テキストファイルをSDカード内に作成。
- LinuxでSDカードのディスクイメージ作成。
- dfコマンドでデバイス確認。
- ddコマンドでディスクイメージ作成。
バックナンバーはこちら。
コメント