Freebsd livecd的制作过程, Freebsd学习记录

没有使用FreeBSD里ports里的Freesbie, 完全自己手工操作,资料参考自

http://hi.baidu.com/dalier/blog/item/a737353b2857edee14cecbf7.html
http://freebie.miraclenet.co.th/server/fwCD/index.html

修正了原文的两处错误,一切实践过程都在Vmware里进行, 这样方便反复操作.
先安装一个最基本的FreeBSD 7, 然后安装ports, 跟着

在  /usr/ports/sysutils/cdrtools/

#make install clean
安装后会有mkisofs命令了., 然后reboot机器,再继续以下操作.

新建目录
#mkdir /usr/livecd

新建文件
#ee /usr/livecd/extfile
输入
/usr/livecd
/usr/ports
退出保存

#cd /usr/livecd
#tar -X /usr/livecd/extfile -c -p -v -f – / | tar xpf –
#mkdir /usr/livecd/usr/ports
修改livecd目录的内容

删除dev内容,
#rm /usr/livecd/dev/*
因为这些内容在系统启动时会根据devfs自动生成;

删除tmp,
rm -r /usr/livecd/tmp/

备份var
#mv /usr/livecd/var /usr/livecd/var.copy
#mkdir /usr/livecd/var
该var目录将挂载内存设备,制造可写入环境;

清除/usr/livecd/etc/fstab文件的所有内容,这样,当livecd启动加载完内核后,需要手工输入挂载根分区的位置.
方法是在fstab文件中加入一行:
/dev/acd0 / cd9660 r 0 0

去掉开机选项画面:#vi /livecd/boot/loader.rc,注释掉最后一行,并新增一行,写入
boot

制作livecd的写入环境
首先备份文件
#mkdir /usr/livecd/mkbsd
#cp /usr/livecd/etc/rc /usr/livecd/mkbsd/rc.copy

ee /usr/livecd/etc/rc
在export HOME PATH这行插多一行,
/sbin/mdmfs -s 2m md /tmp
/sbin/mdmfs -s 32m md /var
cp -R /var.copy/* /var

利用mfs可写的特征,可以根据自己情况改变参数,挂载的是内存设备, 2m和32m可以增大,看机器内存自定义.

跟着
制作ISO文件
#cd /usr/livecd
#mkisofs -l -R -no-emul-boot -b boot/cdboot -o /usr/livecd.iso /usr/livecd

这个按Freebsd最小化安装后制作出来的ISO文件大概278M左近, 至于怎样从Vmware虚拟机拿出来,可以用 winscp 登录freebsd然后copy出来,但笔者没有装ssh的服务,于是在本机装了个简单的ftp服务器, 然后在虚拟机里用fto命令上传出来, 192.168.0.10是我部机的IP, 在本机的Vmware主机的IP是192.168.0.9, 命令是

ftp 192.168.0.10
输入用户名和密码,然后
put /usr/livecd.iso d:\livecd.iso
quit
跟着就可以在vmware虚拟机挂上iso测试了.

278M左近,大概大了点吧,那可以精简一下内核.
cp -R -p /usr/livecd/boot/kernel /usr/livecd/boot/kernel2
cd /usr/livecd/boot/kernel
rm *
cd /usr/livecd/boot/kernel2
gzip -9 *
cp /usr/livecd/boot/kernel2/*acpi* /usr/livecd/boot/kernel
cp /usr/livecd/boot/kernel2/kernel* /usr/livecd/boot/kernel
rm -r /usr/livecd/boot/kernel2/

这样应该可以到200M左近了, 其实可以在减的., 例如删调以下的
rm /usr/livecd/usr/include
rm /usr/livecd/usr/local/include
这样可以减低10M左近吧.

精简又是一个话题,不说了, 不过最后我成功的精简到128M, 但在freebsdchina.org看见有人精简到12M,厉害啊.

以上是我的制作Freebsd livecd的过程,全部基于Freebsd 7.0操作, 记录下来,以后会有用.

关于无聊人

一个无聊人而已
此条目发表在Freebsd分类目录,贴了, , 标签。将固定链接加入收藏夹。

Freebsd livecd的制作过程, Freebsd学习记录》有2条回应

  1. 能够精简的都是牛人,华丽的苹果路过。

  2. 说:

    执行tar -X /usr/livecd/extfile -c -p -v -f – / | tar xpf – 命令后,一直无限的打包下去啊?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注