HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2020/03/01

FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利 FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利

(ラズパイや Jetson Nano等のワンボードマイコン等への OSイメージの書き込みが簡単にできる)

Tags: [Windowsアプリ]




●ダウンロード
(ベクターの登録処理には時間差があります)
FWinSdCardImager SDカード・USBメモリ イメージ書き込みアプリ Raspberry Piや NVIDIA Jetson Nano等のワンボードマイコン等の OSイメージの SDカードへの書き込みを簡単に行なう事ができます ベクターのダウンロードページへ


● FWinSdCardImager SDカード・USBメモリ イメージ書き込みアプリ

 FREE WING's Windows Sd-Card Imager

 Raspberry Piや NVIDIA Jetson Nano等のワンボードマイコン等の OSイメージの SDカードへの書き込みを簡単に行なう事ができます
 既存の SDカード・USBメモリ書き込みアプリと比較して、さまざまなアドバンテージを持っております。

 Windows 7 ~ Windows 10で動作します。(それぞれ 32bit、64bitの両方に対応)


●インストール方法

ZIPファイルを任意のディレクトリに解凍して FWinSdCardImager.exeを実行する。

FWinSdCardImager.exe -- 実行ファイル
FWinSdCardWrite.bat -- イメージ書き込み成功後の実行ファイルのサンプル
7-Zipディレクトリ -- 7z系のアーカイブファイルを読み込む場合に必要
※ 7z系のファイルを解凍しない場合は「7-Zipディレクトリ」は不要です
※ ZIP形式のアーカイブファイルは元々対応しています。

7z系のファイル(拡張子)
 ".7z", ".xz", ".bzip2", ".bz2", ".gzip", ".gz", ".tar"


●制作の動機・アピールポイント

 1) 既存のアプリは実行ファイルサイズが巨大すぎる
  SDカード書き込みアプリとして、Win32 Disk Imagerや balenaEtcher(以下、Etcher)等が有名ですが、実行ファイルサイズが「SDカードヘ書き込み」の機能と考えた場合に Win32 Disk Imagerは 40MB、Etcherに至っては 246MBと異常な程に巨大です。

  それに比べて FWinSdCardImagerの実行ファイルのサイズはたったの 83KBです。
  ・Win32DiskImager比: 83KB/ 40MB = 1/ 481
  ・Raspberry Pi Imager比: 83KB/ 79MB = 1/ 951
  ・balena Etcher比: 83KB/248MB = 1/2987
  同じ機能なのにこれだけのファイルサイズの違い。(資源の無駄遣い)
  ※ 私は「例え1バイト」でもケチる性格です。

実行ファイルサイズ実行ファイルサイズ比
FWinSdCardImager 83KB程度--
Win32 Disk Imager v1.040.8MB481倍の無駄
Raspberry Pi Imager v1.279.5MB957倍の無駄
balenaEtcher v1.5.79246MB2987倍の無駄

実行フォルダサイズFWinSdCardImager比
FWinSdCardImager2.93MB程度--
Win32 Disk Imager v1.040.8MB約 14倍の無駄
Raspberry Pi Imager v1.279.5MB27倍の無駄
balenaEtcher v1.5.79246MB約 84倍の無駄

* Win32 Disk Imager v1.0
* balenaEtcher - Flash OS images to SD cards & USB drives v1.5.79
Raspberry Pi Imager for Windows

 2) 意図しないメディアへの誤書き込み防止の安全機能
  FWinSdCardImagerは書き込みメディアを指定後に、アクセスランプを点滅する機能があります。
  アクセスランプの点滅を確認する事で、書き込み対象のメディアを目視で確認できます。
  ※ 本機能をご利用の場合はカードリーダ等にアクセスランプが搭載されている必要があります。

 3) ZIPアーカイブ、7Zアーカイブの解凍書き込み機能に対応
  FWinSdCardImagerはアーカイブファイルの中の .imgファイルを解凍処理しながら SDカードへ書き込みできます。
  これにより、事前にアーカイブファイルを解凍する必要がなく、解凍の為の無駄なディスク領域を使用しません。
  Win32 Disk Imagerにはアーカイブ解凍書き込み機能は有りません。
  Etcherは各種アーカイブの解凍書き込みに対応しています。
  ZIPアーカイブ対応は C# .NET 4.5の ZIP機能を使う事で実現できました。
  7Zアーカイブ対応は 7-Zipアプリを外部プロセスで呼び出す事で実現できました。

 ・対応しているアーカイブファイル形式(拡張子、大文字小文字区別無し)
  ".zip", ".7z", ".xz", ".bzip2", ".bz2", ".gzip", ".gz", ".tar"

  例えば、Jetson Nanoの OSイメージファイルは ZIPファイルで 5.17GB、解凍した IMGファイルが 12GBもあります。
  ZIPアーカイブ解凍書き込み機能が有ると ZIPファイルを解凍する手間や時間、IMGファイル用の 12GBの空き領域が不要になり良い事づくめとなります。

 4) メディア書き込み後のバッチファイル実行機能
  FWinSdCardImagerはメディアへの書き込み成功後にバッチファイルを呼び出す機能があります。
  これにより、SDカードへの書き込み後に特定の初期化処理を行ないたい場合に便利です。

 5) SDカードへの書き込みのプログラミング方法を習得したかった
  SDカードへのデバイスへのセクタ書き込みの方法を習得し、SDカード書き込みアプリを作成する目途が付いたので作成しました。

 制作の動機としては (1)が最も大きく、(2)(3)(4)(5)の順番になります。
 アピールポイントとしては (2)(3)(4)(1)の順番になります。


●使い方
 FWinSdCardImager(以下、本アプリケーション)

 ・「Img / Zip / 7z file」
  書き込みを行なう .imgファイルや .imgファイルを含んだ Zip/7zファイルを指定します。
  ※ アーカイブファイル内に複数の .imgファイルが有る場合、最初に見つかった .imgファイルが書き込み対象となります。

 ・対応しているアーカイブファイル形式(拡張子、大文字小文字区別無し)
  ".zip", ".7z", ".xz", ".bzip2", ".bz2", ".gzip", ".gz", ".tar"

 ・ドライブ選択のプルダウン
  ※ ドライブ選択のプルダウンは「物理ドライブ番号」を基準にして、それに対応して認識しているドライブレター(C:、D:等)とボリュームラベルを表示します。
  ※ 「物理ドライブ番号」は「コンピュータの管理」の「ディスクの管理 diskmgmt.msc」画面で確認できます。

 ・対応しているメディアデバイス
  SDカード、USBメモリ、各種リムーバブルデバイス

 ・「〇(丸矢印)」
  ドライブ情報を更新します。通常は本アプリケーションが全自動で行ないます。
  本アプリケーションを起動後にメディアを抜き差しした場合にクリックします。

 ・「*」
  アクセスランプ点滅機能。意図しないメディアへの誤書き込み防止の安全機能。
  アクセスランプの点滅を確認する事で、書き込み対象のメディアを目視で確認できます。
  ※ 本機能をご利用の場合はカードリーダ等にアクセスランプが搭載されている必要があります。

 ・「▲Eject」
  指定のデバイスをイジェクト(取り出し)します。

 ・□「Eject Media」
  書き込み動作後のメディアイジェクト機能
  チェックボックスにチェックを入れておくと SDカードへの書き込み動作後に「メディアの取り出し」をします。
  このイジェクト機能により、書き込み完了後にすぐに SDカードメディアの取り出しができるので、ワンボードマイコンの開発が迅速に捗ります。
  ※ メディアの取り出しは後述の FWinSdCardWrite.batの実行後に行なわれます。

 ・「Cancel」
  書き込み動作中にクリックする事で書き込み動作を中断します。

 ・「Read」
  SDカードの内容を読み込んでファイルに書き出します。
  通常は SDカードで使用中の領域のみを読み込んでファイルに書き出します。
  使用領域の情報は MBR(Master Boot Recode)の パーティションテーブル情報を解析処理して使用します。(GPT形式には非対応です。)
  「□ Whole」にチェックを入れると SDカードの全領域を読み込んでファイルに書き出します。

 ・「Verify」
  SDカードの内容とファイルの内容とのベリファイをします。
  先頭からファイルサイズと同じ範囲を順番にコンペア動作をし、不一致の所で比較鰓ーで停止します。

 ・□「Write」
  SDカードへの書き込み動作をします。
  安全の為に Writeボタンの左側のチェックボックスにチェックを入れる必要があります。チェックを入れる事で Writeボタンをクリックできる様になります。
  書き込み成功後に SHA-256のハッシュを表示しますが、これはハッシュ文字列の前後の 16文字だけにして、中間のハッシュ文字列を意図的に省略しています。

 ・プログレスバー
  書き込みやベリファイ、読み込み等の SDカードへの操作の進行状況を表示します。
  書き込みやベリファイの動作進行中はウィンドウ右上の「X」でアプリを終了できません。

 ・サイズ表示
  上段は、書き込み・ベリファイ時はイメージファイルのサイズ(バイト数)、読み込み時は読み込むサイズ(バイト数)
  下段は、現在処理しているサイズ(バイト数)

 ・FWinSdCardWrite.bat(バッチファイル)
  イメージ書き込み成功後の実行ファイルのサンプル。
  例えば、ラズパイの Raspbian OSではセキュリティの観点からデフォルトで SSH接続機能が無効化されています。
  SSH機能を有効化する手順として /bootパーティションにダミーの sshファイルを作成すると言う方法があります。
  この様な書き込み後に決まった処理を行ないたい場合に使用します。
  この機能が不要な場合は FWinSdCardWrite.batファイルを削除します。
  なお、バッチファイルの引数の %1に書き込み時に指定したドライブ名が入ります。

 ラズパイの Raspberry Pi OS(旧称:Raspbian OS)ではセキュリティ上の理由で SSH接続が無効になっています。

A security update for Raspbian PIXEL
If you want to enable SSH, all you need to do is to put a file called ssh in the /boot/ directory.

Downloads Raspberry Pi OS
 Raspberry Pi OS (previously called Raspbian)


● FWinSdCardWrite.bat(バッチファイル)の例

 ラズパイの Raspbian OSで ssh接続を有効にするパッチ例。
@echo off
rem FWinSdCardImager sample batch file

rem Enable SSH connection for Raspberry Pi Raspbian OS
rem .
rem A security update for Raspbian PIXEL
rem https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/
rem .
rem http://downloads.raspberrypi.org/raspbian/release_notes.txt
rem 2016-11-25:
rem * SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition
rem If you want to enable SSH, all you need to do is to put a file called ssh in the /boot/ directory.

rem TIMEOUT 5 /NOBREAK

echo FWinSdCardImager sample batch file
echo Drive Letter %1
echo.
echo Enable SSH connection for Raspberry Pi Raspbian OS
echo Create ssh file to boot partition (equivalent to boot directory)
echo (type nul to Create size 0 file)
echo.
type nul > %1:\ssh
pause


●制限事項
 ・本アプリケーションの実行には「管理者権限」が必要です。
 ・メディアのパーティション情報と異なる OSイメージを書き込む場合、初回のみ書き込みの最初で失敗する事があります。(回避策を調査中)
  初回の書き込み時に書き込み失敗した場合は再度書き込み操作を行なってください。
  (例: Raspbian OSの SDカードに Armbian OSのイメージを書き込む場合等)
 ・メディアのパーティション情報と異なる OSイメージを書き込む場合、初回の書き込みのみ「成功」になっても「Verify」で不一致のエラーに成る事があります。(回避策を調査中)
  初回の書き込み時のみ「Verify」で不一致の場合は再度書き込み操作を行なってください。
 ・NVIDIA Jetson Nanoのイメージファイルの書き込み成功後に「Verify」をしても必ず不一致エラーになります。(Etcherの書き込みでの不一致になる事を確認済み、Jetson Nanoの実動作に問題無い事を確認済み)
 ・NVIDIA Jetson Nanoのイメージファイルの書き込み後に「ドライブ X:を使うにはフォーマットする必要があります。」ダイアログが無数に出ますが、これは Windows側と Jetson Nanoのイメージファイルの双方の「仕様」です。
  全て「キャンセル」で「フォーマット確認ダイアログ」を閉じてください。
 ・読み込み時のメディアの使用領域の情報取得は MBR形式で解析処理を行ないます。GPT形式には非対応です。


●動作環境
 ・Windows 7 Professional 64bit
 ・Windows 10 Professional 64bit
 ・以上の環境で動作確認しました。


●別途必要なファイル
 Microsoft .NET Framework 4.5.1

Microsoft .NET Framework 4.5.1のインストール方法


●法的情報

 本アプリケーションは 7z系ファイルの解凍に以下のアプリケーションを使用しています。

 7-Zip Copyright (C) 1999-2019 Igor Pavlov.
 GNU LGPL License

 7-Zipディレクトリの中身は 7-Zip 19.00 (2019-02-21) for Windowsの 32bit版を解凍したもので、7-Zipのホームページ(https://www.7-zip.org/)からダウンロードできます。
 7-Zipは GNU LGPLのライセンスです。詳細は 7-Zipディレクトリ内の License.txtをご覧ください。


●使用上の注意
 このプログラムによる損失については作者は一切の責務を負いませんので、
 使用者で責任をもって頂けるようにお願いします。


●改版履歴
 2020/03/01 Ver 1.0
  ・正式版として公開

 2020/03/07 Ver 1.1
  ・指定したファイルの形式を表示する機能を追加
  ・メディア自体の「物理ドライブ番号」と実サイズを表示する様に改善
  ・プルダウンでドライブを選択した時にドライブの詳細情報を表示する様に改善
  ・Writeボタンをクリック時に安全の為に確認ダイアログの表示を追加
  ・書き込み後にメディアをイジェクト(取り出し)する機能を追加
  ・「Verify」のベリファイ機能を追加
  ・「Read」の読み込み機能を追加
  ・プログレスバーに現在実行中の動作内容の表示を追加
  ・書き込みやベリファイの動作中は右上の「X」でアプリを終了しない様に改善
  ・.xz形式のアーカイブファイルを指定した時に .imgファイルの解析に失敗する問題を修正
  ・7z系ファイルの一部の拡張子のファイルが選択しにくい問題を修正
  ・ドライブ名の構成に因っては SDメディアのドライブを指定できなくなる問題を修正
  ・書き込み時の SDメディアの制御方法を改善
  ・アクセスランプ点滅機能で一部のメディアで点滅しない問題を修正
  ・本ドキュメントの内容を追記修正

 2020/04/28 Ver 1.2
  ・デバイスの Ejectボタンを追加
  ・ドライブレター(A:~Z:)の割り当てが無い場合にデバイスを選択できない問題を修正

 2020/05/31 Ver 1.3
  ・ファイル名の部分に URLを指定する事で、ネットワークからダウンロードしつつ SDカードに書き込みを行なう「On the Fly」書き込みに対応(実験的実装)

 2020/07/10 Ver 1.4
  ・タスクバーに「進捗ゲージ」を表示する様に改善

・FWinSdCardImager タスクバーに「進捗ゲージ」を表示する様に改善
FWinSdCardImager タスクバーに「進捗ゲージ」を表示する様に改善
 進行中は「緑色」で表示します。

・FWinSdCardImager タスクバーに「進捗ゲージ」を表示する様に改善
FWinSdCardImager タスクバーに「進捗ゲージ」を表示する様に改善
 失敗の時は「赤色」で表示します。


● FWinSdCardImager のダウンロード、ライセンス購入方法

 本アプリケーションは、ダウンロード配布は株式会社ベクターの提供する「Softライブラリ」、ライセンス購入は同社の提供するシェアウェア送金サービスの「レジサービス」を使用しています。

 FWinSdCardImager のダウンロード
https://www.vector.co.jp/soft/winnt/util/se520996.html

 ライセンス購入方法
 シェアレジ作品番号:SR456480


● FWinSdCardImager のライセンス形態

 ・家庭内や個人でご利用の場合
 家庭内や個人利用等の一般で利用される場合のみ、無償のフリーウェアとします。
 (家庭内や個人利用等で利用される場合に限り、本アプリケーションの機能制限は有りません。)

 ・商用でご利用の場合
 企業や会社等の商用でご利用の場合(SOHO等の個人事業主も該当します)にはライセンスをご購入して頂く必要がございます。 ご購入方法につきましては株式会社 Vectorのレジサービスをご利用ください。
 なお、ライセンスはご利用になるユーザーごとに必要です。
 (ライセンス購入前の本アプリケーションの試用期間は利用開始日から 10日間とし、それ以降のご利用にはライセンスをご購入して頂く必要がございます。)

 ライセンス購入の例:
 ・1人が10台のパソコンで使用する場合:ご利用の人数が1人なので1ライセンスの購入が必要となります。
 ・10人が1台のパソコンで使用する場合:ご利用の人数が10人なので10ライセンスの購入が必要となります。

 ご不明な点は下記の連絡先までお問い合わせください。


●連絡先、著作権情報
http://www.neko.ne.jp/~freewing/
Copyright (c) 2020 FREE WING, Y.Sakamoto


[動作可能機種]
・Windows 7
・Windows 8
・Windows 8.1
・Windows 10
(それぞれ 32bit、64bitの両方に対応)

[動作可能OS (Windows 7,8,8.1,10 など)]
・Windows 7 Professional 64bit
・Windows 10 Professional 64bit
 で動作確認


●スクリーンショット FWinSdCardImager SDカード イメージ書き込みアプリ

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ


・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ


・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 ベリファイ失敗時。

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 書き込み動作中。

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 書き込み成功時。

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 書き込み成功時。

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 ベリファイ動作中。

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 ベリファイ成功時。(元ファイルの内容と書き込み内容が完全一致)

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 読み込み動作中。

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 読み込み成功時。


● FWinSdCardImager NVIDIA Jetson Nanoのイメージファイルの制限事項

・FWinSdCardImager NVIDIA Jetson Nanoのイメージファイルの制限事項
FWinSdCardImager NVIDIA Jetson Nanoのイメージファイルの制限事項
 ・NVIDIA Jetson Nanoのイメージファイルの書き込み成功後に「Verify」をしても必ず不一致エラーになります。
 Etcherの書き込みでも全く同じ不一致内容になる事を確認済み
 Jetson Nanoの実動作に問題無い事を確認済み

・FWinSdCardImager NVIDIA Jetson Nanoのイメージファイルの制限事項
FWinSdCardImager NVIDIA Jetson Nanoのイメージファイルの制限事項
 ・NVIDIA Jetson Nanoのイメージファイルの書き込み後に「ドライブ X:を使うにはフォーマットする必要があります。」ダイアログが無数に出ますが、これは Windows側と Jetson Nanoのイメージファイルの双方の「仕様」です。
  全て「キャンセル」で「フォーマット確認ダイアログ」を閉じてください。


● FWinSdCardImager 実行ファイルのサイズ比較

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 FWinSdCardImager 実行ファイルのサイズ 83KB程度

・FWinSdCardImager SDカード イメージ書き込みアプリ
FWinSdCardImager SDカード イメージ書き込みアプリ
 FWinSdCardImager 実行フォルダのサイズ 2.93MB程度

・競合アプリ Win32 Disk Imager 40.8MB
競合アプリ Win32 Disk Imager 40.8MB
 Win32 Disk Imager v1.0 実行フォルダのサイズ 40.8MB

・競合アプリ balena Etcher 246MB
競合アプリ balena Etcher 246MB
 balenaEtcher - Flash OS images to SD cards & USB drives v1.5.79 実行フォルダのサイズ 246MB



Tags: [Windowsアプリ]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

FWinPiFinder ラズベリーパイ IPアドレス発見アプリ。ARPコマンドでラズパイの IPアドレスを探索発見する
FWinPiFinder ラズベリーパイ IPアドレス発見アプリ。ARPコマンドでラズパイの IPアドレスを探索発見する

  Raspberry Piや NVIDIA Jetson Nano等の IPアドレスを MACアドレスの OUI部分を使用して発見する

Raspberry Piに Avahi Bonjourサービスを入れて、ホスト名で接続できる様にする方法
Raspberry Piに Avahi Bonjourサービスを入れて、ホスト名で接続できる様にする方法

  ラズパイに Bonjourサービスを入れて IPアドレスが分からなくてもホスト名で簡単に接続する方法

Raspberry Piや Jetson NANO等をネットワークに接続した場合の IPアドレスの便利ツール xfinder
Raspberry Piや Jetson NANO等をネットワークに接続した場合の IPアドレスの便利ツール xfinder

  DHCPで自動で IPアドレスが割り当てられる場合に、ワンボードマイコンの IPアドレスを調べる場合に便利




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2020 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/software/windows_sd_card_imager/