STC214/树莓派备份系统镜像并压缩

Created Sat, 06 Feb 2021 03:14:51 +0800 Modified Sat, 06 Feb 2021 03:14:51 +0800

原文:https://cloud.tencent.com/developer/article/1731767

前言

手上的pi zero w用了一段时间,上面也部署了相当多的服务应用,都是心血啊,可不想啥时候系统损坏了重装一遍,于是想到备份一波系统镜像    

备份

1.本地新建一个文件,将格式改为.img2.如 pizero.img3.树莓派系统内存卡插上电脑4.打开win32 disk imager,镜像文件选择好刚才新建的镜像,驱动选择插上的内存卡5.点击 read (读取)!!!!,千万不要选错.6.这样算是备份好了,但是有个问题,这样相当于将内存卡复制了一份,大小会和原先内存卡一样大.因此我们需要进行压缩
压缩

PiShrink压缩脚本是GitHub的一位大佬写的

(需要Linux环境,将以上的镜像文件将其挂载至Linux)

https://github.com/Drewsif/PiShrink

下载脚本,移动到bin目录是为了全局都可以直接使用脚本

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh  
chmod +x pishrink.sh  
sudo mv pishrink.sh /usr/local/bin      

用法也相当简单

sudo pishrink.sh pizero.img    
    
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop1: 88262/1929536 files (0.2% non-contiguous), 842728/7717632 blocks
resize2fs 1.42.9 (28-Dec-2013)
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/loop1 to 773603 (4k) blocks.
Begin pass 2 (max = 100387)
Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 236)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 7348)
Updating inode references     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/loop1 is now 773603 blocks long.

Shrunk pi.img from 30G to 3.1G

效果相当明显,直接将30G的镜像压缩成4.8G,同时在恢复镜像时,还会自动扩容.

如果想压缩成一个新文件呢?

加上-s

sudo pishrink.sh -s pizero.img newpi.img

参考

https://shumeipai.nxez.com/2020/09/11/pishrink-make-raspberry-pi-images-smaller.html