マルチUSB書き込みツールのPopsicle

USBメモリなどにOSイメージなどを書き込む時GUIだとEtcherやUNetBootinなどのツールを使ったりしますが，同時に複数の媒体への書き込みに対応していません．同時に書き込みたい場合私はteeコマンドとddコマンドを利用したりしていましたが，PodsicleというツールがGUI/CUIで同時書き込みに対応しているようなので試してみました．Rust製MITライセンスです．

https://github.com/pop-os/popsicle[pop-os/popsicle: Multiple USB File Flasher]

導入

$ git clone https://github.com/pop-os/popsicle

$ cd popsicle

$ make

$ sudo make install

make installだとGUT/CUIの療法が導入されます．make install-gtkだとGTK(GUI)のみ，make install-cliだとCLIのみです．

GUI利用

popsicle-gtkを起動すると書き込みイメージの選択画面になります．ここでイメージを指定すると読み込みチェックが走りしばらく待たされます．(CUIではチェックしないことも出来る)

次に書き込み先のデバイス選択です．書き込みたいデバイスをチェックします．この画面になってからUSBメモリの抜き差しをしても反映されるので便利です．ちなみに内蔵SD cardの/dev/mmcblk0`はここにはでてきませんでした(CUIでは利用できます)．
＃SD-USB変換でUSB経由だとSD card書き込み可能です．

書き込み中画面です．複数デバイスの場合はそれぞれプログレスが表示されます．

書き込み完了．

CUI利用

CUIはpopsicleコマンドです．

$ popsicle -h

popsicle_cli 0.1.5

USB Flasher

USAGE:

popsicle [FLAGS] <IMAGE> [DISKS]...

FLAGS:

-a, --all        Flash all detected USB drives

-c, --check      Check written image matches read image

-h, --help       Prints help information

-u, --unmount    Unmount mounted devices

-V, --version    Prints version information

-y, --yes        Continue without confirmation

ARGS:

<IMAGE>       Input image file

<DISKS>...    Output disk devices

イメージファイルと書き込み先のデバイスを指定して実行すると書き込めます．GUIでは/dev/mmcblk0は出てきませんでしたが，CUIでは書き込めました．

$ sudo popsicle ~/Downloads/2018-06-27-raspbian-stretch.img /dev/sdc /dev/sdd /dev/mmcblk0

ちなみにddで書き込む時は圧縮イメージファイルを展開しながら書き込むことが多い(zcat image.gz|pv|sudo dd of=/dev/sdz bs=4M)のですが，そういったことは出来なさそうです．

$ zcat ~/Downloads/2018-06-27-raspbian-stretch.zip | popsicle -u - /dev/mmcblk0

popsicle: error with image at '-': image could not be opened: No such file or directory (os error 2)

$ zcat ~/Downloads/2018-06-27-raspbian-stretch.zip | popsicle -u /dev/stdin /dev/mmcblk0

popsicle: error with image at '/dev/stdin': image was not a file

$ mkfifo zip.img

$ zcat ~/Downloads/2018-06-27-raspbian-stretch.zip > ./zip.img  &

$ sudo popsicle ./zip.img /dev/mmcblk0

popsicle: error with image at './zip.img': image was not a file

関連

ブータブルUSBメモリを作るEtcherを試す – matoken’s meme

UNetBootin で opencocon の USB メモリを作る – matoken’s meme

ブートUSBメモリなどを作るmkusbを試してみる – matoken’s meme

DebianのisoイメージをUSBメモリに書き込み – matoken’s meme

Tailsの導入にtails-installパッケージが便利 – matoken’s meme

Linuxで一部のパーティションの自動マウントを無効にする – matoken’s meme

Gnomeのメディア自動マウント切り替え – matoken’s meme

Linux 環境での Raspberry Pi 向け OS 書き込みTips – matoken’s meme

Windows でdd を試みる(Kobo イメージ書き込み) – matoken’s meme

不正なUSBデバイスからPCを守るUSBGuardを試す – matoken’s meme