![](https://shumeipai.nxez.com/wp-content/uploads/2020/09/20200911003456718.png)
在制作树莓派系统镜像(img 文件)时,我们通常会通过工具复制 TF 卡。这样你将得到一个和 TF 卡容量一样的 img 文件。如果你要将这个文件烧录到容量更小的 TF 卡上时,尴尬的一幕就发生了。
这时候你需要了解名为 PiShrink 的 bash 脚本。它可使树莓派镜像更小。
PiShrink 将自动缩小镜像,然后在启动时将其调整为 SD 卡的最大大小。这能更快地将镜像复制到 SD 卡中,同时缩小的镜像将更好地压缩。这对于将大容量镜像放入 SD 卡非常有用。
在这个简短的指南中,我们将学习如何在类 Unix 系统中将树莓派镜像缩小到更小。
### 安装 PiShrink
安装 PiShrink,请先在 Linux 终端使用以下命令下载最新版本:
```
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
```
接下来,将下载的 PiShrink 变成二进制可执行文件:
```
chmod +x pishrink.sh
```
移动到 bin 目录:
```
sudo mv pishrink.sh /usr/local/bin/
```
### 让树莓派镜像更小
你可能已经知道,Raspbian 是所有树莓派型号的官方操作系统。树莓派基金会为 PC 和 Mac 开发了树莓派桌面版本。你可以创建一个 live CD,并在虚拟机中运行它,甚至也可以将其安装在桌面上。树莓派也有少量非官方操作系统镜像。为了测试,我从官方下载页面下载了官方的 Raspbian 系统。
解压下载的系统镜像:
```
unzip 2019-04-08-raspbian-stretch-lite.zip
```
上面的命令将提取当前目录中 2019-04-08-raspbian-stretch-lite.zip 文件的内容。
让我们看下提取文件的实际大小:
```
du -h 2019-04-08-raspbian-stretch-lite.img
1.7G 2019-04-08-raspbian-stretch-lite.img
```
如你所见,提取的树莓派系统镜像大小为 1.7G。
现在,使用 PiShrink 缩小此文件的大小,如下所示:
```
sudo pishrink.sh 2019-04-08-raspbian-stretch-lite.img
```
示例输出:
```
Creating new /etc/rc.local
rootfs: 39795/107072 files (0.1% non-contiguous), 239386/428032 blocks
resize2fs 1.45.0 (6-Mar-2019)
resize2fs 1.45.0 (6-Mar-2019)
Resizing the filesystem on /dev/loop1 to 280763 (4k) blocks.
Begin pass 3 (max = 14)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 3728)
Updating inode references XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/loop1 is now 280763 (4k) blocks long.
Shrunk 2019-04-08-raspbian-stretch-lite.img from 1.7G to 1.2G
```
正如你在上面的输出中看到的,树莓派镜像的大小已减少到 1.2G。
你还可以使用 -s 标志跳过该过程的自动扩展部分。
```
sudo pishrink.sh -s 2019-04-08-raspbian-stretch-lite.img newpi.img
```
这将创建一个源镜像文件(即 2019-04-08-raspbian-stretch-lite.img)的副本到一个新镜像文件(newpi.img)并进行处理。有关更多详细信息,请查看最后给出的官方 GitHub 页面。
https://github.com/Drewsif/PiShrink
https://shumeipai.nxez.com/2020/09/11/pishrink-make-raspberry-pi-images-smaller.html