番外篇:https://www.bilibili.com/video/BV1fuCrYFEe5/
https://jia.je/hardware/2025/06/10/linux-vm-on-harmonyos-computer/ 在鸿蒙电脑上的虚拟机内启动 Linux
我个人比较推荐的做法是使用 squashfs。例如,创建最高压缩率的zstd归档算法的squashfs:
mksquashfs /etc etc.squashfs -xattrs -comp zstd -Xcompression-level 22 -b 1M
-xattrs 参数在 mksquashfs 中用于保留扩展属性,包括ACL(Access Control Lists)和SELinux 上下文(security.selinux)以及其他命名空间下的扩展属性。至于软链接、硬链接和权限属性,默认就完整保留,不需要额外参数。因此也可以简化到
mksquashfs /etc etc.squashfs
表示使用 zlib 压缩算法,默认压缩率,保留上述特殊扩展属性以外的全部元数据。-b 1M 指定块大小1M,这是squashfs的最大值。显然,squashfs格式天生就是为挂载而生的,要读取 etc.squashfs 的文件,只需挂载它到某个目录:
sudo mount -t squashfs -o loop etc.squashfs /mnt/etc
只列出文件(等效于 tar -tf 或 zcat | tar -t):
unsquashfs -l etc.squashfs
unsquashfs -l etc.squashfs /profile.d # 列出 profile.d 文件夹
解压特定文件(等效于 tar -x 某文件):
unsquashfs -f -d extracted etc.squashfs passwd
解压整个 squashfs(不挂载):
unsquashfs etc.squashfs
对于Windows,可以使用 7zip NanaZip 等软件打开squashfs包,也可以直接在WSL2内用上述命令挂载。
EroFS就不推荐了,
mkfs.erofs
目前坑比较多,用起来很复杂,不像 squashfs 安装轻松简单。#Linux