[原创]FreeBSD光盘运行版的制作过程

发表于:2007-06-09来源:作者:点击数: 标签:
FreeBSD光盘运行版的制作过程 zyme|zyme@yeah.net|QQ:710055|www.yeaday.com|2003-5-16 前言:本文在你初步掌握FreeBSD的基础上,一步一步教你如何制作光盘运行的FreeBSD系统。其中的过程并不绝对符合,只要你明白了意思,可以根据自己的喜好灵活动作。 一、

FreeBSD光盘运行版的制作过程

zyme|zyme@yeah.net|QQ:710055|www.yeaday.com|2003-5-16

前言:本文在你初步掌握FreeBSD的基础上,一步一步教你如何制作光盘运行的FreeBSD系统。其中的过程并不绝对符合,只要你明白了意思,可以根据自己的喜好灵活动作。
一、装新的FreeBSD
1、#mkdir /zymebsd30
2、#cp /stand/sysinstall /zymebsd30
3、#chroot /zymebsd30
4、#./sysinstall-->custom-->
-->Distributions-->选中Users(可以custom去掉ports)
-->commit-->开始安装copy文件...等等完成...
5、现在你处在一个新的系统里,你可以按你的要求把这里的东东设置好,比如root密码,新帐号,/etc/ssh/sshd_config,/etc/rc.conf等...
6、建议,如果你是第一次装这种CD版BSD,或者你不很清楚系统是如何运行的,那最好少装些软件...
7、#exit (退出新装的系统)
8、如果要用ssh请#cp -R /etc/ssh /zymebsd30/etc

二、制作光盘启动的内核
1、#mount_cd9660 /dev/acd0a /cdrom 或者 #mount /cdrom (把光盘mount到/cdrom下)
2、#cp -R /cdrom/floppies /zymebsd30
3、#vnconfig -c vn0 /zymebsd30/floppies/boot.flp
4、#mount /dev/vn0 /mnt
5、#rm /mnt/mfsroot.gz
6、#cat /kernel | gzip -9 > /mnt/kernel.gz (当然这个/kernel是你希望的内核)
7、#cp /boot/boot0 /mnt/boot
8、#cp /boot/loader.4th /mnt/boot
9、#ee /mnt/boot/loader.rc -->删除第一行和第二行
10、#umount /mnt
11、#vnconfig -u /dev/vn0

三、制造启动时的可写环境
1、#ee /zymebsd30/etc/rc-->在export HOME PATH后面加上几句话,利用mfs可写的特征,可以根据自己情况改变参数
/sbin/mount_mfs -s 2048 -c 26 swap /tmp
/sbin/mount_mfs -s 4096 -c 26 swap /var
/sbin/mount_mfs -s 2048 -c 26 -o union,noatime,rw swap /dev
cd /dev && sh MAKEDEV vty12 pty0
tar zxf /var.tgz -C /
2、#touch /zymebsd30/etc/fstab (使这个文件为空)
3、#cd /zymebsd30/dev && rm -rf ttyv* ptyp* ttyp* vga (这些文件在开机的时候会自己再生出来)
4、#cd /zymebsd30 && tar zcf var.tgz var
5、#cd /zymebsd30 && tar zcf etc.tgz etc
6、#cd /zymebsd30 && tar zcf root.tgz root
7、#rm -rf /zymebsd30/var/*

四、造ISO光盘
1、注意在UNIX下用的光盘得是RockRidge格式的,所以必须这样在UNIX下造ISO文件
2、#mkisofs -b floppies/boot.flp -c floppies/boot.catalog -d -N -D -R -V zymebsd30 -P zyme -o zymebsd30.iso /zymebsd30
3、如果没有mkisofs程序,可以在ports里装,也可下载二进制程序http://gsp.8800.org/fbsd/mkisofs

五、使用光盘版BSD
1、跟从网上下载的UNIX ISO光盘一样,用光盘映像的方法刻录光盘,而不能解开ISO来刻录。
2、启动时有些机器会出现找不到mount/的问题,输入cd9660:acd0a可以解决,当然acd0a是目前的光驱。
3、如果要改动/etc下的设置,可以#mount_mfs -s 4096 -c 26 swap /etc && tar zxf etc.tgz -C /再修改
4、同样的方法可以改动/root下的设置,当然重新启动后又还原了...
5、由于"锁定"的原因,ps等命令会出错,可以#rm /dev/null然后再试...

六、参考光盘版BSD
1、内容:FreeBSD4.8R,内核增加支持IPFW+NAT+APM,root密码zyme
2、下载:http://gsp.8800.org/zyme/zymeBSD_3_0.iso

 弱智 回复于:2003-05-16 02:11:39
版主现在可以休息了,谢谢,收!

 黑夜编码人 回复于:2003-05-16 13:47:36
谢谢,先收下了。
另外,现在可以到CNFUG的期刊上去看了:

http://cnfug.kingisme.com/journal/1/05.html

 Zer4tul 回复于:2003-05-17 15:35:45
一张700MB的光盘装下2GB的文件系统……

 weclasss 回复于:2003-05-17 20:12:32
[quote:7d0773f4b4="zyme"]FreeBSD光盘运行版的制作过程

zyme|zyme@yeah.net|QQ:710055|www.yeaday.com|2003-5-16

前言:本文在你初步掌握FreeBSD的基础上,一步一步教你如何制作光盘运行的FreeBSD系统。其中的过程并不绝对符合,只要你..........[/quote:7d0773f4b4]

---------------------
原创吗...修改抄袭吧
应该改为心得才对吧
----------------------
http://phorum.study-area.org/viewtopic.php?t=11563&highlight=%A5%FA%BA%D0

发表于: 星期六 九月 07, 2002 8:00 pm    文章主题: [转贴] 建立在CD上运行的FreeBSD系统   

--------------------------------------------------------------------------------
 
kidz@kkcity.com.tw (料理的层次不同啊!老头) 

建立一套可以在CD上运行的FreeBSD系统 
主要拿来架设NAT、Firewall系统,也可以 
建立一套简单的X-Window使用者环境 

Step 1 安装基本系统 
/stand/sysinstall 
Configure -> Options 
修改下列两项 
Release Name => 4.6.2-RELEASE (或是想安装的版本) 
Install Root => /home/4.6.2-RELEASE (找个地方来摆系统) 

Distributions 
=>按照一般的你的习惯来安装FreeBSD系统 
=>把基本的系统和X系统安装起来即可 (光碟或是FTP装起来吧!) 


Step 2 设定基本系统 

# cp -R /stand /home/4.6.2-RELEASE 
# chroot /home/4.6.2-RELEASE 

接下来根目录会切换至/home/4.6.2-RELEASE 
# mkdir -p CD-bsd 
# mkdir -p CD-bsd 
这个目录是我们要放一些设定档案和开机档用的 

设定一下/etc下面的一些档案为光碟开机作准备 
/etc/rc.conf (至少设定个网路) 
hostname="xxx.xxx.xxx" 
ifconfig_xl0="................" 
defaultrouter="..............." 
moused_enable="YES" 
sendmail_enable="NONE" 
sshd_enable="YES" 
## ## 
## Firewall选项就看个人了 ## 
## ## 
#firewall_enable="YES" 
#firewall_script="/etc/rc.firewall" 
#firewall_type="OPEN" 
#gateway_enable="YES" 
#natd_enable="YES" 
#natd_interface="xl0" 
## ## 
## PPPoE上网 ## 
## 记得编辑/etc/ppp/ppp.conf ## 
ppp_enable="YES" 
ppp_mode="ddial" 
ppp_profile="ISP-Name" 
#ppp_nat="YES" 
## NFS Client 最好还是开启吧! ## 
nfs_client_enable="YES" 

/etc/resolv.conf (把Domain和DNS设定好) 
domain xxx.xxx.xxx 
nameserver xxx.xxx.xxx.xxx 

/etc/rc 大概55行的位置,HOME和PATH环境变数设定之后的位置加入如下: 
/sbin/mount_mfs -s 30000 swap /tmp 
/sbin/mount_mfs -s 50000 swap /var 
/sbin/mount_mfs -s 20000 swap /root 
/sbin/mount_mfs -s 12000 -o union,noatime,rw swap /dev 
cd /dev && sh MAKEDEV vty12 pty0 
tar zxf /CD-bsd/var.tgz -C / 
tar zxf /CD-bsd/root.tgz -C / 
这个步骤是把swap挂入系统档案让系统/tmp /var /root /dev有读写的功能 
大小可以自己定义 
var.tgz和root.tgz在系统会完成的时候才制作 

接下来放一个机器可以跑的XF86Config设定档案到/etc/X11下面 
(跑X的时候使用) 假使拿到?他显示卡不同的硬体去跑的时候 
因为root可以读写所以重新用xf86cfg -textmode设定好存在 
/root/XF86Config就可以跑X了! (只是这样每次光碟开机都要重新设定就是了) 

# touch /etc/fstab 
如果/etc/fstab里面有内容就删除内容让他置空 
如果/etc/fstab没这个档案就用touch来产生一个空的 
(注意! 一定要有这个档案,要不然光碟开机后会进不去系统) 

# rm -rf /dev/ttyv* /dev/ptyp* /dev/ttyp* /dev/vga 
删除这给个dev,之前/etc/rc设定的每次开机都会重新建立新的出来 

Step 3 安装设定基本软体 

接下来开始安装想要塞进一张光碟下所取舍的系统软体 
也是按照一般的安装软体的习惯来安装就可以了 
1. ports 安装法 
2. /stand/sysinstall 直接安装packages 
3. # setenv PACKAGEROOT ftp.tw.freebsd.org 
# pkg_add -r package-name 

基本系统加上基本X-Win大概是310MB左右 (不装X大概是180MB) 
所以大概有接近400MB的空间是可以自己取舍来控制安装自己常用的 
把中文字型都灌好,(细明体也塞进去),建立基本的中文环境 
安装基本的上网工具Mozilla + IglooFTP + sylpheed + gaim + rxvt 
再塞整个CJK-LaTeX进去(ghostscript + xpdf + dvipdfm-cjk)配vim-lite 
WM方面灌WindowMaker和Icewm (灌一堆WM的Dock...不过这些都很小) 
这样下来大概550MB左右...............不知道还要塞什么! 

最后检察一下/root下自己私人的设定档案 
至少.cshrc的shell要设定好自己惯用的参数 

# exit 
跳出进行下个步骤 

Step 4 制作开机影像档 

做一个给光碟开机的kernel,至少加入以下设定 
options ROOTDEVNAME=\"cd9660:acd0\" 
(防火墙请记得加入相关设定) 

acd0的地方请自己改成机器上的光碟开机那台的Device 
config CD-bsd ; cd ../../compile/CD-bsd ; make depend ; make 
请注意.....不要打太顺make install到自己系统上去...这是给光碟开机用的 
(因为我是打太顺了....) 

再来请去偷FreeBSD的开机影像档 boot.flp (floppies/boot.flp) 
把boot.flp放到/home/4.6.2-RELEASE/CD-bsd/下去 

# vnconfig -c vn0 /home/4.6.2-RELEASE/CD-bsd/boot.flp 
# mount /dev/vn0 /mnt 
# rm /mnt/mfsroot.gz 
# cat /usr/src/sys/compile/CD-bsd/kernel | gzip -9 > /mnt/kernel.gz 
# cp /home/4.6.2-RELEASE/boot/boot0 /mnt/boot 
# cp /home/4.6.2-RELEASE/boot/loader.4th /mnt/boot 
# ee /mnt/loader.rc 
删除第一行和第二行 
# umount /mnt 
# vnconfig -u /dev/vn0 

Step 5 建立光碟系统 

接下来要开始剪裁系统了 
# cd/home 
# mkdir -p /home/CD-bsd 
# ee tar-exclude (这个档案内容是那些目录或是档案不需要拷贝) 
usr/ports 
usr/src 
stand 
kernel.GENERIC 
# tar -X tar-exclude -cf - -C 4.6.2-RELEASE . | tar xpf - -C CD-bsd 
这样会把4.6.2-RELEASE的内容除掉tar-exclude内所包含的名单 
包含档案权限原封不动的搬到/home/CD-bsd 
这个目录是我们才是最后要制作成embedded CD的地方 

# cd /home/CD-bsd 
# tar zcf CD-bsd/var.tgz var 
# tar zcf CD-bsd/root.tgz root 
# rm -rf var/* ; rm -rf root/* 


Step 6 建立光碟影像档 

# cd /home 
# mkisofs -l -r -L -b CD-bsd/boot.flp -o CD-bsd.iso CD-bsd 

把CD-bsd.iso烧好大功告成............ 


感想: 
?实拿来架个NAT+firewall+DHCP变得很easy,只要事先设定好罢了 
甚至喜欢要在上面运行apache+php+mySQL跑Samba也不是什么难事 
建立一个可以上网又可以弄LaTeX的CD环境看起来好像不错........ 
但是....拿来架Server毕竟不是很好的解决方案,log档关机就消失了 
拿来打CJK,虽然说有很完整的环境但是系统打好文件存档也是个问题 
到时候打好还要传到别的机器上去.......灌在光碟上好像很....无用 
作Desktop环境只有简单的上网工具看的网页...打BB和看看FTP 
Knoppix Linux的玩家看到会笑死吧! 人家可是可是不只把KDE3塞进光碟 
还建立了一套很完整的使用者系统............. 

总之......制作这样的embedded感觉上很空虚........ 
不过自己看爽就好了......而且可以改进的地方还很多 
系统内还有很多用不到的可以删减的! /etc也可以改成可以修改来运作 
最好是能够像Knoppix Linux一样X-Win和网路可以自己搞定....... 
那就真的很方便了........... 

如果有错误请多指教! 
-- 
┌─────◆??????◆─────┐ 
┐┌┐┐┌┐┌─┐┌┬┐┌┬┐┐ ┌ 
│ bbs.kkcity.com.tw │├┘┐├ 
┘┐│ │ │ └┬┘ 
└──《From:61.59.151.7 》── 
┘┘ ┘┘ ┘└─┘└┴┘ ┴ ┴

逸晨 在 星期五 十一月 08, 2002 6:17 am 作了第 1 次修改

 zyme 回复于:2003-05-17 22:52:36
哇,靠,有中文的,我可参考的是一个英文的文章呀,怎么都抄老外的,哈哈....

 zyme 回复于:2003-05-17 23:01:23
他们的文章的确有趣,连说话的语气都蛮好玩的...

原文转自:http://www.ltesting.net