製作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_HOOKSoption MINIROOTSIZE=3560pseudo-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系統就已經做好了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-941476/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用ramdisk啟動ubuntu檔案系統Ubuntu
- win10系統如何安裝ramdisk【圖文】Win10
- Linux 製作系統映象Linux
- windows系統盤製作,系統裝機Windows
- u盤製作系統盤
- 製作一個報警系統
- u盤製作系統盤工具
- windows10系統盤製作Windows
- rootfs -根檔案系統製作
- win10系統U盤製作方法_製作win10系統u盤步驟Win10
- zynq 按照傳統的Linux開發模式製作系統Linux模式
- CS系統中分頁控制元件的製作控制元件
- win10系統隨身碟製作方法_製作win10系統u盤步驟Win10
- 以太橙系統模式開發製作模式
- 製作Linux系統SD啟動卡Linux
- macOS製作系統啟動盤教程Mac
- 微機結構和作業系統作業系統
- 作業系統微核心和Dubbo微核心,有何不同?作業系統
- 森林鏈系統軟體開發製作
- 使用css製作吊扇轉動的效果CSS
- 製造業ERP系統運作流程是怎樣的
- UI 測試的作業系統級別的錄製 / 回放UI作業系統
- 作業系統微核心和Dubbo微核心各自優缺點!作業系統
- 如何製作win10系統u盤啟動盤_win10系統U盤啟動盤製作步驟Win10
- 跟大神一起製作一個屬於自己的Linux作業系統!Linux作業系統
- 區塊鏈支付系統開發的各種製作方法區塊鏈
- 重灌Win10作業系統、製作U盤啟動盤Win10作業系統
- win10系統下ico圖示怎麼製作_win10製作ico圖示的教程Win10
- linux系統關於kernel.sem調優Linux
- Kernel Module實戰指南(四):系統呼叫劫持
- OpenBSD 上的 Firefox 將預設禁用 DoHFirefox
- 如何製作win10系統u盤啟動盤_win10系統隨身碟啟動盤製作步驟Win10
- windows10如何備份系統_windows10製作系統備份Windows
- 在Linux系統下製作U盤啟動盤Linux
- Unity遊戲積分/計分系統製作方法Unity遊戲
- 微信抽獎小程式如何製作?教你快速製作微信公眾號抽獎小程式!
- 手機寫作業系統之 製作第1個啟動盤作業系統
- 微信域名防封跳轉系統的原理,微信域名防封的注意點
- 深入理解Linux作業系統下的守護程式(轉)Linux作業系統