当前位置:首页 > 技术与方案 > Linux及应用

制作可以随身携带的FreeBSD系统(上)

(2012-09-26 19:42:18)

前言

大家可能见到过很多在软盘上运行的Linux系统,可在软盘上运行的FreeBSD反而比较少,虽然有PICOBSD,然而很多时候PICOBSD并不能满足我们的需要,那么可不可以自己制作一个在软盘上运行的FreeBSD系统呢?答案是肯定的。我在维护着一个Floppy Firewall的Project,它是一个基于FreeBSD和IPFilter的运行在软盘上的防火墙系统,很多网友在使用了Floppy Firewall之后发邮件来询问如何使FreeBSD运行在一张小小的软盘上。但由于前段时间事情太多一直没有时间,今天终于找到时间,所以把制作在软盘上运行的FreeBSD的过程写出来与大家分享,由于时间仓促,文中难免有错误之处,还请大家指教。

1、FreeBSD的启动过程简介

当BIOS读入MBR之后,MBR中的程序读入硬盘FreeBSD Slice(FreeBSD分区)中的引导程序,引导程序默认情况下会加载/boot/loader,然后loader将加载/kernel,此时 kernel开始检测一些硬件和做一些初始化。初始化完成后kernel将mount root device,然后启动系统初始化进程/sbin/init,init将根据/etc/rc中的设置来进行初始化等。

可以看出我们需要解决的部分就是:引导程序 - /boot/loader - /kernel - /sbin/init - /etc/rc在了解了启动过程之后和问题所在之后,我们便可以开始制作软盘上的FreeBSD了。

2、初始化软盘

首先要做的就是要将软盘初始化,包括设置disklabel和创建文件系统(格式化成ufs格式)。



接下来是安装引导程序。

d# disklabel -B fd0a

现在软盘已经能够引导了,但因为我们要在它上面放置程序,所以要创建文件系统。



刚才已经做好了引导程序,因为引导程序会加载/boot/loader,所以我们还需要将系统中的/boot/loader复制到软盘中。









根据FreeBSD的启动过程,现在我们已经准备好了引导程序和loader,接下来就要准备内核了。

3、定制内核

软盘的空间有限,所以我们需要定制一个小内核,而不能直接使用系统原来的内核。由于我们只使用软盘,所以内核中的关于scsi、ata、atapi和raid等这些东西都应该删除,因为我们不需要IPv6所以INET6也应该删除,具体留下些什么要看自己的用途了,这没有什么标准。不过有几样是必须的:

options MFS # 内存文件系统支持

options MD_ROOT # 使用MD(内存磁盘)设备做root

options UFS # UFS文件系统支持

options UFS_ROOT # UFS ROOT

eudo-device md # MD设备支持

下面是我使用的一个内核配制文件:



# GENERIC -- Generic kernel configuration file for FreeBSD/i386



 

# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.38 2002/01/25 17:41:40 murray Exp $



cpu I386_CPU

cpu I486_CPU

cpu I586_CPU

cpu I686_CPU

ident "MINI-KERNEL"



#maxusers最好让系统自动分配,如果设得过大,会占用过多的内存。

 

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号