可以使用mount命令查看iso的内容
#mkdir iso #mount -o loop ubuntu.iso ./iso |
把iso里面的内容取出来,iso_modify
#mkdir iso_modify #rsync -az ./iso ./iso_modify |
Iso目录里面的casper/filesystem.squashfs就是启动以后的虚拟文件系统,我们要修改的就是这里的内容。
#mkdir squashfs #cp iso/casper/filesystem.squashfs ./squashfs #cd squashfs |
解压squashfs
#unsquashfs filesystem.squashfs |
可以看到解压出的squashfs-root目录就是一个文件系统,针对性的进行修改,如果需要安装deb包,可以chroot进去使用dpkg进行安装。
如果安装了软件包,需要跟新dpkg的列表:
#chroot squashfs-root/ dpkg-query -W --showformat= '${Package}\t${Version}\n' > dpkg_list #cp dpkg_list ../../iso_modify/casper/filesystem.manifest |
把squashfs-root目录从新制作成squashfs文件
#mksquashfs squashfs-root filesystem.squashfs -b 1024k -comp xz -Xbcj x86 -e boot |
用新的filesystem.squashfs替换原来的文件。
把新的iso-modify打包成iso
#mkisofs -r -V "UbuntuTest" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-test.iso . |
好了,开始使用修改后的iso吧。
注意iso下面的.disk是必须的,否则会提示:(initramfs)Unable to find a medium containing a live file system.