バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDイメージをPCとFatFsで認識&編集をするシミュレーションの話。
Windows上でFATフォーマット、テキストファイル作成、Linux上でディスクイメージ作成。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
シミュレーション手順
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
とりあえず、前回説明した手順のおさらいだ。
- WindowsでSDカードをFATでフォーマット
- 適当なテキストファイルをSDカード内に作成
- LinuxでSDカードのディスクイメージ作成
- そのディスクイメージをFatFsシミュレータで読み込み
- Windowsで作成したテキストファイルをFatFsで確認
- FatFsで適当なテキストファイルを作成
- LinuxでディスクイメージをSDカードへ書き込み
- Windows上でSDカードに作成されたテキストファイルを確認
![SDイメージシミュレーション構成、VMware、Ubuntu、SDHC、ddコマンドdump、ddコマンドで書き戻し、EXE、FatFS、読み書き実施、DiskImage](https://www.simulationroom999.com/blog/wp-content/uploads/2021/04/02_SDイメージシミュレーション構成-1024x614.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
まずはWindows上でフォーマットだねー。
Windows上でフォーマット
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まぁ改めて説明はいらないと思うが、
SDカードをFATでフォーマットすればOKだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ん?
なんかフォーマット時に選べるのがNTFS、FAT、exFATになってるな?
FATってFAT12、FAT16、FAT32ってなかったっけ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
Windows10になってからのようだけど、フォーマットするサイズに応じて適切なFATを自動選択されるようだ。
まぁとりあえずFATでフォーマットで良いと思うよ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
了解。
適当なテキストファイルをSDカード内に作成
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
次はテキストファイルの作成かな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
とりあえず、
「0123456789」をコピペしまっくったテキストファイルでも放り込んでおこう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
じゃー、ファイル名は「long_file_name_file.txt」にして、
「0123456789」をコピペして11200[byte]のファイルを作ったよ。
![SDカード内のファイル、0123456789](https://www.simulationroom999.com/blog/wp-content/uploads/2021/04/02_SDカード内のファイル-1024x350.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
そういえば、「System Volume Information」ってフォルダが最初から居たんだけど、これなんだろ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
私もあまり把握してないが、
Windowsでフォーマットすると作成される隠しフォルダみたいだね。
書き込み中にSDカード挿抜して、ファイルが壊れた際の断片データが保管されてることもあるようだけど、正確なところはわからん。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
まぁ、とりあえず気にしないでおこう。
LinuxでSDカードのディスクイメージ作成
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
次はVMwareのLinux上でディスクイメージの作成だな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
VMwareとubuntuのセットアップは済んでるからとりあえず起動して、
コンソールの立ち上げまで来たよ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
じゃ、SDカードリーダーを抜き差ししてPCに再認識させる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ん?なんかVMwareが聞いてきたぞ?
![新しいUSBデバイスが検出されました、ホストに接続、仮想マシンに説億、仮想マシン名、選択を記憶して今後確認しない、OK、キャンセル](https://www.simulationroom999.com/blog/wp-content/uploads/2021/04/03_新しいUSBデバイスが検出されました.png)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
USBデバイスの接続先の切り替えだね。
「仮想マシンに接続」を選んでOKすれば、
VMware上のubuntuがSDカードを認識するはずだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
お!
なんか開いた!
![ubuntuのSDカード認識、BOOT、System Volume Information、long_file_name_file.txt、最近開いたファイル、星付き、ホーム、デスクトップ、ダウンロード、ドキュメント、ビデオ、ピクチャ、ミュージック](https://www.simulationroom999.com/blog/wp-content/uploads/2021/04/04_ubuntuのSDカード認識.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
これは、Windows側で作成したlong_file_name_file.txtがちゃんと見えてるね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
その状態で以下のdfコマンドを実行。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
とりあえず、コンソールに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
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
SDカードリーダは/dev/sdb1というデバイスとして認識されたようだね。
この状態で、以下を実行。
sudo dd if=/dev/sdb1 of=PhysicalDrive2
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
コンソール上にこんなのが出て、PhysicalDrive2ってファイルができたみたいだ。
85405+0 レコード入力
85405+0 レコード出力
43727360 bytes (44 MB, 42 MiB) copied, 0.639174 s, 68.4 MB/s
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
良し。
そのPhysicalDrive2ってファイルがSDカードのディスクイメージだ。
それをコピーしてWindows側にもってこよう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
なんか予想以上にサクっといったねー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まだそのディスクイメージがそのまま使えるかわからなけどねー。
まぁ、理屈上は大丈夫なはずなんだけど。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
ちょっと、不安になるようなこと言わないでよー!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
次回はそのディスクイメージをFatFsで見てみよう。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- WindowsでSDカードをFATでフォーマット。
- FAT12/FAT16/FAT32が選択できないのでFATを指定するのみ。
- 領域サイズで自動選択。
- テキストファイルをSDカード内に作成。
- LinuxでSDカードのディスクイメージ作成。
- dfコマンドでデバイス確認。
- ddコマンドでディスクイメージ作成。
バックナンバーはこちら。
コメント