扫一扫
关注微信公众号

制作可以随身携带的FreeBSD系统(下)
2007-01-23   中国IT实验室

# 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

  bsd# ln -s ../sbin/crunch1 less

  bsd# ln -s ../sbin/crunch1 uname

  bsd# ln -s ../sbin/crunch1 more

  6、编写启动脚本

  因为我们的系统只是为了测试在软盘上运行FreeBSD,因而这里的启动脚本非常简单只是让系统可以工作,没有做其它的工作,其内容如下:   

  #!/bin/sh

  # Floppy BSD init script

  PATH=/sbin:/bin

  HOME=/

  export PATH HOME   

  echo

  echo "Hello, it's my Floppy BSD"

  echo

  因为没有使用登录验证,所以这里只是简单的一直运行shell   

  while : ; do

  /bin/sh

  done

热词搜索:

上一篇:制作可以随身携带的FreeBSD系统(中)
下一篇:Linux增长知识:让程序在开机时自动运行

分享到: 收藏