免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 905 | 回复: 0
打印 上一主题 下一主题

(Zt)[精华] 制作RAMDISK in KERNEL的OpenBSD微系统ZT [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-03 11:18 |只看该作者 |倒序浏览

http://www.chinaunix.net 作者:
剑心通明
  发表于:2005-08-31 15:42:48

发表评论
】【
查看原文
】【
BSD讨论区
】【
关闭


看精华里面光有作FreeBSD的,转来做OpenBSD的吧:
QUOTE:
制作RAMDISK in KERNEL的OpenBSD微系统
Matthew(黑夜编码人) ;
前言
在以前我们已经讲过如何制作软盘上运行的FreeBSD系统,现在我们来看看如何制作一个运行在软盘上的OpenBSD系统。与软盘上的FreeBSD不同的是,这次我们将系统中的所有配制文件及程序全部存放到OpenBSD的内核中,这样整个系统看起来就是一个文件。下面让我们具体来看看如何完成这样一个微系统的制作。
0、OpenBSD的启动过程
当硬盘MBR中的引导程序接过启动之后,MBR中的程序将读入硬盘OpenBSD分区中的引导程序,引导程序默认情况下会加载/boot,然后由boot载入内核,此时内核开始检测一些硬件和做一些初始化。初始化完成后kernel将mount root device,然后启动系统初始化进程/sbin/init,init将根据/etc/rc中的设置来进行初始化等。
1、定制RAMDISK内核
要使用RAMDISK in KERNEL就必须在内核配制文件中加入以下选项:
option RAMDISK_HOOKS
option MINIROOTSIZE=3560
pseudo-device rd 1
以上的内核参数意义如下:
option RAMDISK_HOOKS:开启ramdisk in kernel的功能。
option MINIROOTSIZE=xxx:设置内核中ramdisk的大小,以512b为单位(据说最大只能为23000 )
pseudo-device rd 1:在内核中产生1个ramdisk设备。
2、制作ramdisk镜像
# dd if=/dev/zero of=/ramdisk bs=512 count=3560
# vnconfig -c svnd0 /ramdisk
# disklabel -r -w svnd0 rdroot
# newfs -m 0 -S 512 -i 4096 /dev/svnd0a
# mount /dev/svnd0a /mnt
# mkdir /mnt/{dev,bin,sbin,etc}
# cp /dev/MAKEDEV /mnt/dev
# cp /bin/{sh,ls} /mnt/bin
# cp /sbin/init /mnt/sbin
# cd /mnt/dev/ && ./MAKEDEV ramdisk
# echo 'echo "This is my minibsd all in kernel" && /bin/sh' >; /mnt/etc/rc
# sync && umount /mnt
# sync && vnconfig -u svnd0 && sync
3、将ramdisk写入kernel
# cc -o rdsetroot /usr/src/distrib/common/elfrdsetroot.c
# ./rdsetroot /minibsd ; /minibsd.gz
5、制作目标软盘
因为系统需要使用/boot(/usr/mdec/boot)来加载kernel,所以我们需要在软盘上放置boot文件。
# disklabel -B -w -r /dev/fd0a fd1440
# newfs -m 0 -S 512 /dev/fd0a
# mount /dev/fd0a /mnt
# cp /usr/mdec/boot /mnt
# cp /minibsd.gz /mnt/bsd
现在你的ramdisk in kernel的miniopenbsd系统就已经做好了。
注:任何转载或摘抄请保留作者信息和注明文章出处(中文FreeBSD用户组 http://www.cnfug.org)

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18380/showart_164106.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP