| 
		    
                    
   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 
 
		    
                       
		      
		      
		   |