• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 制作RAMDISK in KERNEL的OpenBSD

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    前言 在以前我們已經講過如何制作軟盤上運行的FreeBSD系統,現在我們來看看如何制作一個運行在軟盤上的OpenBSD系統。與軟盤上的 FreeBSD不同的是,這次我們將系統中的所有配制文件及程序全部存放到OpenBSD的內核中,這樣整個系統看起來就是一個文件。下面讓

    前言

    在以前我們已經講過如何制作軟盤上運行的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 < ramdisk

    4、壓縮kernel大小
    # gzip -9 -c /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系統就已經做好了。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>