假设下载的桌面系统为ubuntu.iso。

一、进入iso并安装软件包

        首先创建一个目录,如my-ubuntu,然后将ubuntu.iso挂载到这个目录上,或者不用挂载,直接解压也行,总之要能进入到iso里面去:

sudo mount -o loop /path/to/ubuntu.iso /home/it8343/my-ubuntu

        然后cd到my-ubuntu这个目录中,通过tree命令找到filesystem.squashfs这个文件,将它拷贝到其它普通目录,并解压它:

sudo unsquashfs filesystem.squashfs

        当然,你可能在此之前需要安装解压工具:

sudo apt-get install squashfs-tools

        解压之后就可以得到一个有完整文件系统的子系统,我们可以直接使用chroot进入该系统:

使用chroot定制系统-LMLPHP

sudo chroot squashfs-root

        进入之后就可以在里面自定义安装/卸载软件包了,就和操作普通的Linux系统一样。

        进入之后可能没有网络,你可能还需要配置dns或者IP等,视具体情况而定:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

二、重新生成iso文件

        将修改后的文件夹重新压缩,并将压缩文件拷贝到iso的文件夹里面去替换原文件:

sudo mksquashfs squashfs-root/ filesystem.squashfs

        然后更新iso文件夹里面的md5文件:

cd openkylin-0.9.5-x86_64/
find . -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt

        最后就可以将目录重新压缩为iso文件,没有这个工具的也可以使用其它工具或者自行安装即可:

mkisofs -o ubuntu.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -V "Ubuntu 20.04.2 LTS amd64" ./openkylin-0.9.5-x86_64

        这个命令使用 -o 选项指定输出的ISO文件名为 ubuntu.iso-b isolinux/isolinux.bin 选项指定启动扇区的引导程序文件。-c isolinux/boot.cat 选项指定引导目录的引导表。-no-emul-boot 选项指定使用硬盘的启动方式。-boot-load-size 4 选项指定引导程序的加载大小为4扇区。-boot-info-table 选项指定生成引导信息表。-R-J 选项分别指定使用Rock Ridge和Joliet文件系统格式。-V "Ubuntu 20.04.2 LTS amd64" 选项指定卷标。最后的路径表示将镜像目录下的所有文件都添加到ISO中。

        使用vm虚拟机可以直接安装这个iso镜像来进行安装系统。

效果如下:

使用chroot定制系统-LMLPHP 

        我在镜像当中安装了d-feet,直接打开就能用

05-09 21:50