用户名: 密码: 验证码: gdcode
  • 快速导航
  • 开盘数据恢复 RAID数据恢复 PC3000技术 硬盘技术前沿 数据恢复软件
  • 当前位置 :| 首页 > 技术文章 > RAID数据恢复 >  

    制作软盘上运行的FreeBSD系统

    来源:爱恢复网 作者:AHUIFU 时间:2008-07-09 Tag:FreeBSD恢复   数据恢复   RAID数据恢复   点击:
    测试平台:FreeBSD 4.5 Release (i386)

      大家可能见到过很多在软盘上运行的Linux系统,可在软盘上运行的FreeBSD反而比较少,虽然有PICOBSD,然而很多时候PICOBSD并不能满足我们的需要,那么可不可以自己制作一个在软盘上运行的FreeBSD系统呢?答案是肯定的。我在维护着一个FloppyFirewall的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格式)。

      bsd# disklabel -r -w fd0a fd1440

      接下来是安装引导程序。

      bsd# disklabel -B fd0a

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

      bsd# newfs fd0a

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

     

      bsd# mkdir /fd
      bsd# mount /dev/fd0a /fd
      bsd# mkdir /fd/boot
      bsd# cp /boot/loader /fd/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
      pseudo-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 $
      Machine          i386
      cpu            I386_CPU
      cpu            I486_CPU
      cpu            I586_CPU
      cpu            I686_CPU
      ident           "MINI-KERNEL"
      maxusers  0   #maxusers最好让系统自动分配,如果设得过大,会占用过多的内存。
      options  INET    #InterNETworking
      options  FFS     #Berkeley Fast Filesystem
      options  FFS_ROOT  #FFS usable as root device [keep this!]
      options  MFS     #Memory Filesystem
      options        MD_ROOT    #MD is a potential root device
      options        COMPAT_43   #Compatible with BSD 4.3 [KEEP THIS!]
      options        NO_SWAPPING  #Disable swap

      device  isa
      device  pci

      # Floppy drives
      device       fdc0 at isa? port IO_FD1 irq 6 drq 2
      device       fd0 at fdc0 drive 0

      # atkbdc0 controls both the keyboard and the PS/2 mouse
      device          atkbdc0   at    isa?   port   IO_KBD

    上一篇:一步一步组建RAID1/0的详细过程
    下一篇:没有了
    最新评论共有 0 位网友发表了评论
    发表评论
    评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
    用户名: 密码:
    匿名?
    注册
    搜索
  • 关键词:
  • 热点关注
    相关文章
    问答中心  |  爱恢复百科  |  公司库  |  专题  |  培训信息  |  广告招商  |  高级检索  |  网站地图