searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

定制镜像(下)

2025-02-07 09:35:41
1
0

一、基于Live文件系统定制

基于OEM文件夹的定制方式已经可以满足大部分的常用需求场景,而基于Live文件系统的定制方式除了可以实现以上功能外,还可以进行对标准版系统本身进行精简,删除不必要的软件。

二、解压Live文件系统,开始定制步骤

UOS桌面操作系统
1 、首先需要把live/filesystem.squashfs解压出来

uos@uos-PC:/media/uos/14107ABD08FFB686/ISO/oem/live$ 7z x uniontechos-desktop-20-professional-1050-update2-amd64.iso -ooem

image.png
image.png
2、这⾥操作需要 squashfs 和 unsquashfs 两个命令,如果提⽰找不到命令,可以通过安装 squashfs-tools 来解决:
sudo apt install squashfs-tools
3、在镜像数据⽬录中,先进⼊ live ⾥
cd live
4、对 squashfs 格式的镜像数据操作需要在root权限下操作,需要先提权:
sudo su
5、解压磁盘镜像数据
unsquashfs filesystem.squashfs
6、解压数据会释放到 squashfs-root ⽬录中。 将需要安装的包拷⻉到 squashfs-root/tmp/ 下,因为这个⽬录不需要其他特别操作就有写⼊权限。进⼊ squashfs-root ⽬录中:

cd squashfs-root
mount --bind /dev dev 
mount --bind /dev/pts dev/pts 
mount --bind /sys sys 
mount --bind /proc proc

7、使⽤如下命令切换到解压出来的系统环境中
chroot .
此时 squashfs-root 变成了我们的根⽬录,也就是 / ,⾄此我们就可以开始对⽬录中的系统进⾏修改。
8、这⾥使⽤如下命令装上需要安装的包
dpkg -i /tmp/*.deb
9、先卸载系统关键挂载点,然后输入exit 退出chroot状态
umount proc
exit
10、执⾏如下命令卸载系统关键挂载点,注意卸载顺序和挂载顺序相反,先进后出原则
umount sys
umount dev/pts
umount dev
11、安装完成后,进⾏清场

rm -f tmp/*.deb 
echo -n > root/.bash_history

12、退出 squashfs-root ⽬录
cd ..

13、如果安装的是内核包或者驱动包,这⾥需要将内核启动⽂件 vmlinuz 和 initrd.img 替换掉光盘镜像⾃带的内核启动⽂ 件。
注意:如果安装的内核⾮主线版本内核,版本号可能不会与下⾯写到的 4.19.0-6 不⼀样,需要对照修改
AMD64平台:

cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-amd64 vmlinuz 
cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-amd64 vmlinuz.efi 
cp -fv squashfs-root/boot/initrd.img-4.19.0-6-amd64 initrd.lz

MIPS64EL平台:

cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-mips64 ../boot/vmlinuz 
cp -fv squashfs-root/boot/initrd.img-4.19.0-6-mips64 ../boot/initrd.img

ARM64平台:

cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-arm64 vmlinuz 
cp -fv squashfs-root/boot/initrd.img-4.19.0-6-arm64 initrd.img

14、重新制作压缩系统模板磁盘镜像⽂件,由于压缩过程需要较多计算能⼒,所以此步骤耗时较⻓
mksquashfs squashfs-root filesystem1.squashfs -comp xz
15、修改⽂件权限
chown ${SUDO_USER}: filesystem1.squashfs

16、删除解压出来的⽂件
sudo rm -rf squashfs-root

17、使⽤我们新⽣成的 filesystem1.squashfs 替换原来的 filesystem.squashfs,然后exit 退出su 状态
mv filesystem1.squashfs filesystem.squashfs
18、退出live⽬录
cd ..

三、生成新的ISO

执行完之前的步骤,使⽤新⽣成的 filesystem.squashfs 替换掉镜像中原始的 live/filesystem.squashfs ,然后生成新的iso就完成定制镜像的步骤。
x86架构:

xorriso -as mkisofs -no-pad -joliet-long -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efi.img -no-emul-boot -append_partition 2 0x01 boot/efi.img -isohybrid-gpt-basdat -isohybrid-apm-hfsplus -appid "UOS 20" -publisher "UOS <http://www.uniontech.com>" -V "UOS 20" -o ../uos-new.iso .

ARM64架构:

xorriso -as mkisofs -r -J -R -joliet-long -c boot.cat -boot-load-size 4 -boot-info-table -eltorito-alt-boot --efi-boot boot/grub/efi.img -no-emul-boot -file_name_limit 250 -appid "UOS 20" -publisher "UOS <http://www.uniontech.com>" -V "UOS 20" -o ../uos-new.iso .

MIPS64架构:

xorriso -as mkisofs -V "UOS 20" -R -r -J -joliet-long -l -cache-inodes -appid "UOS 20" -publisher "UOS <http://www.uniontech.com>" -V "UOS 20" -o ../uos-new.iso .
0条评论
作者已关闭评论
李****堃
44文章数
7粉丝数
李****堃
44 文章 | 7 粉丝
原创

定制镜像(下)

2025-02-07 09:35:41
1
0

一、基于Live文件系统定制

基于OEM文件夹的定制方式已经可以满足大部分的常用需求场景,而基于Live文件系统的定制方式除了可以实现以上功能外,还可以进行对标准版系统本身进行精简,删除不必要的软件。

二、解压Live文件系统,开始定制步骤

UOS桌面操作系统
1 、首先需要把live/filesystem.squashfs解压出来

uos@uos-PC:/media/uos/14107ABD08FFB686/ISO/oem/live$ 7z x uniontechos-desktop-20-professional-1050-update2-amd64.iso -ooem

image.png
image.png
2、这⾥操作需要 squashfs 和 unsquashfs 两个命令,如果提⽰找不到命令,可以通过安装 squashfs-tools 来解决:
sudo apt install squashfs-tools
3、在镜像数据⽬录中,先进⼊ live ⾥
cd live
4、对 squashfs 格式的镜像数据操作需要在root权限下操作,需要先提权:
sudo su
5、解压磁盘镜像数据
unsquashfs filesystem.squashfs
6、解压数据会释放到 squashfs-root ⽬录中。 将需要安装的包拷⻉到 squashfs-root/tmp/ 下,因为这个⽬录不需要其他特别操作就有写⼊权限。进⼊ squashfs-root ⽬录中:

cd squashfs-root
mount --bind /dev dev 
mount --bind /dev/pts dev/pts 
mount --bind /sys sys 
mount --bind /proc proc

7、使⽤如下命令切换到解压出来的系统环境中
chroot .
此时 squashfs-root 变成了我们的根⽬录,也就是 / ,⾄此我们就可以开始对⽬录中的系统进⾏修改。
8、这⾥使⽤如下命令装上需要安装的包
dpkg -i /tmp/*.deb
9、先卸载系统关键挂载点,然后输入exit 退出chroot状态
umount proc
exit
10、执⾏如下命令卸载系统关键挂载点,注意卸载顺序和挂载顺序相反,先进后出原则
umount sys
umount dev/pts
umount dev
11、安装完成后,进⾏清场

rm -f tmp/*.deb 
echo -n > root/.bash_history

12、退出 squashfs-root ⽬录
cd ..

13、如果安装的是内核包或者驱动包,这⾥需要将内核启动⽂件 vmlinuz 和 initrd.img 替换掉光盘镜像⾃带的内核启动⽂ 件。
注意:如果安装的内核⾮主线版本内核,版本号可能不会与下⾯写到的 4.19.0-6 不⼀样,需要对照修改
AMD64平台:

cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-amd64 vmlinuz 
cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-amd64 vmlinuz.efi 
cp -fv squashfs-root/boot/initrd.img-4.19.0-6-amd64 initrd.lz

MIPS64EL平台:

cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-mips64 ../boot/vmlinuz 
cp -fv squashfs-root/boot/initrd.img-4.19.0-6-mips64 ../boot/initrd.img

ARM64平台:

cp -fv squashfs-root/boot/vmlinuz-4.19.0-6-arm64 vmlinuz 
cp -fv squashfs-root/boot/initrd.img-4.19.0-6-arm64 initrd.img

14、重新制作压缩系统模板磁盘镜像⽂件,由于压缩过程需要较多计算能⼒,所以此步骤耗时较⻓
mksquashfs squashfs-root filesystem1.squashfs -comp xz
15、修改⽂件权限
chown ${SUDO_USER}: filesystem1.squashfs

16、删除解压出来的⽂件
sudo rm -rf squashfs-root

17、使⽤我们新⽣成的 filesystem1.squashfs 替换原来的 filesystem.squashfs,然后exit 退出su 状态
mv filesystem1.squashfs filesystem.squashfs
18、退出live⽬录
cd ..

三、生成新的ISO

执行完之前的步骤,使⽤新⽣成的 filesystem.squashfs 替换掉镜像中原始的 live/filesystem.squashfs ,然后生成新的iso就完成定制镜像的步骤。
x86架构:

xorriso -as mkisofs -no-pad -joliet-long -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efi.img -no-emul-boot -append_partition 2 0x01 boot/efi.img -isohybrid-gpt-basdat -isohybrid-apm-hfsplus -appid "UOS 20" -publisher "UOS <http://www.uniontech.com>" -V "UOS 20" -o ../uos-new.iso .

ARM64架构:

xorriso -as mkisofs -r -J -R -joliet-long -c boot.cat -boot-load-size 4 -boot-info-table -eltorito-alt-boot --efi-boot boot/grub/efi.img -no-emul-boot -file_name_limit 250 -appid "UOS 20" -publisher "UOS <http://www.uniontech.com>" -V "UOS 20" -o ../uos-new.iso .

MIPS64架构:

xorriso -as mkisofs -V "UOS 20" -R -r -J -joliet-long -l -cache-inodes -appid "UOS 20" -publisher "UOS <http://www.uniontech.com>" -V "UOS 20" -o ../uos-new.iso .
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
1
0