制作系统的最小图像

制作系统的最小图像

我想要制作Linux系统的镜像。我有一张64GB的SD卡,但系统只占用11GB。 dd 命令、Win32DiskManager 等都会创建 64 GB 的原始映像,比 11 GB 大得多。

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G   11G   46G  20% /
devtmpfs        430M     0  430M   0% /dev
tmpfs           462M  4.0K  462M   1% /dev/shm
tmpfs           462M   13M  450M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           462M     0  462M   0% /sys/fs/cgroup
/dev/mmcblk0p1   43M   25M   18M  59% /boot
tmpfs            93M  4.0K   93M   1% /run/user/1000

我还有另一张 16 GB SD 卡,想将整个系统转移到 16 GB SD 卡上。最好是创建一个 11 GB 的 img 文件,稍后我可以在 16 GB SD 卡上刻录。

答案1

您无法将 64 GB 设备的映像写入 16 GB 卡。这与“图像”的含义直接矛盾。

但这根本不重要:Linux只关心文件系统上的文件,所以使用

sudo mksquashfs /path/where/you/mounted/your/sdcard sdcard.squashfs -comp zstd

制作所有文件、目录、符号链接、设备文件等的压缩存档,包括所有属性。

您可以稍后安装该存档,例如使用udisksctl loop-setup -f sdcard.squashfs,或sudo mount -o loop sdcard.squashfs /mnt查看内部,从那里获取文件等等。

您还可以通过安装和使用将所有文件恢复到新格式化的(例如 ext4、F2FS)SD 卡

sudo cp -ar /mnt/* /mount/point/of/sdcard

或者简单地通过运行

sudo unsquashfs -d /mount/point/of/sdcard sdcard.squashfs

相关内容