【FatFs】車載外部ストレージ その112【SDカードディスクイメージ②】

【FatFs】車載外部ストレージ その112【SDカードディスクイメージ②】 車載外部ストレージ

バックナンバーはこちら。
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カードに作成されたテキストファイルを確認
SDイメージシミュレーション構成、VMware、Ubuntu、SDHC、ddコマンドdump、ddコマンドで書き戻し、EXE、FatFS、読み書き実施、DiskImage
太郎くん
太郎くん

まずは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]のファイルを作ったよ。

SDカード内のファイル、0123456789
太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

まぁ、とりあえず気にしないでおこう。

LinuxでSDカードのディスクイメージ作成

フクさん
フクさん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

新しいUSBデバイスが検出されました、ホストに接続、仮想マシンに説億、仮想マシン名、選択を記憶して今後確認しない、OK、キャンセル
フクさん
フクさん

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

太郎くん
太郎くん

お!
なんか開いた!

ubuntuのSDカード認識、BOOT、System Volume Information、long_file_name_file.txt、最近開いたファイル、星付き、ホーム、デスクトップ、ダウンロード、ドキュメント、ビデオ、ピクチャ、ミュージック
太郎くん
太郎くん

これは、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コマンドでディスクイメージ作成。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました