您的位置:首页 > 运维架构

自制ubuntu12.04的iso镜像修改安装动画及背景图片(真正成功的)

2014-12-08 16:22 399 查看
公司的VDI基于ubuntu12.04版本上运行,需要将VDI集成到ubuntu内核中做成iso镜像,自动安装,自动启动,并且需要将安装过程中原ubuntu的logo都去掉更换为公司VDI的logo,经过两周多的查资料及实践,基本完成需求,现总结一下,以备以后查看及供大家参考。

1.下载ubuntu12.04-desktop版本的iso镜像文件,通过此iso定制自己的iso镜像,操作步骤网上有很多介绍,此处掠过(iso可以使用好压查看目录及内容哦)。

2.说几点重要的,以在ubuntu开关机过程中显示的动画为例(显示ubuntu、下面打点的),如果不是系统安装过程中的,将iso中casper/filesystem.squashfs解压出文件系统目录(unsquashfs工具),然后修改替换/lib/plymouth/themes/ubuntu-logo图片文件为自己的图片(注意大小和格式与原来相同),然后mksquashfs重新压缩文件系统到casper/filesystem.squashfs,重新生成iso安装,发现安装过程中的动画并没有改变,安装完成后重启动画是自己修改后的了,原因?

呵呵,系统安装完成后是从文件系统中执行的,而在iso安装刚开始还没有解压filesystem.squashfs,没有文件系统呢。iso安装首先执行的isolinux.bin及isolinux.cfg相关的配置(网上有很多介绍),而最初尝试修改isolinux.cfg下include的一些.cfg文件,isolinux/txt.cfg文件中去掉quiet后的splash后是可以去掉安装过程中的动画的,但是效果不好看啊!要修改替换安装时的动画和reboot的开关机动画相同,继续看吧!

修改安装过程中显示的图片为例,我们要把默认的ubuntu图片换成自己的图片,需要将casper/initrd.lz文件解压出来查看,它的解压方法如下,使用shell执行如下命令:

mkdir temp # 创建存储内容的临时文件

cp initrd.lz temp/initrd.lzma # 改名initrd为lzma后缀

cd temp

lzma -d initrd.lzma 

cpio -id < initrd # 解压出文件

这样,在temp文件夹中就会出现类似linux目前结构的文件(除了我们cp的initrd.lzma),看到了吧和/filesystem.squashfs解压出文件系统目录有些相同,那是因为initrd.lz文件实际就是一个最小化的Linux系统。里面包含了shell,mount,fdisk之外,主要要包含Linux系统下各种常用的基本驱动。尤其是硬盘驱动,键盘鼠标驱动。如果没有这些驱动,那么系统将无法找到硬盘,导致系统无法正常启动。
继续:

替换/lib/plymouth/themes/ubuntu-logo图片文件为自己的图片,使用如下命令压制新的initrd.lz:

cd temp# 

find . |cpio --quiet --dereference -o -H newc>../initrd

cd ..

lzma -7 initrd  (等待一会儿……)

mv initrd.lzma initrd.lz

上面代码是在temp的上层目录创建的initrd.lz即原文件的位置。所以,原文件最好备份。

暂时写这些,以后再整理添加,希望对大家有用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息