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

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

我受到以下限制:

  • 我的计算机上有一个 1.0 GB 的.zip文件,其中包含一个文件,即raspbian.解压后,该文件大小为 3.2 GB,名为2015-11-21-raspbian-jessie.img.
  • 下载 zip 文件后,我的计算机上的存储空间不足 1.0 GB,没有足够的空间将图像提取到我的计算机上。
  • 该文件需要解压缩并使用普通的旧 .txt 文件写入 SD 卡dd

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

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

答案1

使用unzip -p

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

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

答案2

经过一番与前一个解决方案的斗争之后:

 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

答案3

为了方便起见,我通常使用unzip -p 2015-11-21-raspbian-jessie.zip >/dev/sdbor 。zcat 2015-11-21-raspbian-jessie.gz >/dev/sdb这是因为在进行大数据传输时,我们期望操作系统自动调整块大小(根据源块大小、目标块大小、内存可用性等)以获得最佳性能,结果证明它们的工作速度比dd if= of= bs=(也许因为我没有暴力尝试所有可能的块大小选择dd)^_^

相关内容