使用chroot定制系统

  • Post author:
  • Post category:其他


假设下载的桌面系统为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进入该系统:

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镜像来进行安装系统。

效果如下:

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



版权声明:本文为IT8343原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。