LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: sunu

ZenwalkCN(Zenwalk DIY版)

[复制链接]
 楼主| 发表于 2006-11-13 18:27:38 | 显示全部楼层

Zenwalk DIY版光盘制作过程

06-11-13,18:25

上次在定制完zenwalk之后本是准备写点什么的,但近来忙于考研复习,
实在没有心思和精力再去打理ZenwalkCN了 -_-!

我简单地写一下我对ZenwalkCN安装光盘的定制过程吧.

首先把下载到的Zenwalk的安装镜像挂载到某个目录,像这样
mkdir -p /mnt/zenwalk
mount -o loop /path_to_iso/zenwalk-3.0.iso /mnt/zenwalk_iso
这时/mnt/zenwalk里的内容应该是只读的吧(不清楚是不是可写,呵),我把所有内容
都复制到我的工作目录
cd /mnt/zenwalk/
cp -r * /home/zenwalkcn/
然后一切修改工作都在/home/zenwalkcn/中进行了.


[光盘的目录结构]
我介绍一下光盘的目录结构吧
COPYING               
COPYRIGHT  
Changelog  
VERSION  
PACKAGES          //zenwalk这个目录的文件列表
isolinux        //isolinux是专门用来制作可启动光盘的,里面最重要的是
                //有配置文件isolinux.cfg及initrd.img这个镜像文件
kernels          //安装的时候可以选择不同的内核
zenwalk                //这个目录中的子目录编排与slackware安装版基本相同
                //像a ap l n x xap 等,每个目录中的tgz包都会在安装
                //过程中自动安装.

[删除不想要的软件包]
所以想要不安装什么包的话,可以在zenwalk的相应的子目录中把那个包删除就行
了,比如说我不喜欢默认安装lilo引导器,只要把zenwalk/a/lilo-22.7.3-i486-1z30.* 删除掉就行了.

[加入我自己的软件包]
如果要想添加进其它的包的话,可以把自己制作的或是从网上下载的tgz包,放入
zenwalk中的任何一个目录中,当然,你可以会想,是不是可以我自己建个目录啊.
当然是可以的,比如我建立了一个s目录,用来放服务器软件包,apache或vpn什么的
但是,这需要[修改安装脚本]

[添加我的个性化配置]
这个最好是放到一个包里好了,比如我们建一个configurations_for_sunu.tgz
假设您对如何制作tgz包是熟悉的.
mkdir /tmp/my_config
cd /tmp/my_config
在这里按照自己的系统的目录结构放置你想要在系统安装好后自动配置好的文件.
比如我把zhcon的配置加上就是在etc目录中etc/zhcon.conf. 如果想让系统将
新添加用户的环境和你现在的一模一样,可以把你现在的家目录(比如名为sunu的
用户,那默认的情况下就是目录/home/sunu)里的配置都复制到etc/skel中,省得
以后添加新用户还得配置这配置那的麻烦.
如果是要安装包的时候执行的脚本,要建文件目录install,在其中建立文件
doinst.sh,把代码写在当中就行了,不过记得不要随便使用'绝对路径',呵.
最后在
/tmp/my_config目录中
makepkg -l y -c n /tmp/configurations_for_sunu.tgz 就行了.


[修改安装脚本]
zenwalk的光盘起动后的环境都在isolinux/initrd.img这个镜像文件中,它是一个
压缩文件,我们可以以下方式对它进行修改.
mkdir -p /tmp/initrd_tree
cp isolinux/initrd.img /tmp/initrd.gz
gunzip initrd.gz
这个时候在/tmp目录解压了initrd.img文件,我们把它挂载到initrd_tree目录上
就像我们挂载iso镜像那样.
mount -o loop /tmp/initrd /tmp/initrd_tree
好了,/tmp/initrd_tree中的目录结构就是zenwalk光盘启动后的环境了,可以进行
任意的修改,不过好像体积不能超过某个值(16M?不清楚),因为initrd.img最终不能太大.
以下假设我们的/目录是/tmp/initrd_tree,呵
安装脚本是在/usr/lib/setup/目录里,都是标准的bash脚本,大家可以看着改.
INSCD   
SeTconfig  
SeTkeymap  
SeTpackages        //上面讲到的要让安装程序自动安装 我们自己建立的目录 中
                //的所有软件包的话,修改这个文件中的
                //SERIES='a ap d l n  x xap'即可,比如我就添加了个s目录
SeTswap   
nopartHELP  
setup
INSdir  
SeTdisk   
SeTmedia   
SeTpartitions  
pkgtool
SeTDOS  
SeTkernel  
SeTnopart  
SeTpasswd      
installpkg  
removepkg
就不一个个介绍了,这里面可定制得实在太多了,纯脚本的安装方式真的很灵活.
要让光盘启动后的环境支持尽可能多的硬件,可以在/lib/module/`uname`/中
添加相应的模块,然后在/etc/rc.d/中的rc.modules动态加载就可以了.
假设我们已经完成了安装环境的修改,然后我们把/tmp/initrd_tree压缩回去.
mount /tmp/initrd_tree
cd /tmp/
gzip -9 initrd
mv initrd.gz initrd.img
好了,我们可以拿这个initrd.img替换掉光盘里的isolinux/initrd.img了.

[定制光盘启动画面及字幕和光盘默认的系统内核]
这些都在isolinux/目录中,大家去看看isolinux的使用手册吧,我没深究,只是
修改了些文本文件而已.
系统内核就在kernel目录中,如果你添加了或是替换了内核,记得核对isolinux/
isolinux.cfg中的文件名哦,不然启动不了安装系统的,呵.

[生成光盘镜像]
cd /home/zenwalkcn/
cd ..
mkisofs -o /tmp/zenwalkcn.iso \
-R -J -V "ZenwalkCN Install" \
-hide-rr-moved \
-v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table \
-sort isolinux/iso.sort \
-b isolinux/isolinux.bin \
-c isolinux/isolinux.boot \
-A "Zenwalk_CN Install CD"

这个过程很快的,几分钟就好了,然后就可以测试你的光盘镜像了,我没有可改写的
的记录机,只好郁闷地用vmware来测试,哈.

(傍晚匆忙写就,可能所遗漏了,以后有机会补上,呵. 如有您对哪一步有疑惑的,
可以给我发邮件. pansunyou@gmail.com 邮件还是经常查收的 )
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-13 18:31:27 | 显示全部楼层
Post by zoujichun
哀。我可怜,我用的原版ZENWALK3.0,汉化,美化都做得可以了,软件也都装好了,可就是浏览WINDOWS盘里的中文问题,解决不了,下这个玩玩。多谢楼主的努力。

真诚的感谢,象楼主这样为LIUNX贡献的人。


这是我的fstab文件,你可以参照着改,呵, 浏览WINDOWS盘里的中文问题应该是iocharset和codepage配置有误吧.  或者你是使用GDM或是xdm进入X的, 好像是会有问题,换成从字符界面startx就没事了.



  1. /dev/hda9        swap             swap        defaults         0   0
  2. /dev/hda2        /                ext3        defaults,noatime 1   1
  3. /dev/hda5        /mnt/hda5        ext3        defaults,noatime 1   2
  4. /dev/hda6        /home            ext3
  5. ext3   defaults,noatime 1   2
  6. /dev/hda1        /mnt/hda1        vfat        exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0   0
  7. /dev/hda7        /mnt/hda7        vfat        exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0   0
  8. /dev/hda8        /mnt/hda8        vfat        exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0   0
  9. /dev/hdc         /mnt/cdrom       iso9660     noauto,user,ro   0   0
  10. /dev/fd0         /mnt/floppy      auto        noauto,user      0   0
  11. devpts           /dev/pts         devpts      gid=5,mode=620   0   0
  12. proc             /proc            proc        defaults         0   0
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-11-15 14:23:27 | 显示全部楼层
Post by sunu
这是我的fstab文件,你可以参照着改,呵, 浏览WINDOWS盘里的中文问题应该是iocharset和codepage配置有误吧.  或者你是使用GDM或是xdm进入X的, 好像是会有问题,换成从字符界面startx就没事了.



  1. /dev/hda9        swap             swap        defaults         0   0
  2. /dev/hda2        /                ext3        defaults,noatime 1   1
  3. /dev/hda5        /mnt/hda5        ext3        defaults,noatime 1   2
  4. /dev/hda6        /home            ext3
  5. ext3   defaults,noatime 1   2
  6. /dev/hda1        /mnt/hda1        vfat        exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0   0
  7. /dev/hda7        /mnt/hda7        vfat        exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0   0
  8. /dev/hda8        /mnt/hda8        vfat        exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0   0
  9. /dev/hdc         /mnt/cdrom       iso9660     noauto,user,ro   0   0
  10. /dev/fd0         /mnt/floppy      auto        noauto,user      0   0
  11. devpts           /dev/pts         devpts      gid=5,mode=620   0   0
  12. proc             /proc            proc        defaults         0   0
复制代码
老哥,多谢拉!已经解决了.这个论坛太让我感动了.
回复 支持 反对

使用道具 举报

发表于 2006-11-17 01:08:58 | 显示全部楼层
我刻盘安装,在开始安装软件的时候提示我没设置根密码,是否要现在设置,我选是,提示说没有/etc/usr/passwd这个文件或者目录,不能运行,如果选择不现在设置,则提示可以退出安装程序并重启电脑了。请问该怎么办?先谢过了。
回复 支持 反对

使用道具 举报

发表于 2006-11-18 09:41:35 | 显示全部楼层
楼上的系统能不能启动,能启动就不用管了。我也碰到过,因为启动不了就又装了一次,不过我是因为删了shadow包。没能力解决啊只好重装。
感谢楼主的分享,在你的iso中找到了zhcon的tgz,终于能以控制台下显示和输入中文了,找了一个多月,都是GZ包,自己一直装不上,昨天偶然发现了这个包,真是太意外了。
回复 支持 反对

使用道具 举报

发表于 2006-11-18 17:58:56 | 显示全部楼层
Post by 味精
楼上的系统能不能启动,能启动就不用管了。我也碰到过,因为启动不了就又装了一次,不过我是因为删了shadow包。没能力解决啊只好重装。
感谢楼主的分享,在你的iso中找到了zhcon的tgz,终于能以控制台下显示和输入中文了,找了一个多月,都是GZ包,自己一直装不上,昨天偶然发现了这个包,真是太意外了。


终于有人回答了,感动,先谢谢你味精。
我现在装都装不上,在开始复制文件的时候提示没设置root密码,问是否要设置,是的话不能运行,否的话退出安装。根本不能装系统。呵呵。不知道是不是下的镜像有问题,哪位大哥发个md5.先谢谢了。
回复 支持 反对

使用道具 举报

发表于 2006-11-19 20:58:56 | 显示全部楼层
VMWARE上安装失败,说空间不够,可是有8G空间呢
回复 支持 反对

使用道具 举报

发表于 2006-11-20 09:12:02 | 显示全部楼层
Post by douban
VMWARE上安装失败,说空间不够,可是有8G空间呢


你用了什么文件系统?记得用ext3阿。
回复 支持 反对

使用道具 举报

发表于 2006-11-25 21:18:58 | 显示全部楼层
不知道楼主知不知道这个问题,关于grub的:

uncompressing linux
ran out of input data
system halt

上周装完zenwalkCN没装lilo,我hda1上有slack9.1,用grub引导zenwalkCN,出现这情况,当时以为是zenwalkCN的问题;用起动的kernel代替boot下的kernel可以起动。

昨天安装蓝点2.0把MBR中slack9.1的grub覆盖了(蓝点自动安装了grub),现在用蓝点
的grub引导slack9.1就又这样了:
uncompressing linux
ran out of input data
system halt

这应该是grub的问题了,
回复 支持 反对

使用道具 举报

发表于 2006-12-7 00:02:00 | 显示全部楼层

为什么不能从硬盘引导 安装?(已解决)

我是用grub这样引导硬盘安装的:
root (hd0,8)
      kernel (hd0,8)/zenwalkcn/vmlinuz
      initrd (hd0,8)/zenwalkcn/initrd.gz
起动后,用setup命令进入安装。
keymap
addswap
target
source  //这时我用ALT+F2进入TTY2用以下方法
mkdir   /mnt/zen /mnt/iso
mount  /dev/hda8 /mnt/iso        //iso放在vfat分区
mount -o loop /mnt/iso/mydownloads/zenwalkcn.iso /mnt/zen
ls  /mnt/zen/zenwalkcn    //安装包均显示
用ALT+F1 返回安装界面,用第二个安装选项,填上/mnt/zen/zenwalkcn
后来,安装时一闪就过去了,不能安装上。这是什么 原因?


======================
不用mount -o loop /mnt/iso/mydownloads/zenwalkcn.iso /mnt/zen
.直接:用ALT+F1 返回安装界面,用第二个安装选项,填上/mnt/iso/mydownloads/目录既可,此目录下为zenwalkcn.iso的解压文件(先用工具解压).
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表