可以使用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.