如何使用单个命令将磁盘映像解压缩并添加到 SD 卡?

IQA*_*eas 26 zip dd

我受到以下限制:

  • 我的.zip计算机上有一个 1.0 GB 的文件,其中包含一个文件,一个raspbian. 解压缩后,此文件为 3.2 GB,名为2015-11-21-raspbian-jessie.img.
  • 下载 zip 文件后,我的计算机上只有不到 1.0 GB 的存储空间,没有足够的空间将图像解压缩到我的计算机上。
  • 这个文件需要解压缩并使用普通的dd.

在这些限制下,我可以将图像写入 SD 卡吗?

我知道可以通过管道传输数据tar,然后通过管道将数据传输到其他地方,但是,这是否仍然适用于zip文件格式,或者在访问任何文件之前是否需要解压缩整个存档?

yae*_*shi 34

使用unzip -p

unzip -p 2015-11-21-raspbian-jessie.zip 2015-11-21-raspbian-jessie.img | dd of=/dev/sdb bs=1M
Run Code Online (Sandbox Code Playgroud)

-p 将文件提取到标准输出

  • @yaegashi `unzip -p ... | sudo 'cat >/dev/sdb'` 但我更喜欢 `sudo chown $USER /dev/sdb` 这给了我额外的机会来检查我正在写入正确的设备。 (6认同)
  • 或者简单地`unzip -p ... >/dev/sdb`。 (5认同)
  • @Gilles 除了缺点之外,`dd` 有时对 `sudo` 很有用:`unzip -p ... | sudo dd of=/dev/sdb bs=1M` (2认同)