Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146592
  • 博文数量: 29
  • 博客积分: 717
  • 博客等级: 上士
  • 技术积分: 352
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-16 16:17
文章分类

全部博文(29)

文章存档

2013年(4)

2012年(4)

2011年(21)

我的朋友

分类: LINUX

2011-11-30 14:31:10

基于ubuntu发行版的安装界面的深度定制过程

 

先阅读官方帮助文档详细介绍ubuntu社区如果定制ubuntu发行版的具体步骤。最好是按照步骤执行一遍,否则会停留在表面问题。

 

漫长的阅读….

 

1.       版本选择ubuntu10.04-desktop-livecd,之所以选择一个已有的发行版,而不是按照官方文档做?因为你按照官方的去做,做完以后和ubuntu发行版内容完全一样,而且安装过程很繁琐。这样只要对现有的发行版进行增删修改软件包即可。

2.       需要修改发行版的目录结构casperisolinux.distmd5sum.txt这些文件控制ubuntu的安装行为和用户使用时的具体行为。

 

阅读Linux for computer forensic investigators: problems of booting trusted

 

现在交代一下livecd安装的流程

Isolinux目录下的isolinux.bin读取该目录下的配置文件,加载vmlinuz内核挂载initrd.lz为根文件系统,运行ubiquity开始安装步骤1,2,3…最后复制squashfs文件系统到硬盘。复制完成后重启机器。

 

.dist目录定制细节

最重要的是info文件。包含了操作系统发行版的名字。

 

Isolinux目录的定制细节,打开该目录,一目了然,很多文件简单替换即可

默认语言的修改touch lang && echo zh_CN > lang

默认语言列表的修改文件language

背景图片直接替换

Gfxboot.cfg文件的修改

修改Hidden-timeout=0否则不会有选择的界面,直接进行livecd的安装

Foreground是选择的字体的高亮颜色

Background是字体颜色

Screen-color是当前选择行的背景颜色

 

Casper目录定制细节,该目录工作量最大

有两部分要定制initrd.lzsquashfs文件系统的定制

Initrd的定制 mv initrd.lz initrd.lzma并且解压(针对ubuntu系统/boot/ramdisk重命名为.gz的文件)

完成后initrdcpio的格式文件再 cpio –id < ./initrd

这里要基于livecd安装过程的背景图片,具体livecd和内核引导技术google

 

Ubuntu10.04开关机动画技术plymouth(/lib/plymouth/theme),修改ubuntu-logo下的所有图片文件,顺便也了解default.Plymouth配置,theme目录下的ubuntu-logo也要修改。Ubuntu的开关机动画背景是纯颜色,修改文件ubuntu-logo下的ubuntu-logo.script176行,这是要用你想要的背景颜色的RGB的值,把RGB的值除255,替换原有的值即可。或者new一个主题目录,但是需要些改主题的脚本。用户开关机时的动画在squashfs里修改,方法一样。

 

/etc/casper.conf修改user hostname….

 

最后find . | cpio -o -H newc > ../initrd.img 在压缩重命名完成initrd.lz的制作。

 

 

Squashfs的制作官方有详细的说明

 

安装界面的滚动信息是ubiquity控制目录在/etc/ubiquity****/

Uname –a 输出的系统信息修改 /etc/issue***

用户主题修改/etc/themes

背景图片修改/usr/share/background

面板定制gconftool来定制面板信息

 

 

附件脚本

1.制作iso镜像

#!/bin/bash

if [ -z $1 ]; then

echo "usage: ./$0 ./yourfoldername"

exit

fi

echo

echo "you just exec command: $0 $1!"

echo

echo "updating md5sum.text, waiting..."

(cd $1 && find . -type f -print0 | xargs -0 md5sum | grep -v "\./md5sum.txt" > md5sum.txt)

echo "done!"

 

cd $1

pwd

mkisofs -input-charset iso8859-1 -r -V Liduli -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../"livecd$2".iso .

cd ..

 

2.制作initrd.lz

#!/bin/bash

if [ -z $1 ]; then

echo "usage: ./$0 ./yourfoldername"

exit

fi

echo

echo "you just exec command: $0 $1!"

echo

rm initrd.*

cd $1

find . | cpio -o -H newc > ../initrd.img

cd ..

lzma -7 initrd.img

mv initrd.img.lzma initrd.lz

clear

echo

echo "initrd.lz finish!!"

echo

阅读(4164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~