首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 应用>linux技巧应用>文章内容
制作软盘上运行的FreeBSD系统
来源:www.unix5.com 作者:riechelr_hl 发布时间:2007-08-01  
存盘退出,将kernel.gz和bsd.gz复制到软盘中:
bsd# cd /root
bsd# cp kernel.gz /fd
bsd# cp bsd.gz /fd
bsd# umount /fd

现在用你的这张软盘就可以启动你的机器,如果一切正常的话,你将看到"Hello, it's my Floppy BSD"的提示,并且看到可爱的shell符"#"了,是不是很有满足感呢?:)
到此为止一个基本的BSD系统已经完成了,如果你想继续扩展Floppy BSD的功能,那就按照上面的方法自己做吧!
同时我在CNFUG(China FreeBSD User Group, http://www.cnfug.org)维护着一个Floppy Firewall(http://www.cnfug.org/project/ffw/)的Project,就是利用这种方法制作的一个在软盘上运行的防火墙系统,你可以用来做参考。

按照本文的步骤,我制作了一个例子,大家可以到这里下载:http://www.cnfug.org/tmp/flp-bsd.bin 使用方法请参照Floppy Firewall的使用方法


#
# NOTE: the string "/usr/src" will be automatically replaced with the
# correct value set in 'build' script - you should change it there

# Default build options
buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC

# other sources
srcdirs /usr/src/bin
srcdirs /usr/src/sbin/i386
srcdirs /usr/src/sbin
srcdirs /usr/src/usr.bin
srcdirs /usr/src/usr.sbin
srcdirs /usr/src/gnu/usr.bin
srcdirs /usr/src/gnu/usr.sbin
srcdirs /usr/src/libexec
# sources for ns & vm
srcdirs /usr/src/release/picobsd/tinyware

# 以下为你所需要在crunch包含的程序列表,以空格分隔。
progs dmesg ping ifconfig route hostname
progs cp rm ls cat test mkdir less
progs uname sysctl
progs init sh reboot

# ln是表示建立一个别名,如ln less more,表示当执行more的时候实际上是执行less
ln less more

# 以下是指定编译时需要的库
libs -lncurses -lmytinfo -lipx
libs -lz -lpcap -lalias
libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm
libs -lgnuregex -ltelnet

当编辑好crunch.conf之后,你就可以开始编译crunch了:

bsd# make

这时会生成一个名为crunch1的程序,我们要的就是它了。

5、建立内存磁盘
大家可以看到crunch1加上我们刚才编译的内核和loader程序,已经超出了软盘的容量,同时为了加速程序的运行我们需要使用MD(内存磁盘)来解决这个问题,MD将作为系统的根文件系统和用来存放系统程序。对于内存磁盘的大小一般不易太大,因为这样会占用过多的内存,下面我们就以建立一个3M的内存磁盘为例说明怎么样建立内存磁盘:

bsd# cd /root
bsd# dd if=/dev/zero of=bsd bs=1k count=3072            # 生成一个3M的文件,用来做MD
bsd# vnconfig -c -s labels vn0c bsd                                # 使用bsd来创建一个vn设置,以便在其中存放程序
bsd# disklabel -w -r vn0c auto                                         # 建立disklabel
bsd# disklabel -B vn0c                                                    # 安装启动代码
bsd# newfs vn0c # 创建UFS文件系统
bsd# mount /dev/vn0c /mnt # 将vn0c即bsd mount到/mnt

接下来要做的就是建立目录结构,具体建立哪些目录这要视需要决定,本例中需要建立如下目录:

bsd# mkdir /mnt/etc
bsd# mkdir /mnt/sbin
bsd# mkdir /mnt/bin
bsd# mkdir /mnt/dev

然后将crunch1复制到/mnt/sbin中,再将刚才编译进crunch1中的那些命令分别做上symbol link:

bsd# cp /usr/src/release/picobsd/custom/crunch1/crunch1 /mnt/sbin
bsd# cd /mnt/sbin
bsd# ln -s ./crunch1 init                                    # init必须在/mnt/sbin目录中
bsd# ln -s ./crunch1 reboot
bsd# ln -s ./crunch1 sysctl
bsd# ln -s ./crunch1 ifconfig
bsd# ln -s ./crunch1 route
bsd# ln -s ./crunch1 ping
bsd# ln -s ./crunch1 dmesg
bsd# cd /mnt/bin
bsd# ln -s ../sbin/crunch1 sh                            # sh必须在/mnt/bin目录中
bsd# ln -s ../sbin/crunch1 hostname
bsd# ln -s ../sbin/crunch1 cp
bsd# ln -s ../sbin/crunch1 rm
bsd# ln -s ../sbin/crunch1 ls
bsd# ln -s ../sbin/crunch1 cat
bsd# ln -s ../sbin/crunch1 test
bsd# ln -s ../sbin/crunch1 mkdir
共5页: 上一页 [1] [2] [3] 4 [5] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·MBR如果被覆盖了怎麽办?
·linux应用技巧集囊(新手遍)
·Linux操作系统Gaim玩转QQ与MSN--
·shell编程技巧
·简述 Linux 文件系统的目录结构
·提高Linux系统性能,加速网络应用
·优化Linux系统服务器硬盘实用技
·Linux操作系统下设置NFS共享讲解
·Linux 的带宽管理系统
·通过Linux系统引导CD排除服务器
·Linux系统下查CPU个数的方法
·精彩分享:Linux系统下使用aMsn
  相关文章
·提高Linux系统性能,加速网络应用
·Linux操作系统下设置NFS共享讲解
·用Linux操作系统构建的路由器--
·如何找回删除Linux后的Windows启
·实用技巧:Linux操作系统文件链
·Linux操作系统Gaim玩转QQ与MSN--
·实用技巧:“禁用”Linux终端输
·Linux系统下查CPU个数的方法
·Linux操作系统下网络互访管理软
·Linux系统强大的控制台、终端和s
·Linux下Apache并发连接数和带宽
·优化Linux系统服务器硬盘实用技

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!