1つのコマンドでディスクイメージを解凍してSDカードにddする方法は?


14

私は次の制限を受けています。

  • .zip私のコンピューターには1.0 GBのファイルがあり、その中には1つのファイル(ディスクイメージ)が含まれていますraspbian。圧縮されていない場合、このファイルのサイズは3.2 GBで、名前は2015-11-21-raspbian-jessie.img
  • zipファイルをダウンロードした後、コンピューターに1.0 GB未満のストレージスペースがあります。コンピューターにイメージを抽出するのに十分なスペースがありません。
  • このファイルは、圧縮されていない古いプレーンを使用してSDカードに書き込まれる必要がありますdd

これらの制限の下でSDカードに画像を書き込むことは可能ですか?

データをパイプ処理してtarからそのデータを他の場所にパイプ処理することは可能ですが、zipファイル形式では引き続き機能しますか、またはファイルにアクセスする前にアーカイブ全体を圧縮解除する必要がありますか?


zipファイルを外付けのフラッシュドライブに解凍するだけでよいことに気付きましたが、これはもっと楽しいです。チャレンジ(および学習経験)のためにこれをやってみたい!
IQAndreas

3
SDカードがデバイスの/dev/sdh場合、実行しunzip -p file.zip >/dev/sdhます。(私は使用ddが伝統的であることを知っていますが、それは必要ではありません。)
John1024

ほら それがなくても動作しddますか?Block Sizeパラメーターが必要になると思いました。
CRThaze

2
はい、それはなしで動作しddます。以前は、テープに書き込む際にブロックサイズが非常に重要でした。ディスクの場合、問題ではありません。
ジョン1024

1
@TheCzar別にテープから、ブロック・サイズ・パラメータにddできるだけ失うデータ遅いものダウン(少しアップやレアケース速度のものでは、十分な大きさであれば)。忘れてくださいdd、それは非常にめったに役に立ちません。
ジル「SO-悪であるのをやめる」

回答:


24

使用unzip -p

unzip -p 2015-11-21-raspbian-jessie.zip 2015-11-21-raspbian-jessie.img | dd of=/dev/sdb bs=1M

コードが実行されており、ハードドライブ領域もRAMも不足していません。これまでのところすべて良い。
–IQAndreas

5
または単にunzip -p … >/dev/sdb
ジル「SO-悪であるのをやめる」

1
マイナス面以外の@Gillesは、次のdd場合に役立つことがありsudoます。unzip -p ... | sudo dd of=/dev/sdb bs=1M
yaegashi

5
@yaegashi unzip -p … | sudo 'cat >/dev/sdb'しかしsudo chown $USER /dev/sdb、これにより、適切なデバイスに書き込みを行っていることを確認する機会が増えます。
ジル 'SO-悪であるのをやめる'

うまくいきました!誰かがコマンドをコピーして貼り付けるだけの場合に備えて、正確なファイル名で編集する場合は注意してください。
–IQAndreas

0

前者のソリューションと少し苦労した後:

 unzip -p ~/Downloads/2020-02-05-raspbian-buster-lite.zip | sudo dd of=/dev/disk2 bs=1m

または、進行状況を確認したいときにインストールした場合pv

 unzip -p ~/Downloads/2020-02-05-raspbian-buster-lite.zip | pv | sudo dd of=/dev/disk2 bs=1m
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.